在过去的几个月里,我一直在学习 bash 和 linux 管理,同时生成了越来越多需要在后台运行的代码。理想情况下,我希望在更接近生产环境的地方运行我的开发系统,以避免由于安全和权限问题而不得不重新开发代码。
一般来说,我会运行一些东西:
$nohup <program> <program args> >> <program logfile> 2>&1 &
IE:
$nohup ping 192.168.0.1 >> ping.log 2>&1 &
但是,今天我尝试通过创建用户并授予他们正确的权限来正确设置它,以便他们只能访问自己的文件而不能访问其他文件。这似乎是一种明智的安全做法。
我会这样做:
$sudo -u <program user> nohup <program> <program args> >> <program logfile> 2>&1 &
但是,当我运行时,这会导致以下输出ps aux | grep <program>
:
<admin user>@server:~$ ps aux | grep <program>
root 1396 0.0 0.0 61868 3792 pts/38 S 10:50 0:00 sudo -u <program user> nohup <program> <program args>
<program user> 1397 0.0 0.8 1273232 68308 pts/38 Sl 10:50 0:02 <program> <program args>
问题是输出中的第一行:理想情况下,我希望能够在不启动任何具有根级别权限的进程的情况下运行这些程序。我怎么做?
你可以这样做: