第1章:初识Linux系统——第8节:查看/修改权限控制和ACL

目录

一、基本知识

二、查看/修改权限控制

①chmod命令

1.功能

(1)文字设定法

(2)数值设定法

2.其他

②chown命令

1.语法

2.功能

[③chgrp 命令](#③chgrp 命令)

1.语法

2.功能

三、ACL

1.Setfacl

①语法

②功能

③选项

④ACL规则(rules)的指定模式

2.getfacl

①语法

②功能



一、基本知识

  1. r表示读权限:针对文件可以查看文件内容;针对文件夹,可以查看文件夹内容,如ls命令
  2. w表示写权限:针对文件表示可以修改此文件;针对文件夹,可以在文件夹内:创建、删除、改名等操作
  3. x表示执行权限:针对文件表示可以将文件作为程序执行;针对文件夹,表示可以更改工作目录到此文件夹,即cd进入



二、查看/修改权限控制

①chmod命令

1.功能

修改文件或目录的权限。只有文件主或超级用户root才有权用chmod改变文件或目录的存取权限。通过chmod修改文件或目录权限有两种方法。

(1)文字设定法

chmod [who] [操作符号] [权限] 文件或目录名

使用字母和操作符表达式来修改或设定文件的访问权限。具体描述如表:

例1:取消/mnt/bb.txt所有者用户写和执行的权限,同组用户执行的权限。

root@localhost mnt\]# ll drwxrwxrwx. 2 root root 4096 10月 24 17:09 b -rw-rw-rw-. 1 root root 0 10月 24 17:09 bb.txt 例2:将/root/b目录中的所有文件权限设置为所有人都可读取及写入。 \[root@localhost \~\]# chmod a=rw b \[root@localhost \~\]# ll drw-rw-rw-. 2 root root 4096 9月 19 23:04 b

(2)数值设定法

chmod [-R] <八进制模式> <文件或目录名>

数字表示法是指将读取(r)、写入(W)和执行权限(x)分别使用"0"或"1"的二进制数来表示,有权限的表示为1,没有的权限就表示为0,然后转化为八进制数。如表:

例1:为文件/root/bb.txt设置权限:赋予所有者和组群成员读取和写入的权限,而其他人只有读取权限。则应该将权限设为"rw-rw-r--",而该权限的数字表示法为664。

root@localhost \~\]# chmod 664 bb.txt \[root@localhost \~\]# ll -rw-rw-r--. 1 root root 0 9月 19 23:04 bb.txt


2.其他

我们可以使用chmod命令,修改文件、文件夹的权限信息。

注意,只有文件、文件夹的所属用户或root用户可以修改。

权限的数字序号

权限可以用3位数字来代表,第一位数字表示用户权限,第二位表示用户组权限,第三位表示其它用户权限。 数字的细节如下:r记为4,w记为2,x记为1,可以有:

  • 0:无任何权限,即 ---
  • 1:仅有x权限,即 --x
  • 2:仅有w权限,即 -w-
  • 3:有w和x权限,即 -wx
  • 4:仅有r权限,即 r--
  • 5:有r和x权限,即 r-x
  • 6:有r和w权限,即 rw-
  • 7:有全部权限,即 rwx

所以751表示: rwx(7) r-x(5) --x(1)




②chown命令

1.语法

chown [选项] 属主:属组 文件或目录列表

或chown [选项] 属主.属组 文件或目录列表


2.功能

修改文件的所有者或者所属组群。只有root用户才能改变文件的所有者,而只有root用户或所有者才能改变文件所属的组。用户和属组可以是名称也可以是UID或GID。多个文件之间用空格分隔。

例1:修改/root/b目录的所有者修改为u1用户。

root@localhost \~\]# ll drw-rw-rw-. 2 root root 4096 9月 19 23:04 b \[root@localhost \~\]# chown u1 b \[root@localhost \~\]# ll drw-rw-rw-. 2 u1 root 4096 9月 19 23:04 b 例2:同时修改/root/bb.txt文件的所有者为u1和所属组为g1。 \[root@localhost \~\]# chown u1:g1 bb.txt \[root@localhost \~\]# ll -rw-rw-r--. 1 u1 g1 0 9月 19 23:04 bb.txt 例3:只修改/root/b目录的所属组为g1。 \[root@localhost \~\]# chown .g1 b \[root@localhost \~\]# ll drw-rw-rw-. 2 u1 g1 4096 9月 19 23:04 b


使用chown命令,可以修改文件、文件夹的所属用户和用户组

普通用户无法修改所属为其它用户或组,所以此命令只适用于root用户执行




③chgrp 命令

1.语法

chgrp [选项] 属组 文件或目录列表


2.功能

用来改变所属组

例1:修改/root/b目录的所属组为root。

root@localhost \~\]# chgrp root b \[root@localhost \~\]# ll drw-rw-rw-. 2 u1 root 4096 9月 19 23:04 b




三、ACL

FACL是访问控制列表(File Access Control Lists)的缩写,简称 ACL。可以针对任意指定的用户/组分配RWX权限。

Linux中ACL有两种类型:

  • 存取 ACL(access ACLs):是对指定文件或目录的存取控制列表。
  • 默认 ACL(default ACLs):只能和目录相关。若目录中的文件没有存取 ACL,就会使用该目录的默认 ACL。但是访问ACL的优先级更高。默认 ACL 是可选的。

1.Setfacl

①语法

setfacl [-bkdR] [{-m|-x} rules ] [files or directory ]

②功能

给文件或目录设置ACL功能。

③选项

  • -x:删除文件或目录的ACL规则。
  • -b:删除文件或目录的所有ACL规则。
  • -k:删除文件或目录默认的ACL规则。
  • -d:指定文件或目录默认的ACL规则。
  • -test:测试模式,不会改变任何文件和目录的ACL.规则,操作后的ACL规则将被显示,
  • -R:对目录进行递归操作。

④ACL规则(rules)的指定模式

  • [d:]u:uid:perms --- 为指定的用户(使用 UID 或用户名)设置ACL权限
  • [d:]g:gid:perms --- 为指定的组(使用 GID 或组名)设置ACL权限
  • [d:]o:[:]perms --- 为其他用户设置ACL权限
  • [d:]m:[:]perms --- 设置有效的访问掩码

其中,[d:]表示配置用户对文件或目录的默认的ACL,perms为权限r、w、x、-的组合。

例1: 授予用户lisa读的权限:setfacl -m u:lisa:r file

取消所有用户合所有组对file写的权限:setfacl -m m::rx file

删除staff组对file操作的权限:setfacl -x g:staff file

复制一个文件file1的acl到另一个文件file2上:getfacl file1 | setfacl --set-file=- file2


2.getfacl

①语法

getfacl [选项] [files or directory]

②功能

查看文件或目录的ACL。

(1)-d;显示默认的ACL。

(2)-R:显示目录及其子目录和文件的ACL。

例1:IT协会的学生需要创建/dzxx/test目录,该目录需要满足下列要求:

(1)g1组的用户对此目录有完全权限。

(2)u1对此目录有r-x权限。

(3)u2对此目录有r--权限。

root@localhost \~\]# mkdir -p /dzx/test 设置用户u1用户r-x权限 \[root@localhost \~\]# setfacl -m u:u1:rx /dzx/test/ 设置u2用户r--权限 \[root@localhost \~\]# setfacl -m u:u2:r /dzx/test/ 设置g1组所有权限 \[root@localhost \~\]# setfacl -m g:g1:rwx /dzx/test/ 查看acl信息 \[root@localhost \~\]# getfacl /dzx/test/ getfacl: Removing leading '/' from absolute path names # file: dzx/test/ # owner: root # group: root user::rwx user:u1:r-x user:u2:r-- group::r-x group:g1:rwx mask::rwx other::r-x

相关推荐
一个处女座的程序猿O(∩_∩)O3 小时前
深入浅出 SSE:实现服务器向客户端的单向实时通信
运维·服务器
捷智算云服务3 小时前
DGX A100服务器常见故障解析与维修攻略
运维·服务器
安当加密3 小时前
基于TDE透明加密实现异地服务器间文件自动加密传输的实践与思考
运维·服务器
北塔软件3 小时前
各品牌服务器IPMI配置实战经验分享
服务器·git·github
悠悠121383 小时前
Jenkins 从0基础到有点基础——如何安装
运维·jenkins
我爱钱因此会努力4 小时前
初始化服务器
linux·运维·服务器·tcp/ip·centos
祈祷苍天赐我java之术4 小时前
什么是Nginx?:掌握高性能 Web 服务器核心技术
服务器·前端·nginx
曦月合一4 小时前
解决由于没有远程桌面授权服务器可以提供许可证,远程会话被中断.的方法
运维·服务器·window server
angushine4 小时前
Shell脚本判断服务器SSH免密是否配置完成
运维·服务器·ssh