Linux系统用户基本权限ACL

Linux系统用户基本权限ACL

  • 1.基本权限
    • 1.1ACL
    • 1.2区别
    • 1.3语法
    • 1.4用法
  • 2.特殊权限(了解)
    • 2.1特殊位suid/sgid
    • 2.2文件属性chattr
    • 2.3进程掩码umask

1.基本权限

1.1ACL

ACL全称:access control list (访问控制列表)

1.2区别

  • 与基本权限UGO区别
    ACL文件权限管理: 设置不同用户,不同的基本权限(r、w、x)。对象数量不同。
    UGO设置基本权限: 只能一个用户,一个组和其他人。

1.3语法

 //语法:命令       设置      u/g(用户或组):用户名:权限    文件对象
 //示例:
[root@localhost ~]# setfacl -m u:alice:rw /home/test.txt 
[root@localhost ~]# setfacl -m g:jishuzu:rw /home/test.txt

1.4用法

1.准备文件

[root@localhost ~]# touch /home/test.txt
[root@localhost ~]# ll /home/test.txt
-rw-rw-r--+ 1 root root 0 7月  28 19:06 /home/test.txt

2.查看文件有哪些ACL权限

[root@localhost ~]# getfacl /home/test.txt
getfacl: Removing leading '/' from absolute path names
# file: home/test.txt
# owner: root
# group: root
user::rw-
user::rw-
group::r--
mask::rw-
other::r--

3.设置用户user1权限

[root@localhost ~]# setfacl u:user1:rw /home/test.txt
[root@localhost ~]# getfacl /home/test.txt
# file: home/test.txt
# owner: root
# group: root
user::rw-
user:user1:rw-                        //增加user1用户读写权限
group::r--
mask::rw-
other::r--

4.删除ACL权限

 //删除所有ACL权限
[root@localhost ~]# setfacl -b /home/test.txt
[root@localhost ~]# getfacl /home/test.txt
getfacl: Removing leading '/' from absolute path names
# file: home/test.txt
# owner: root
# group: root
user::rw-
group::r--
other::r--
 //删除用户user1的ACL权限
[root@localhost ~]# setfacl -x u:user1 /home/test.txt
[root@localhost ~]# getfacl /home/test.txt
getfacl: Removing leading '/' from absolute path names
# file: home/test.txt
# owner: root
# group: root
user::rw-
group::r--
mask::r--
other::r--

2.特殊权限(了解)

2.1特殊位suid/sgid

  • suid针对文件/程序时,具备临时获得属主的权限。
  • sgid针对文件/程序时,具备临时获得属组的权限。
 //示例:
[root@localhost ~]# ll /root/file1.txt 
-rw-r--r-- 1 root root 4 7月  27 14:14 /root/file1.txt
[root@localhost ~]# su - alice
[alice@localhost ~]$ cat /root/file1.txt
cat: /root/file1.txt: 权限不够
 //分析:root运行是超管的权限,普通用户运行时是普通用户的权限。
root /usr/bin/cat (root) /root/file1.txt          OK
alice /usr/bin/cat (alice) /root/file1.txt        NO
  • 设置suid,使普通用户通过suid临时提权,查看超管root用户的文件
 //1.cat程序添加上suid权限。
[root@localhost ~]# ll /usr/bin/cat          //查看root下cat程序权限
-rwxr-xr-x. 1 root root 54080 8月  20 2019 /usr/bin/cat
[root@localhost ~]# chmod u+s /usr/bin/cat   //增加suid权限
[root@localhost ~]# ll /usr/bin/cat
-rwsr-xr-x. 1 root root 54080 8月  20 2019 /usr/bin/cat
 //2.使用普通用户运行cat,暂时获得root权限。
[root@localhost ~]# su - user1               //切换普通用户user1
[user1@localhost ~]$ ll /usr/bin/cat         //普通用户查看到root权限下的内容,这很危险,慎重。
-rwsr-xr-x. 1 root root 54080 8月  20 2019 /usr/bin/cat
[root@localhost ~]# chmod u-s /usr/bin/cat   //删除suid权限,切记
[root@localhost ~]# ll /usr/bin/cat
-rwxr-xr-x. 1 root root 54080 8月  20 2019 /usr/bin/cat
 //sgid与suid同理,使子文件自动继承父目录的属组,同属组用户可以查看root权限下内容。更改权限运用 g+s

2.2文件属性chattr

  • 常用于锁定某个文件,拒绝修改。
    Linux系统用户基本权限ACL_第1张图片
  • 案例

1.先创建新文件进行对比,查看默认权限。

[root@localhost ~]# touch file100
[root@localhost ~]# lsattr file100
---------------- file100

2.加上不能删除的属性。

[root@localhost ~]# chattr +i file100        //不能更改,重命名,删除

3.查看不同属性

[root@localhost ~]# lsattr file100
----i----------- file100

4.尝试删除

[root@localhost ~]# rm -rf file100
rm: 无法删除"file100": 不允许的操作

5.将属性还原

[root@localhost ~]# chattr -i file100
[root@localhost ~]# lsattr file100
---------------- file100

2.3进程掩码umask

  • 新建文件、目录的默认权限会受到umask的影响,umask表示要减掉的权限。
  • 示例1:观察系统默认掩码
 //在shell进程中创建文件,先查看当前用户的umask权限,再查看文件及文件夹默认权限
[root@localhost ~]# umask 
0022
[root@localhost ~]# ll -d file100 file200 dir1
drwxr-xr-x. 2 root root 6 7月  28 19:56 dir1      //权限755
-rw-r--r--. 1 root root 0 7月  28 19:46 file100   //权限644
-rw-r--r--. 1 root root 0 7月  28 19:55 file200   //权限644
  • 示例2:修改shell umask值(临时)
[root@localhost ~]# umask 000
[root@localhost ~]# touch file300
[root@localhost ~]# mkdir dir2
[root@localhost ~]# ll -d file300 dir2
drwxrwxrwx. 2 root root 6 7月  28 20:01 dir2      //权限变为777
-rw-rw-rw-. 1 root root 0 7月  28 20:01 file300   //权限变为666
 //记得改回默认umask 0022

你可能感兴趣的:(Linux系统配置及服务基础,linux,centos)