Linux目录和文件权限

关山初度尘未洗,策马扬鞭再奋蹄!这篇文章主要讲述Linux目录和文件权限相关的知识,希望能为你提供帮助。
Linux目录和文件权限管理(上)?文件的属性信息?使用命令:ll /etc查看/etc目录下所有文件的详细信息?

文件的属性信息由以下几部分组成?
第一部分是文件类型权限。第1个字符一般用来区分文件的类型,常见的文件类型如下:?

  1. d:表示目录
  2. -:表示普通文件
  3. l:表示链接文件
  4. b:表示可供储存的接口设备,例如:U盘
  5. c:表示串行端口设备,例如:键盘、鼠标
第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 文件名?
【Linux目录和文件权限】添加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目录及子目录具有任何权限?





备注:如有错误,请谅解!
此文章为本人学习笔记,仅供参考!如有重复!!!请联系本人


    推荐阅读