Sudo
為什麼以 user1 和 su - user1 -c ‘command’ 執行時會出現不同的結果?
在同一目錄 ( /home/user1/WWW )中以user1身份執行時
[user1@server1 WWW (master)]# touch c
在目錄中創建文件 c。
[root@server1 WWW (master) ACCEPTATIE SERVER]# su - user1 -c "touch c"
給出錯誤
觸摸:不能觸摸’c’:權限被拒絕
為什麼會這樣?
當您這樣做時
su - username
,您以該使用者的身份執行完全登錄,這意味著您被轉移到使用者的主目錄。因此,當touch c
以這種方式執行時,您會嘗試在使用者的主目錄中執行該命令。相反,
-
從命令行中刪除:su user1 -c "touch c"
這將在目前目錄
touch c
中執行。user1
推測:
原始
su -
命令失敗,因為c
在user1
的主目錄中已經有一個文件被另一個使用者擁有。