2014-06-24 35 views
1

我正在使用useraddpasswd作爲創建用戶的根腳本運行腳本。然後在運行一些需要以新創建的用戶身份運行的其他命令之前,進行一些檢查/安裝。以不同的用戶身份運行腳本 - 爲什麼拒絕權限?

所以我有一個創建用戶的主腳本:

main.sh:

#!/bin/bash 
useradd testuser 
passwd testuser 

yum -y install git 
chmod 777 testuser.sh 
su testuser -c ./testuserscript.sh 

testuserscript.sh:

#!/bin/bash 
git clone git://github.com/schacon/grit.git 

當我運行./main.sh:我收到以下錯誤:

bash: ./testuserscript.sh: Permission denied 

當我做LL我得到如下:

-rwxrwxrwx. 1 root root 728 Jun 24 11:02 testuserscript.sh 

我正在運行錯誤的命令來運行testscript作爲testuser

+0

你可以試試'sudo -u testuser命令' – arco444

+0

你是否在所有的目錄中都有+ x,代表'testuserscript.sh'? –

+0

@ arco444沒有運氣。 – as3rdaccount

回答

0

權限被拒絕時會發生:

  1. 的腳本沒有執行鍼對調用它哈希爆炸後
  2. 路徑的用戶權限(#!)不正確或沒有按」 t指向一個可執行文件(或者用戶沒有執行這個腳本的權限)。
  3. 用戶對導向該腳本的所有文件夾沒有執行權限。

在代碼中,你設置CHMOD 777 testuser.sh但你嘗試執行testuserscript.sh

我不希望su更改文件夾,但也許嘗試絕對路徑。還要檢查新創建的使用的默認shell。爲了避免這一切(和一對夫婦的其他問題),請嘗試:

sudo -u testuser bash /tmp/testuserscript.sh 

您可以在以後使用的變量定義在哪個文件夾中的所有腳本都。

相關問題