您能否运行su root -c "$some_command"
并保持以用户身份登录root
,而不是在执行命令后立即删除权限(即返回到普通用户)?
换句话说:我想执行命令 as root
,并保留su
特权直到exit
。
例如,目前,我只需:
1. 执行su
. 2.当出现提示时,
输入密码。 3. 执行(root
Password:
$some_command
或为了例子: source ./.bashrc
)。
4. 保留提升的权限,并做一些其他事情,直到...
5. exit
.
而如果我使用-c
,它只会运行第一个命令并退出,而不给我任何时间去做我需要做的其他事情。如果没有,那也不是世界末日,还有其他方法可以处理它,但是能够以这种方式做到这一点就很好了。
注意:当然,我认为su root -l -c "$some_command"
这是解决方案,但是:
a。它更改为/root
目录(这并不是真正的问题)。
b.当-l
发出 时-c
,它执行第一个命令并退出。
答案1
您可以启动另一个 shell:
su root -c "${some_command}; bash"
bash
如有必要,请更换为您最喜欢的外壳。