gpt4 book ai didi

linux - 在 Linux 上以另一个用户身份运行脚本

转载 作者:太空狗 更新时间:2023-10-29 11:32:20 32 4
gpt4 key购买 nike

我正在尝试通过一个简单的脚本创建一个 Linux 终端菜单。在脚本中,它将有一些命令将作为另一个用户提交作业(例如 shell 脚本),而无需密码提示。

我找到了以下帖子,并且有效。 <强> how to run script as another user without password 然而,有一个副作用。看来用户可以在该用户文件夹中运行我不想要的其他脚本。

欢迎任何建议/帮助。

为此。这是我所拥有的:

  1. 用户名 temp1,这是将运行菜单的用户。uid=1001(temp1), gid=1001(temp1), groups=1001(temp1)

  2. 用户名 wayne,这是运行作业时必须提交脚本的用户uid=1000(韦恩), gid=1000(韦恩),groups=1000(韦恩),4(adm),24(cdrom),27(sudo),30(dip)...

  3. 脚本 script1.shscript2.shwayne 拥有。

    -rwxr-xr-x script1.sh
    -rwxr-xr-x script2.sh
  4. 如果我尝试以 temp1 用户身份访问 /home/wayne,我将获得权限被拒绝(预期)

  5. 我将脚本设置为 wayne 的 chmod 700。所以从技术上讲,除了 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 时,脚本会运行(不是预期的)。

有什么想法吗?

最佳答案

答案是从 su 改成 sudo。

su 主要用于切换用户,而 sudo 用于以其他用户身份执行命令。 -u 标志允许您指定执行命令的用户:

sudo -u wayne '/home/wayne/script2.sh'

给出抱歉,用户不允许执行

关于linux - 在 Linux 上以另一个用户身份运行脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27080834/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com