Sudo

為什麼以 user1 和 su - user1 -c ‘command’ 執行時會出現不同的結果?

  • August 15, 2018

在同一目錄 ( /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 -命令失敗,因為cuser1的主目錄中已經有一個文件被另一個使用者擁有。

引用自:https://unix.stackexchange.com/questions/462745