为什么/usr/sbin
Debian 上的 logrotate 的 bin 路径(至少是“喘息”)知道我们实际上可以在没有 root 权限的情况下使用它?
答案1
路径logrotate
被放置在/usr/sbin
可能的范围内,因为它是一个系统管理实用程序,通常在所有文件系统都挂载后执行。
日志旋转旨在简化生成大量日志文件的系统的管理。
Linux 基金会 - 文件系统层次结构标准 - /sbin 系统二进制文件
用于系统管理(和其他仅限 root 用户的命令)的实用程序存储在
/sbin
、/usr/sbin
和/usr/local/sbin
中。/sbin
除了 /bin 中的二进制文件外,还包含引导、还原、恢复和/或修复系统所必需的二进制文件。已知被挂载之后执行的程序/usr
(当没有问题时)一般被放入 中/usr/sbin
。
注意:sbin
目录中的许多实用程序可供普通用户使用。任何用户都可以运行ifconfig
以获取有关活动网络接口的信息。当然,使用它ifconfig
来修改网络接口设置需要额外的权限。
答案2
用户进程可以使用 /usr/sbin 中的 logrotate,但只能用于自己的日志。Root 从 cron 运行 logrotate 来为所有用户执行此操作。在其上添加 suid 位很方便,但不太安全。