为啥 opensuse15.6 的一般用户预设可以直接使用/sbin 和/usr/sbin 下的命令?

我直到两分钟前一直以为像 reboot 这种命令需要 root 权限才能执行,一般用户在命令行使用会出现提示需要 root 权限,所以每次都是先敲上 sudo。

刚刚用一般用户敲了/usr/sbin/reboot 电脑直接重启了,ls 看到/sbin /usr/sbin 都是 drwxr-xr-x 或者 drwxrwxrwx,里面的命令也是同样的情况.

我就非常懵,这几个目录的权限我从安装完就没动过,这样子的预设权限虽然 passwd,fdisk 之类的命令还是用不了,但是不会有啥安全隐患吗,这样预设像
‘reboot’ 命令的绝对路径是 ‘/usr/sbin/reboot’,因此需要超级用户权限(例如根用户 root)才能运行它。
这种提示还有意义吗?

是不是大部分的发行版都这样设定的?求大佬们解答

因为 /usr/sbin 下的很多命令对于普通用户来说也挺有用的呗。我不知道 openSUSE 的情况,但很多发行版是 /bin /sbin /usr/bin /usr/sbin 已经合并了。

reboot 现在是 systemd 的命令。普通用户调用的话,会使用 polkit 来提权运行:如果你是当前唯一的登录用户并且登录的会话为本地会话,那么就可以直接重启啦。桌面环境的「重启」按钮也是这样的。

原来如此,我第一眼看到这个情况还以为中病毒了,然后我发现比较危险的命令还是有限制的,就来问了。我用 ls 看到 openSUSE 的/sbin 里大部分命令都是指向/usr/sbin 的符号链接,不知道算不算合并。

reboot 这种无所谓的,systemctl reboot 普通用户就能执行。