myscript.sh是sudo的shell腳本的mkdir
#/!bin/sh
mkdir -p $1
cp -p a.txt ./$1
cp b.txt /usr
如果我調用它使用sudo ./myscript.sh,在$ 1目錄的所有者是root,所以用戶不能修改A.TXT(其是個問題)。我可以將腳本更改爲
#/!bin/sh
mkdir -p $1
cp -p a.txt ./$1
sudo cp b.txt /usr
並且只用./myscript.sh調用,但我得到的印象是不好的做法。如何在一般情況下進行,我不知道用戶,所以chown不起作用?
你可以從環境變量$ USER當前用戶。因此,你可以在腳本中使用chown。 – jitendra
@jitendra:我可以設置'USER = anybody'調用腳本之前,該文件將被'chown''d到錯誤的用戶。 –
你不應該簡單的複製文件到'/ usr';它應該只包含正常事件過程中的目錄。爲什麼你想要一個'/ usr/b.txt'文件?它看起來有點像你將兩個單獨的任務捆綁成一個,不正確。 –