我试图通过一个简单的脚本创建一个Linux终端菜单。在脚本中,它会有一些命令提交一个作业(例如一个shell脚本)作为另一个没有密码提示的用户。在Linux上作为另一个用户运行脚本
我能找到以下帖子,这工作。 how to run script as another user without password 但是,有一方面的影响。看来用户可以在我不想要的用户文件夹中运行其他脚本。
任何建议/帮助欢迎。
为了这个。这里是我的:
用户名
temp1
,这是将运行菜单的用户。 UID = 1001(temp1中),GID = 1001(temp1中),基团= 1001(temp1目录)用户名
wayne
,这是脚本必须提交,以运行该作业 UID = 1000(韦恩用户),GID = 1000(韦恩),基团= 1000(韦恩),4(ADM),24(CDROM),27(须藤),30(DIP)...脚本
script1.sh
,script2.sh
通过wayne
资。-rwxr-xr-x script1.sh -rwxr-xr-x script2.sh
如果我试图去
/home/wayne
为temp1
用户我得到拒绝的权限(预期)我设定的脚本和chmod 700
wayne
。所以从技术上讲,除了wayne
之外,没有人能运行它们。我已经编辑sudo的文件,并有以下条目:
temp1 ALL(wayne) NOPASSWD: /home/wayne/script1.sh
当我运行命令
su -c "/home/wayne/script1.sh" -s /bin/sh wayne
运行脚本(如预期)当我运行命令
su -c "/home/wayne/script2.sh" -s /bin/sh wayne
脚本运行(不期望)。
任何想法?
您的examplar问题与您的问题之间的一个区别另一个问题是使用'user1 ALL =(user2)NOPASSWD:/ home/user2/bin/test.sh',但是在你的版本中省略了'='。这可能是所有的错误;它可能是无辜的。这值得检查。 – 2014-11-22 18:24:11
我确信它有相等的结果。输出由wayne拥有,所以我知道它正在运行正确的脚本。 – Xathras 2014-11-22 23:49:37
任何人都可以帮忙吗? – Xathras 2014-11-24 02:18:06