Linux 硬链接权限显示所有者/用户/组的 r/w/x,但用户无法执行

Linux 硬链接权限显示所有者/用户/组的 r/w/x,但用户无法执行

我在 /etc/init.d/ 中有一个指向服务脚本的硬链接,该脚本指向一个 shell 脚本 (bash)。权限显示所有者、用户和组的权限对每个人都是 rwx。

但是,当我运行 $find /etc/init.d/ -group myuser 命令时,目录中没有显示任何有关 myuser 的内容,尽管似乎任何人都可以执行该脚本。我仔细检查了一下,当我运行 $find /etc/init.d/ -group root 时,输出显示了 root 的权限。

知道发生了什么吗?当我执行服务时,它似乎运行良好(它应该通过 pid 关闭一些进程),但是当我 ps -ef 进程时,它们仍在运行。

莫名其妙...

答案1

因为脚本包含有特权的命令,例如killinitctl

如果服务以 root 身份运行,则只有具有 root 权限的用户才能终止它,即使您有一个包含这些命令且具有全局执行权限的脚本。查看您提到的 shell 脚本,看看它包含哪些命令。

调用 init 脚本的正确方法是使用 sudo。

相关内容