Linux目录和文件权限管理(上)
文件的属性信息
使用命令:ll /etc查看/etc目录下所有文件的详细信息
文件的属性信息由以下几部分组成
第一部分是文件类型权限。第1个字符一般用来区分文件的类型,常见的文件类型如下:
第2-10个字符表示文件的访问权限
第二部分是文件数
第三部分是该文件(目录)所属用户
第四部分是该文件(目录)所属组
第五部分是该文件的大小
第六部分是文件创建或修改时间
第七部分是文件名
文件的权限
文件属性信息中第一部分的第2-10个字符表示文件的访问权限,这9个字符每3个为一组,第2、3、4个字符表示该文件所属用户的权限,第5、6、7个字符表示该文件所属用户组成员的权限,第8、9、10个字符表示该文件所属用户组外其他用户的权限
Linux文件的权限分为可读(r)、可写(w)、可执行(x)三种,如果不具备任何权限,则用“-”表示
以上图为例:图中groff目录的权限为例进行详细说明,其权限位rwxr-xr-x
2-4位rwx:表示root用户对groff目录具有可读可写可执行权限
5-7位r-x:表示root用户组中其他组成员对groff目录具有可读可执行权限,但不可写入
8-10位r-x:表示root组外的其他用户都groff目录具有可读可执行权限,但不可写入
设置文件权限(chmod)
1:命令作用
chmod命令主要用来设置文件或目录的访问权限
2:命令格式
chomd命令的格式位“chomd [选项] 目录名/文件名”
3:命令选项
chomd命令选项及含义
+:增减某种权限
-:取消某种权限
=:赋予给定权限
-R:递归处理,将指定目录下的所有文件及子目录一并处理
4:命令案例
目录和文件权限设置的方法有文字表示法和数字表示法两种
文字表示法
使用文字表示法设置权限时,用4个字母表示不同的用户
u:表示文件所属用户
g:表示文件所属组
o:表示文件所属组外其他用户
a:表示系统中所有用户
新建/mnt/file文件,设置所有用户都对文件可读可写
为/mnt/file文件的所属用户添加执行权限
取消其他用户对/mnt/file文件的读写权限
新建/mnt/test/testdir目录,再新建/mnt/test/testfile文件,设置/mnt/test目录及目录下所有文件对所有人都可读可写可执行
数字表示法
在实际设置文件权限时,通常采用数字表示法来表示权限的类型,此方法比较简便,所谓数字表示法,就是将可读(r),可写(w)、可执行(x)分别用数字4、2、1来表示,不具备任何权限用数字0来表示,在把三个数字相加
图中groff目录的权限为rwxr-xr-x,使用数字来代表各个权限
rwx:转化为数字是421,数字相加得7
r-x:转化为数字是401,数字相加得5
r-x:转化为数字是401,数字相加得5
因此,groff目录的权限用数字表示法就是755
创建一个/mnt/hcit目录,设置目录所属用户对该目录有全部权限,目录所属组成员对该目录有可读可写权限,其他用户只有可读权限
修改文件拥有者(chown)
1:命令作用
chown命令用于修改文件和目录的所属用户和所属组
2:命令格式
chown命令格式有两种:“chown [选项] 用户 文件或目录名”和“chown [选项] 用户: 用户组 文件或目录名”
3:命令选项
chown命令选项及含义
-r:忽略错误信息
-R:处理指定目录以及目录下的所有文件
-v:显示详细的处理信息
4:命令案例
新建一个用户user1,并在/mnt/hcit目录下新建三个文件file1、file2、file3将/mnt/hcit目录下file1文件的所属用户改为user1
将/mnt/hcit目录下file1文件的所属组修改为user1
将/mnt/hcit目录及目录下文件的所属用户和所属组都改为user1
修改文件所属组(chgrp)
1:命令作用
chgrp命令用于变更文件或目录的所属用户组
2:命令格式
chgrp命令的格式为“chgrp [选项] 用户组 目录名/文件名”
3:命令选项
chgrp命令选项及含义
-f:忽略错误信息
-R:处理指定目录以及其子目录下的所有文件
-v:显示详细的处理信息
4:命令案例
将/mnt/hcit目录下file1文件的所属组修改为root
将/mnt/hcit目录及目录下文件的所属组都改为root
Linux目录和文件权限管理(下)
SUID权限
1:SUID权限的作用
SUID是Set User ID的简称,它是一种对二进制程序进行设置的特殊权限,可以让二进制程序的执行者临时拥有所属组的权限
2:SUID权限设置格式
SUID权限设置可以用文字表示法和数字表示法
文字表示法
数字表示法
命令功能
chmod u+s 文件名
chmod 4xxx 文件名
添加SUID权限
chmod u-s 文件名
chmod 0xxx 文件名
取消SUID权限
3:命令案例
在Linux中,所有账号的密码记录在/etc/shadow这个文件中,并且只有root可以读该文件。增加普通用户admin查看/etc/shadow文件内容
在Linux系统中查看文件内容可以使用cat命令,cat命令所在路径是/bin/cat
代码具体解释如下:
执行命令“ll /bin/cat”查看文件属性
执行命令“chmod 4755 /bin/cat”,可以给cat命令设置SUID权限
执行命令“ll /bin/cat”,可以看到文件属性中所有者权限x变为s,表示SUID权限生效
执行命令“su admin”,切换到普通用户admin
执行命令“cat /etc/shadow”,可以看到不同用户admin也可以读取/etc/shadow文件中的内容
SGID权限
1:SGID权限的作用
SGID是Set Group ID的简称,它是让执行者临时拥有所属组的权限,即在某个目录下创建的文件自动继承该目录的用户组(只可以对目录进行设置)
2:SGID权限设置格式
SGID权限设置可以用文字表示法或者数字表示法
文字表示法
数字表示法
命令功能
chmod g+s文件名
chmod 2xxx 文件名
添加SGID权限
chmod g-s 文件名
chmod 0xxx 文件名
取消SGID权限
3:命令案例
使用admin用户登录,创建/mnt/test目录,要求该目录下创建的文件都具有admin组的属性
SBIT权限
1:SBIT权限的作用
SBIT是StickBIT的简称,主要用来防止其他用户修改或删除非本人的目录和文件
2:SBIT权限设置格式
SBIT权限设置可以用文字表示法和数字表示法
文字表示法
数字表示法
命令功能
chmod o+t文件名
chmod 1xxx 文件名
添加SBIT权限
chmod o-t 文件名
chmod 0xxx 文件名
取消SBIT权限
ACL权限
ACL的全称是Access Control List(访问控制列表),一个针对文件/目录的访问控制列表,为文件系统提供一个额外的,更灵活的权限管理机制。ACL允许给任何的用户或用户组设置任何文件/目录的访问权限,只有root用户可以定义ACL
例如,默认情况下一个文件需要设置3个权限组,owner、group和other,而使用ACL,可以增加权限给其他用户或组别,可以允许指定用户A、B、C拥有写权限而不再是让整个组拥有写权限
查看ACL权限(getfacl)
1:命令作用
getfacl命令主要用来查看ACL权限
2:命令格式
getfacl命令的格式为“getfacl [选项] 文件名”
3:命令选项
getfacl命令选项及含义
-a:仅显示文件访问控制列表
-c:不显示注释表头
-d:仅显示默认的访问控制列表
-e:显示所有的有效权限
-n:显示数字的用户/组标识
-t:使用制表符分隔的输出格式
4:命令案例
简要查看/etc目录的ACL权限
查看/etc目录的ACL权限,不显示注释表头
查看/etc目录的有效ACL权限
使用制表符分隔格式查看/etc目录的ACL权限
设置ACL权限(setfacl)
1:命令作用
setfacl命令主要用来设置ACL权限
2:命令格式
setfacl命令的格式为“setfacl [选项] 文件名”
3:命令选项
setfacl命令选项及含义
-b:删除所有扩展访问控制列表条目
-d:应用到默认访问控制列表的操作
-k:移除默认访问控制列表
-m:更改文件的访问控制列表
-R:递归操作子目录
-x:根据文件中访问控制列表移出条目
4:命令案例
新增用户user2,设置user2用户对/etc目录只有可读权限
新增用户user3,设置user3用户对/etc目录及子目录具有读写权限
新增group1用户组,设置group1组中所有用户对/etc目录及子目录具有任何权限
备注:如有错误,请谅解!
此文章为本人学习笔记,仅供参考!如有重复!!!请联系本人