我正在以root身份运行脚本,使用useradd
和passwd
创建用户。然后在运行一些需要以新创建的用户身份运行的其他命令之前进行一些检查/安装。
所以我有创建用户的主脚本:
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
当我这样做时,我得到以下内容:
-rwxrwxrwx. 1 root root 728 Jun 24 11:02 testuserscript.sh
我是否运行了错误的命令来运行testscript
作为testuser
?
答案 0 :(得分:0)
在以下情况下可能会发生权限拒绝:
#!
)之后的路径不正确或者没有指向可执行文件(或者用户没有权限执行此脚本)。 在您的代码中,您将chmod 777设置为testuser.sh
,但之后您尝试执行testuserscript.sh
我不希望su
更改文件夹,但可能会尝试使用绝对路径。还要检查新创建的used的默认shell。为了规避所有这些(以及其他一些问题),请尝试:
sudo -u testuser bash /tmp/testuserscript.sh
您可以稍后使用变量来定义所有脚本在哪个文件夹中。