ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
Linux不同的字符来区分文件类型。常见如下: - -:普通文件 - d:目录文件 - l:链接文件 - b:块设备文件 - c:字符设备文件 - p:管道文件 对应目录文件,“可读”表示能够读取目录内的文件列表;“可写”表示能够在目录内新增、删除、重命名文件;而“可执行”表示能够进入该目录。 文件的读、写、执行权限简写为rwx,数字分别4、2、1表示。文件所有者,所属组及其他用户权限之间无关联 文件权限的字符与数字表示 权限分配 文件所有者 文件所属组 其他用户 权限项 读 写 执行 读 写 执行 读 写 执行 字符表示 r w x r w x r w x 数字表示 4 2 1 4 2 1 4 2 1 ![Image](https://box.kancloud.cn/9b45e827befb5cd306b45b2f628257f5_702x168.png) #### SUID SUID是一种对二进制程序进行设置的特殊权限,可以让二进制程序的执行者临时拥有属主的权限(仅对拥有执行权限的二进制程序有效)。**用户密码保存在/etc/shadow文件中。**在使用passwd命令时如果加上SUID特殊权限位,就可让普通用户**临时获得程序所有者的身份**,把变更的密码信息写入到shadow文件中。 查看passwd命令属性时发现所有者得权限由rwx变成了rws,其中x变成了s意味着该文件被赋予了SUID权限。如果原本的权限是rw-,原先权限位上没有x执行权限,那么被赋予特殊权限后将变成大写的S。 如:ls -l /etc/shadow ; ls -l /bin/passwd #### SGID SGID主要实现两种功能: - 让执行者临时拥有属组的权限(对拥有执行权限的二进制程序进行设置); - 在某个目录中创建的文件自动继承该目录的用户组(只可以对目录进行设置)。 如:在某个目录中创建文件自动继承该目录的用户组 cd /tmp mkdir testdir ls -ald testdir chmod -Rf 777 testdir/ chmod -Rf g+s testdir/ ls -ald testdir/ # 上述命令是设置好目录777权限(确保普通用户可以向其写入文件),并设置了SGID \# 特殊权限位。下面切换普通用户,并在该目录中创建文件,查看是否继承新创建的文# 件所在的目录的所属组名称。 su -linuxprobe cd /tmp/testdir/ echo “linuxprobe.com” > test ls -al test **chmod是用来设置文件或目录的权限,格式为“chmod \[参数\] 权限 文件或目录名称”** 如:chmod 760 test **chown是设置文件或目录的所有者和所属组,格式为“chown \[参数\] 所有者:所属组 文件或目录名称”** **chmod****和chown共性,就是针对目录进行操作时需要加上大写参数-R表示递归。** 如:ls -l test ; chown root:bin test ; ls -l test(结果是所有者为root和所属组为bin) #### SBIT SBIT(粘滞位)特殊权限位可确保用户只删除自己的文件,而不能删除其他用户的文件。 当目录被设置SBIT特殊权限后,文件其他人权限部分的x执行权限就会被替换成t或者T,原本有x执行权限则会写成t,原本没有x执行权限则会被写成T。 其实文件能否被删除并不取决于自身的权限,而是看其所在目录是否有写入权限。 如:su – linuxprobe ; ls – ald /tmp ; cd /tmp ; ls -ald ; echo “Welcome to linuxprobe.com” > test ; chmod 777 test ; su – blackshield ; cd /tmp ; rm -f test (rm:cannot remove `test`:Operation not permitted) **要是也想对其他目录来设置SBIT特殊权限位,用chmod命令就可以了。对应的参数o+t代表设置SBIT粘滞位权限** 如:cd ~ ; mkdir linux ; chmod -R o+t linux/ ; ls -ld linux/