POSIX权限、SUID与SGID相关疑问:SUID位作用及权限规则咨询
SUID权限规则相关问题解答
问题1:权限标识-rws------和-rwx---rwx有什么区别?
Linux文件权限位共10位,第1位为文件类型,后续9位每3位为一组,依次对应文件所有者、所属用户组、其他用户的读(r)、写(w)、执行(x)权限,两者核心区别如下:
-rws------:- 属于普通文件,设置了SUID权限位(所有者权限位的x被替换为s,代表SUID生效且所有者本身拥有执行权限)
- 权限分配:仅文件所有者拥有读、写、执行权限,所属用户组和其他用户无任何权限
-rwx---rwx:- 属于普通文件,未设置SUID权限位
- 权限分配:文件所有者拥有读、写、执行权限,所属用户组无任何权限,其他用户拥有读、写、执行全权限
问题2:其他用户是否必须拥有执行权限才能“继承”文件所有者的权限?-rws------的具体含义是什么?
- 权限继承的前提:是的,其他用户必须先拥有该文件的执行权限,才能触发SUID的权限继承效果。SUID的作用逻辑是用户执行被设置SUID的文件时,进程的有效用户ID会切换为文件所有者的ID,如果用户没有该文件的执行权限,根本无法启动进程,自然不会触发权限继承。
-rws------的具体含义:该文件为普通文件,文件所有者拥有读、写、执行权限且文件被设置了SUID位,所属用户组和其他用户没有任何读、写、执行权限。这种配置下SUID实际无法生效,因为除所有者外的其他用户根本不能执行该文件。
问题3:用户te能否通过MyEditor编辑myText.txt文件?
结论是不能,推导逻辑如下:
- 先看MyEditor的权限
-rwsr--r-x,所有者为ed,所属组为noOne:- 用户
te不属于noOne组,属于其他用户范畴,对MyEditor拥有读、执行权限,可以正常启动程序 - MyEditor设置了SUID位,因此
te启动MyEditor后,进程的有效用户ID会切换为MyEditor的所有者ed
- 用户
- 再看myText.txt的权限
-r--rw--w-,所有者为ed,所属组为noOne:- 进程有效用户为
ed,作为文件所有者,ed对myText.txt的权限为r--,仅拥有读权限,无写权限 - 常规编辑器不会主动修改文件权限,仅会直接尝试读写目标文件,因此MyEditor以
ed身份运行时,无法写入myText.txt,自然无法完成编辑操作。
- 进程有效用户为
内容的提问来源于stack exchange,提问作者Eden Berdugo
相关产品推荐
相关产品推荐

