【发布时间】:2014-11-22 18:18:59
【问题描述】:
我正在尝试通过一个简单的脚本来创建一个 Linux 终端菜单。在脚本中,它将包含一些命令,这些命令将在没有密码提示的情况下作为另一个用户提交作业(例如 shell 脚本)。
我能够找到以下帖子并且这很有效。 how to run script as another user without password 然而,有一个副作用。看来用户可以在该用户文件夹中运行我不想要的其他脚本。
欢迎任何建议/帮助。
为此。这是我所拥有的:
用户名
temp1,即将运行菜单的用户。 uid=1001(temp1), gid=1001(temp1), groups=1001(temp1)用户名
wayne,这是运行作业必须提交脚本的用户 uid=1000(wayne), gid=1000(wayne),groups=1000(wayne),4(adm),24(cdrom),27(sudo),30(dip)...-
脚本
script1.sh、script2.sh归wayne所有。-rwxr-xr-x script1.sh -rwxr-xr-x script2.sh 如果我尝试以
temp1用户的身份访问/home/wayne,我的权限被拒绝(预期)我将
wayne的脚本设置为 chmod 700。所以从技术上讲,除了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时,脚本运行(不是预期的)。
有什么想法吗?
【问题讨论】:
-
您的示例问题和您的问题之间的一个区别是另一个问题使用
user1 ALL=(user2) NOPASSWD: /home/user2/bin/test.sh,但您在您的版本中省略了=。那可能就是错的。它可能是无辜的。值得一试。 -
我确保它具有相同的结果并且仍然得到相同的结果。输出归韦恩所有,所以我知道它运行正确的脚本。