/bin存放所有用户均可直接执行的基础命令(如ls、cp、bash),保障单用户模式可用;/sbin存放仅root可执行的系统管理命令(如reboot、fdisk),权限严格,用于启动维护。

/bin 和 /sbin 的区分,核心不在“谁安装”,而在“谁需要、何时能用、权限怎么设”。
/bin 是系统能跑起来的基础工具箱
这里面的命令是普通用户和 root 都能直接运行的,比如 ls、cp、bash、cat、grep。它们不依赖网络、不操作内核参数、不挂载分区,只做基础文件操作或文本处理。
- 权限通常是
rwxr-xr-x(即所有用户可执行) - 放在根分区里,确保单用户模式下也能用
- 哪怕 /usr 分区损坏或没挂载,/bin 里的命令照常工作
/sbin 是专为 root 设计的系统控制开关
这里的命令动辄影响整个系统运行,比如 reboot、fdisk、mount、iptables、fsck。普通用户执行会提示 Permission denied,不是因为命令不存在,而是权限机制在起作用。
- 权限多为
rwxr-xr-x但所有者是 root,组和其他用户无写权限;有些甚至设为rwx------ - 普通用户想用,必须加 sudo(如
sudo ifconfig) - 这些命令也放在根分区,保证修复系统时 root 能第一时间调用
/usr/bin 和 /usr/sbin 是功能延伸,不是权限分界线
/usr 下的目录不参与系统启动最小集,所以它们不决定“能不能用”,而决定“有没有装”。
- /usr/bin:预装或包管理器安装的常用软件,如 vim、python3、curl,普通用户默认可用
- /usr/sbin:配套服务管理工具,如 useradd、httpd、tcpdump,通常也需要 root 权限,但不属于启动必需
- 是否能执行,仍由文件权限和用户身份共同决定,不是目录位置自动赋予的
实际判断一个命令归属哪类,看它在哪、谁可运行
不用死记硬背,终端里敲两行就能验证:
-
which ls→ 一般输出/bin/ls,普通用户可直接运行 -
which ifconfig→ 多数现代系统返回/usr/sbin/ifconfig或/sbin/ifconfig,普通用户直接运行会失败 -
ls -l $(which shutdown)→ 查看权限和所有者,确认是否仅限 root











