如何以另一个用户身份从 root 运行脚本(使用用户路径)

San*_*dra 1 linux ubuntu bash centos

我想让这些命令以ss用户身份运行root

mkdir bin
cp -r /opt/gitolite .
gitolite/install -ln
gitolite setup -pk ss.pub

mkdir -p .gitolite/hooks/common
ln -s /opt/pre-receive .gitolite/hooks/common/
Run Code Online (Sandbox Code Playgroud)

所以一切都在/home/ss. $HOME/bin从第 3 行可以看出,第4 行需要。

我可以让它工作的唯一方法是添加su -c "command" ss到每一行,这不是一个很好的技巧。

这是我之前的问题的扩展,我不够精确。

如何以实用的方式将所有这些命令作为脚本运行?

Sco*_*ack 6

shell 脚本就是这样,一个 shell 脚本。这意味着您不仅可以运行普通的 shell 命令,而且还可以为正在使用的任何 shell 执行内置命令。我们可以稍微修改您的脚本,以便让所有命令都像在运行此脚本的任何用户的主目录中一样运行。

#!/bin/bash

cd $HOME
mkdir bin
cp -r /opt/gitolite .
gitolite/install -ln
gitolite setup -pk ss.pub

mkdir -p .gitolite/hooks/common
ln -s /opt/pre-receive .gitolite/hooks/common/
Run Code Online (Sandbox Code Playgroud)


MDM*_*rra 5

你为什么不把它变成一个实际的可执行脚本,并在作为其他用户运行时调用脚本通过 su