Tom*_*aso 104 linux su login shell bash
我需要做的就是以特定用户身份运行特定脚本,该用户nologin/false
在/etc/passwd
.
我会以 root 身份运行脚本,这应该以另一个用户身份运行。跑步:
~# su -c "/bin/touch /tmp/test" testuser
Run Code Online (Sandbox Code Playgroud)
会工作,但我需要一个有效的测试用户外壳。我知道我可以禁用密码passwd -d testuser
并将外壳保留为/bin/bash
这种方式会安全一点,但我需要有nologin/false
外壳。
基本上我需要的是crontab
当我们将作业设置为以特定用户身份运行时会做什么,而不管这个用户是否有nologin/false
shell。
ps 我发现这个线程Executing a command as a nologin user,但我不知道如何concatenate
将命令su -s /bin/sh $user
发送到我需要运行的脚本。
use*_*517 140
您可以使用 -s 切换到 su 来运行特定的 shell
su -s /bin/bash -c '/path/to/your/script' testuser
Run Code Online (Sandbox Code Playgroud)
(sudo
如果testuser
是无密码用户,则在上面添加。)
Han*_*an5 15
sudo -u
如果你安装了它,你可以这样做:
# whoami
root
# sudo -u apache whoami
apache
# getent passwd apache
apache:x:48:48:Apache:/var/www:/sbin/nologin
Run Code Online (Sandbox Code Playgroud)
通过提供脚本作为执行到 /bin/sh 的参数:
su -s "/bin/sh /your/script/location" username
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
136870 次 |
最近记录: |