sudo到另一个用户并以该用户身份运行命令

时间:2014-02-12 16:39:15

标签: shell sudo user-profile login-script .profile

考虑下面的这个sudo命令

sudo -iu bigadmin

bigadmin是一个普通用户,所有用户都可以使用特权访问权限。 现在的问题是像我提到的共享用户。所以任何类型的配置文件定制都不会起作用。

我想要做的是我建立的会话 - 我想运行一个包含所有变量的脚本。所以当我sudo它应该做这些事情

sudo -iu bigadmin ; . ./mycustomshell.sh 

这是如何做得最好的。

2 个答案:

答案 0 :(得分:3)

首先,确保导出mycustomshell.sh中的所有变量。然后,首先获取它,然后运行sudo -iu bigadmin,以便sudo启动的shell继承mycustomshell导出的变量。

另一个选择是调用bash作为

sudo -iu bigadmin bash --rcfile mycustomshell.sh

但是,这会导致bash忽略.bashrc,因此您可能希望在.bashrc的开头明确地提取mycustomershell.sh以进行补偿。

答案 1 :(得分:1)

这个 bash 命令对 shell 脚本很有用。它运行作为参数给出的 sudo 密码,并在给定文件的末尾添加一行。

echo $password | echo 'net.ipv4.ping_group_range=0 2147483647' |  sudo -S tee -a /etc/sysctl.conf