系统学习-----Linux基本权限管理、特殊权限管理以及ACL权限管理

一、Linux基本权限管理

例子

[root@localhost ~]# ll

-rw-r–r--. 1 root root 30 2月 11 19:55 1.txt
-: 文件类型;普通文件
rw-: 属主拥有的权限 – 读写权限
r–: 属组拥有的权限 – 只读权限
r–: 其他人拥有的权限 – 只读权限
1: 链接引用数
root: 文件属主
root: 文件属组
30: 文件大小


文件的权限主要针对三类对象进行定义:
owner : 属主 u
group : 属组 g
other :其他 o
每个文件针对每类访问者都定义了三种权限:
r: readable 可读
w:writeable 可写
x:eXcutable 可执行

  • 文件:
    r:可以使用文件查看类工具获取其内容 4
    w:可以修改其内容 2
    x:可以把此文件提交给内核启动为一个进程 1
  • 目录:
    r: 可以使用ls查看目录中的文件列表
    w: 可以在此目录创建或删除文件
    x: 可以使用ls查看目录中的文件列表,以及可以cd到此目录中

问题

1.zhangsan用户能够进入/root/目录中吗?

[root@test ~]# ll -d /root
dr-xr-x---. 3 root root 255 Feb  7 06:24 /root

zhangsan 用户权限是 other —
答案:不能进入

  1. 将zhangsan用户添加附加组root ,zhangsan用户能够进入吗?
[root@localhost ~]# usermod -aG root zhangsan
[root@localhost ~]# id zhangsan
uid=1000(zhangsan) gid=1000(zhangsan)=1000(zhangsan),0(root)
[root@localhost ~]# su zhangsan
[zhangsan@localhost ~]# cd /root/
[zhangsan@localhost ~]# ls
1.txt  a  anaconda-ks.cfg  CentOS-7-x86_64-Minimal-1810.iso  Dockerfile  mc

答案:zhangsan – root r-x 能进入,但是没有w权限无法创建或删除文件

权限相关命令:

  • chmod命令: 设置文件权限
[root@test ~]# chmod --help
Usage: chmod [OPTION]... MODE[,MODE]... FILE...

常用选项:
-R: 递归修改

MODE
	u=[rwx]  : 设置属主权限
	g=[rwx]  : 设置属组权限
	o=[rwx]  : 设置其他权限

方式1:

[root@test ~]# ll hello 
-rw-r--r--. 1 root root 1 Feb  6 02:50 hello
[root@test ~]# chmod u=rwx,g=rw,o=rx hello 
[root@test ~]# ll hello 
-rwxrw-r-x. 1 root root 1 Feb  6 02:50 hello

方式2:
chmod [1-7][1-7][1-7] filename (r=4,w=2,x=1)

[root@test ~]# chmod 644 hello
-rw-r--r--. 1 root root 1 Feb  6 02:50 hello

  • chown命令: 改变文件属主和属组
[root@test ~]# chown --help 
Usage: chown [OPTION]... [OWNER][:[GROUP]] FILE...

常用选项:
-R: 递归修改

[OWNER]		指定属主
[GROUP]		指定属组
[root@test ~]# ll hello 
-rw-r--r--. 1 root wangwu 1 Feb  6 02:50 hello
[root@test ~]# chown wangwu:wangwu hello 	
[root@test ~]# ll hello 
-rw-r--r--. 1 wangwu wangwu 1 Feb  6 02:50 hello


  • chgrp命令:修改属组
[root@test ~]# chgrp --help
Usage: chgrp [OPTION]... GROUP FILE...

常用参数:
-r 参数

GROUP 指定属组

PS:
–reference=RFILE :以参考文件的属主属组来设定


  • umask命令
    文件或者目录的遮掩码: 当用户创建文件或者目录的时候的默认权限
    文件或目录的权限:
    FILE: 666-umask值(通常来说文件预设没有x权限)
    DIR: 777 - umask值
[root@localhost b]# umask 
0022
[root@localhost b]# touch 1.txt
[root@localhost b]# ll 1.txt
-rw-r--r--. 1 root root 0 2月  12 11:15 1.txt
[root@localhost b]# touch 2.txt
[root@localhost b]# ll 2.txt
-rw-r--r--. 1 root root 0 2月  12 11:15 2.txt
[root@localhost b]# umask 0042
[root@localhost b]# touch 3.txt
[root@localhost b]# ll 3.txt
-rw--w-r--. 1 root root 0 2月  12 11:17 3.txt

[root@test ~]# umask 0042 设定umask值
查看umask: umask

二、Linux特殊权限管理

文件的特殊权限:SUID SGID SBIT

SUID:借出程序所有者的权限 4

[root@test ~]# ll /usr/bin/passwd 
-rwsr-xr-x. 1 root root 27832 Jun 10  2014 /usr/bin/passwd

属主的执行x权限位:s --> SUID 权限

passwd命令:修改用户密码
根据权限可以得知同一用户或其他人都可以调用该命令;

/etc/shadow文件: 存放着用户及用户密码

passwd命令需要修改/etc/shadow文件

[root@test ~]# ll /etc/passwd
-rw-r--r--. 1 root root 1037 Feb  7 07:56 /etc/passwd
[root@test ~]# ll /etc/shadow
----------. 1 root root 797 Feb  7 07:56 /etc/shadow

问题:

  1. /etc/passwd文件仅仅root用户拥有w权限,其他用户没有
  2. 其他用户虽然可以调用passwd命令,但是无法写入到/etc/passwd文件

SUID权限作用: 其他用户没有权限修改/etc/passwd文件,但是root用户可以将
w权限赋予给其他用户去修改/etc/passwd命令

注意:

  1. SUID权限仅仅对二进制程序有效
  2. 执行者必须有用x权限
  3. 仅在本程序中拥有修改权限
  4. 属主拥有s权限,即可将自己的权限暂时借由他人使用,前提是要拥有x权限

SGID权限:借出用户组的权限 2

注意:

  1. 二进制程序有效
  2. 执行者拥有x权限
  3. 执行过程中暂时拥有用户组权限

umask 0022 默认遮掩吗

实验环境:

[root@localhost ~]# useradd zhangsan
[root@localhost ~]# useradd lisi
[root@localhost ~]# ll /home/
total 0
drwx------. 2 lisi     lisi     62 Aug  5 09:51 lisi
drwx------. 2 zhangsan zhangsan 62 Aug  5 09:51 zhangsan
[root@localhost ~]# chmod 2770 /home/zhangsan
[root@localhost ~]# ll -d /home/zhangsan
drwxrws---. 2 zhangsan zhangsan 62 Aug  5 09:51 /home/zhangsan
[root@localhost ~]# usermod -aG zhangsan lisi
[root@localhost ~]# su lisi
[lisi@localhost root]$ cd /home/lisi/
[lisi@localhost ~]$ touch 1.txt
[lisi@localhost ~]$ ll 
total 0
-rw-rw-r--. 1 lisi lisi 0 Aug  5 09:56 1.txt
[lisi@localhost ~]$ cd /home/zhangsan
[lisi@localhost zhangsan]$ touch 1.txt
[lisi@localhost zhangsan]$ ll
total 0
-rw-rw-r--. 1 lisi zhangsan 0 Aug  5 09:57 1.txt    

#lisi用户在SGID目录创建文件的属主为zhangsan(该目录的所属组)
上面创建的两个1.txt都是lisi创建的,属主都是lisi;而在zhangsan目录下创建的1.txt属主是zhangsan,即目录的属组。

这种权限特性可以在同一个用户组的多个用户拥有共同的目录,在创建文件时该用户组的所有用户具有相同的权限操作

通常一个属组中的用户在拥有SGID权限的目录下创建文件,属组都是该目录的所属组

Sticky: 对目录有效 1

[root@test ~]# ll -d /tmp/
drwxrwxrwt. 8 root root 172 Feb  8 01:16 /tmp/
  1. 当用户对此目录具有w|x权限时,及拥有写入权限
  2. 用户在此目录创建文件,只有自己和root用户有权限删除
  3. 用户不允许对其他用户进行任何操作

三、ACL权限

ACL 访问控制列表; 主要目的是在提供的传统的owner group w x r 权限之外的细部权限设定。
ACL 可以针对某一个使用者,某一个文件或者目录来设定rwx权限,对于需要特殊权限的使用状态非常有帮助。

setfacl 命令 : 设定权限

[root@test tmp]# setfacl --help 
setfacl 2.2.51 -- set file access control lists
Usage: setfacl [-bkndRLP] { -m|-M|-x|-X ... } file ...

常用选项:
-m : 添加acl设定参数
-x :删除acl设定参数
-b :移除所有的acl设定参数
-R :递归添加acl设定参数
-d : 添加默认acl设定参数(目录)

删除用户权限: setfacl -x u:username file
删除组权限: setfacl -x g:groupname file
删除整个acl权限: setfacl -b file

  • 实例1 针对用户的设定方式:
    设定规范:u:username:power
    1.设定user对testfile有rwx权限
    setfacl -m u:user:rwx testfile
    2.设定user对testdirectory目录下所有文件有rwx权限
    setfacl -R -m u:user:rwx testdirectory
    3.去掉user对testdirectory的x权限
    setfacl -x u:user testdirectory/
    4.去掉所有acl权限
    setfacl -b
    5.为testdirectory目录添加默认的acl权限,此目录下创建目录和文件,user都有rwx权限
    setfacl -d -m u:user:rwx testdirectory/

  • 实例2: 针对用户组的设定方式
    设定规范:g:groupname:power
  1. 给acl_test1文件添加mygropu1组rx权限设定
[root@study ~]# setfacl -m g:mygroup1:rx acl_test1 
[root@study ~]# getfacl acl_test1
# file: acl_test1
# owner: root
# group: root
user::rwx
user:vbird1:rx
group::r--
group:mygroup1:rx   # 组权限设定
mask::rx
other::r--

getfacl命令:查看acl权限设定

[root@test tmp]# getfacl testfile 
# file: testfile
# owner: root
# group: root
user::rw-
user:user:rwx	# 针对user用户具有rwx权限
group::r--
group:group1:rw-	# 针对group1组具有rw权限 
mask::rwx
other::r--	# 如果没有其他设定 默认属于other 
[root@test tmp]# ll testfile 
-rw-rwxr--+ 1 root root 0 Feb  8 02:29 testfile
[root@test tmp]# su user
[user@test tmp]$ echo "hello" > testfile
[user@test tmp]$ cat testfile 
hello

传统情况下,user用户只有r权限,但是acl权限的设定让user用户拥有w权限,所以可以针对testfile文件进行编辑操作。

发布了21 篇原创文章 · 获赞 3 · 访问量 968

猜你喜欢

转载自blog.csdn.net/weixin_46097280/article/details/104274031