以 root 身份登录后我运行:
su username screen
我的许可被拒绝。
但是当我以用户名登录时,我被允许执行屏幕。
我可以但是,运行:
sudo -u username screen
我的目标是出于安全原因以受限用户身份运行 Java 应用程序。
也许我已经通过运行它的工作方式实现了这个目标,你告诉我。
答案1
如果你想su
以另一个用户身份运行命令,那么正确的语法是
su - username -c screen
这将模拟用户的登录并将-c
命令传递screen
给用户的 shell。
为了验证这一点,请运行以下命令:root
su -l username ls
无论当前工作目录是什么,输出都将是用户名主目录内容的列表,因为它将模拟用户名的登录然后ls
在其主目录上运行。
当然,不太复杂的方法是使用第二条命令:
sudo -u username screen
语法:
sudo -u username <command>
只需以指定用户身份运行命令即可。您可以通过运行以下命令root
来查看/root
:
sudo -u username ls
它将返回permission denied
“只有”root
和“组”root
有权访问该目录。无论如何,我提到的任何命令都可以满足您的要求。