每当我试图奔跑
su
Password:
然后就显示错误
setgid: Operation not permitted
在我使用以下方法更改权限后出现了这个问题chown
的输出ls -lsa /bin/su
为:
40 -rwxrwxr-x 1 jheel root 40128 May 17 2017 /bin/su
答案1
正确的权限/bin/su
应该是:禁用 RWSR-XR-X
-rwsr-xr-x 1 root root 40128 May 17 2017 /bin/su*
为了解决这个特定问题你应该:
- 将文件所有者更改为根:根
- 更改文件权限为禁用 RWSR-XR-X
可以使用以下方法完成:
sudo chown root:root /bin/su
sudo chmod 4755 /bin/su
- 第一个命令,将文件的所有者更改为
root
。 - 下一个命令将更改权限以允许任何用户读取/执行,并将位设置
s
为/bin/su
命令。
问:为什么执行chown
时/bin/su
也删除了set-user-id
/set-group-id
位?
答:根据设计,执行chown
可能会删除set-user-id
/set-group-id
位。设置这些位后,执行此类文件将导致以二进制文件的所有者身份运行文件,而不是以执行文件的进程的所有者身份运行文件。更改文件所有者(或组)而不删除该set-user-id
位,将导致文件以与最初计划不同的用户身份执行,这可能会导致安全漏洞。
一些参考资料:
Unless chown is invoked by a process with appropriate privileges, the set-user-ID and set-group-ID bits of a regular file shall be
成功完成后将被清除;其他文件类型的设置用户 ID 和设置组 ID 位可能会被清除。
Ubuntuchown
手册页建议运行info coreutils 'chown invocation'
以获取完整文档chown
13.1 ‘chown’: Change file owner and group
=========================================
‘chown’ changes the user and/or group ownership of each given FILE to
NEW-OWNER or to the user and group of an existing reference file.
Synopsis:
....
The ‘chown’ command sometimes clears the set-user-ID or set-group-ID
permission bits. This behavior depends on the policy and functionality
of the underlying ‘chown’ system call, which may make system-dependent
file mode modifications outside the control of the ‘chown’ command. For
example, the ‘chown’ command might not affect those bits when invoked by
a user with appropriate privileges, or when the bits signify some
function other than executable permission (e.g., mandatory locking).
When in doubt, check the underlying system behavior.