我在/etc/init.d/中有一个指向shell脚本(bash)的服务脚本的硬链接。 权限显示所有者,用户和组的权限是rwx给所有人。
但是,当运行$ find /etc/init.d/ -group myuser命令时,即使任何人都可以执行该脚本,该目录中的任何内容都不会显示给myuser。 我加倍检查,当我运行$ find /etc/init.d/ -group root时,输出显示root权限就好了。
任何想法是怎么回事? 当我执行服务时,它看起来运行良好(它应该通过PIDclosures一些进程),但是当我运行进程时,它们仍在运行。
莫名其妙…
因为脚本包含特权的命令,例如kill或initctl 。
如果服务以超级用户身份运行,那么即使拥有包含这些命令的全局执行权限的脚本,只有具有超级用户权限的用户才能将其终止。 看看你提到的shell脚本,看看它包含的是什么命令。
调用你的init脚本的正确方法是使用sudo。