如何编写将在 su 之后运行命令的脚本,而不使用 -c

dso*_*len 7 su sudo

我正在尝试在我没有 root 访问权限的系统上自动执行标准活动。系统管理员给了我运行sudo su - 'user'命令的权限,而且只有那个命令。我无法添加-c参数或sudo会失败。

我的脚本必须以我的权限开始,并在中间更改为以用户的权限运行。我想弄清楚是否有办法让脚本在单个命令中为我执行此操作?

在任何人问之前,尝试visudo扩展我的权限是相当困难的。虽然我可能会su使用密码,但我不知道用户的密码,不想更改它,并且无论如何真的应该在我的脚本中对其进行硬编码,所以su没有常规sudo并不是一个真正的选择。似乎必须有某种方法来处理我有权使用的命令?

G-M*_*ca' 9

把你想作为其他用户运行的命令放到一个单独的文件中, user2commands然后做

sudo su -用户< user2commands

如果您不想拥有单独的文件,请考虑:

sudo su - user << EOF
    命令以其他用户身份运行
        ?
EOF

  • 如果命令需要与标准输入交互,这会有奇怪的行为。例如,如果您使用 `cat` 这将不起作用(例如,尝试使用 `echo cat | sudo su - user`) (2认同)