2014-11-22 67 views
2

我試圖通過一個簡單的腳本創建一個Linux終端菜單。在腳本中,它會有一些命令提交一個作業(例如一個shell腳本)作爲另一個沒有密碼提示的用戶。在Linux上作爲另一個用戶運行腳本

我能找到以下帖子,這工作。 how to run script as another user without password 但是,有一方面的影響。看來用戶可以在我不想要的用戶文件夾中運行其他腳本。

任何建議/幫助歡迎。

爲了這個。這裏是我的:

  1. 用戶名temp1,這是將運行菜單的用戶。 UID = 1001(temp1中),GID = 1001(temp1中),基團= 1001(temp1目錄)

  2. 用戶名wayne,這是腳本必須提交,以運行該作業 UID = 1000(韋恩用戶),GID = 1000(韋恩),基團= 1000(韋恩),4(ADM),24(CDROM),27(須藤),30(DIP)...

  3. 腳本script1.shscript2.sh通過wayne資。

    -rwxr-xr-x script1.sh 
    -rwxr-xr-x script2.sh 
    
  4. 如果我試圖去/home/waynetemp1用戶我得到拒絕的權限(預期)

  5. 我設定的腳本和chmod 700 wayne。所以從技術上講,除了wayne之外,沒有人能運行它們。

  6. 我已經編輯sudo的文件,並有以下條目:

    temp1 ALL(wayne) NOPASSWD: /home/wayne/script1.sh 
    
  7. 當我運行命令su -c "/home/wayne/script1.sh" -s /bin/sh wayne運行腳本(如預期)

  8. 當我運行命令su -c "/home/wayne/script2.sh" -s /bin/sh wayne腳本運行(不期望)。

任何想法?

+0

您的examplar問題與您的問題之間的一個區別另一個問題是使用'user1 ALL =(user2)NOPASSWD:/ home/user2/bin/test.sh',但是在你的版本中省略了'='。這可能是所有的錯誤;它可能是無辜的。這值得檢查。 – 2014-11-22 18:24:11

+0

我確信它有相等的結果。輸出由wayne擁有,所以我知道它正在運行正確的腳本。 – Xathras 2014-11-22 23:49:37

+0

任何人都可以幫忙嗎? – Xathras 2014-11-24 02:18:06

回答

6

答案是從su到sudo的變化。

su主要用於切換用戶,而sudo用於執行其他用戶的命令。 -u標誌可讓您指定執行命令的用戶: sudo -u wayne'/home/wayne/script2.sh'給出對不起的用戶不允許執行

相關問題