Linux – 以“nobody”身份运行守护进程

我有一个守护进程,坐在我的根目录下,当前正在以root身份运行。 但是,由于该程序可以读取文件系统,这显然是一个安全问题。 我怎样才能像没有人一样运行它,以便我可以解决这个问题?

执行“su – nobody -c / root / myscript”不起作用,返回权限被拒绝的错误。 我似乎可以解决这个问题的唯一方法是:

  1. Chmod -R 777 / root,我不想在我的根目录上做,也弄脏了SSH。
  2. 将脚本移至/ opt或/ var,然后执行(1)

当然,可能有一个简单的解决scheme,我错过了。 我可以把它给任何人,但这并不能解决问题。 有任何想法吗?

你不想做(1) – 单独留下root的主目录。 (2)是你最好的select – 创build一个由用户拥有的新目录,守护进程将运行,并且在该目录中执行任何磁盘I / O操作。

与半相关, 不要将事情当作“无人”运行 – 有一个古老的笑话,没有人通常是* NIX系统上最有特权的用户,因为所有守护进程都以“nobody”身份运行。

如果你真的关心安全性,你不想陷入困境。 值得多花一分钟时间为适合你的守护进程创build一个专用的用户:-)

那么 – 脚本目前驻留在/根。 假设您的目标用户不是root用户,那么当用户尝试读取/执行脚本时,您当然会收到权限错误。

你有什么反对将脚本移动到不同的目录? 如果你这样做,那么正确设置文件所有权/模式,你应该没有问题。