以其他用户身份运行二进制文件
CentOS 上的每个程序都在用户帐户的环境中运行, 而不管该程序是由用户执行还是作为自动系统进程运行。但是, 有时我们希望程序以不同的限制运行, 并访问允许该帐户的这些权限。例如, 用户应该能够使用 passwd command 来重置其密码。该命令需要对/etc/passwd 的写入访问权限, 但我们不希望运行该命令的用户具有这样的访问权限。此配方教您如何设置程序的 SUID 和 SGID 权限位, 使其能够在不同用户的环境中执行。
准备
需要一个 CentOS 系统。还需要管理权限, 方法是使用根帐户登录或使用 sudo。
如何来做
请按照以下步骤操作, 以允许程序以其他用户的身份执行:
- 使用 ls 命令标识文件的所有者和组详细信息。其输出中的第三个字段列出所有者, 第四个字段列出组:
ls -l myscript.sh
- "-L" 选项以长格式显示文件列表, 其中包括所有权信息
- 如有必要, 请使用 chown 更改文件的所有权, 以便所有者是您希望脚本在其中执行其环境的所有者:
chown newuser:newgroup myscript.sh
- 将 SUID 位设置为允许程序运行, 就像它的所有者调用它一样:
chmod u+s myscript.sh
- 将