4、Linux 用户的权限

1、概念

我们首先了解一下用户的权限的概念

权限有三类对象,分别是

属主 u、属组 g、其他 o

但是还有特殊的对像,如:所有人:a(u+g+o

权限有三种类型,分别是

读:r=4、写:w=2、执行:x=1

但是还有特殊权限,如rws、rwS和rwt、rwT和其他特殊权限

2、基本权限设定

2.1 设定或者更改权限

我们在设置权限的时候普遍使用符号或者数字

2.1.1 使用符号

使用符号设置权限语法如下:

chmod  对象(u/g/o/a)赋值符(+/-/=)权限类型(r/w/x)  文件目录

以下是一些设置权限的例子

[root@test ~]# touch /1.txt
[root@test ~]# cd /
[root@test /]# ll 1.txt 
-rw-r--r--. 1 root root 0 3月  13 01:13 1.t
#给用户授权1.txt文件执行的权限
[root@test /]# chmod u+x /1.txt
[root@test /]# ll 1.txt 
-rwxr--r--. 1 root root 0 3月  13 01:13 1.txt
#给其他授予对文件1.txt读写执行的权限
[root@test /]# ll 1.txt 
-rwxr--rwx. 1 root root 0 3月  13 01:13 1.txt
#给其他取消对文件1.txt读写执行的权限
[root@test /]# chmod o-rwx /1.txt
[root@test /]# ll 1.txt 
-rwxr-----. 1 root root 0 3月  13 01:13 1.txt
#给其他授予对文件1.txt读和执行的权限,由于没有w权限,x权限是增加不上的
[root@test /]# ll 1.txt 
-r--r--r--. 1 root root 0 3月  13 01:13 1.txt
#以下就不一一展示了
#递归给文件夹下所有文件授予读写执行的权限
[root@test /]# chmod -R o+rwx /1 
#取消1.txt所有权限  
[root@test /]# chmod a=--- /1.txt  
#授予属主属组读写的权限
[root@test /]# chmod  ug=rw /file.txt 
#等于 chmod a+x 授权所有人执行的权限 
[root@test /]# chmod +x 

2.1.2 使用数字

使用数字设置权限语法如下:

chmod 权限数字 文件目录

以下是一些设置权限的例子

#设置所有权限
[root@test /]#chmod 777 /1.txt  
#取消所有权限
[root@test /]#chmod 000  /1.txt 

chmod -R 文件 给文件里所有的文件授权

4=r 5=rx 6=rw 7=rwx

2.2 更改属主/属组

2.2.1 chown

设置一个文件属于谁,属主。以下是一些例子

#修改文件的属主和属组
[root@test /]#chown mysql:mysql file1.txt 
#修改属组 
[root@test /]#chown .mysql file1.txt
#修改属主  
[root@test /]#chown mysql file1.txt  

- R 递归操作文件和目录

2.2.2 chogrp

只修改文件的属组,例子如下

#修改属组
[root@test /]#chogrp zixiang.liang /file1.txt  

3、基本权限ACL access control list 访问控制列表

往往在工作中我们会遇到一个文件多个属主属组都可以操作吗?这个时候我们就会用到使用访问控制列表

3.1 概念

限制用户对文件的访问,ACL是对UGO的补充。它和UGO的区别是

ACL文件权限管理可以设置不同的用户,不同的基本权限(r,w,x)。对象数量不同

UGO设置基本权限只能一个用户,一个组,其他人

3.2 语法

3.2.1 增加 setfacl -m

#给属主jacK添加对test.txt文件的读写执行
[root@test /]# setfacl -m u:jack:rwx /test.txt 
#给属组hr添加对test.txt文件的读写执行 
[root@test /]# setfacl -m g:hr:rwx /file1.txt  
#修改其他人的权限  修改other对文件的权限  类似 chomd o=rw  /file.txt
[root@test /]# setfacl -m o::rw /file.txt  

3.2.2 删除 setfacl -x

#删除alic用户对test.txt权限
[root@test /]# setfacl -x u:alic  /tmp/test.txt  
#删除属组hr对test.txt权限
[root@test /]# setfacl -x g:hr  /tmp/test.txt  

3.2.3移除到所有的扩展权限 setfacl -b

#移除所有的扩展权限
[root@test /]# setfacl -b /tmp/test.txt

3.2.4 查询权限 getfacl

#查询文件的特殊权限
[root@test /]# getfacl /tmp/text.txt  

4、特殊权限

我们带着问题来学习特殊权限,

我们用ll命令查看一个文件的时候,rwsrwxrwx 那么s 代表着什么?

如果有一个文件很重要,被超管删除了怎么办?

文件初始化权限为什么是644 ? 文件夹为什么是755?

4.1 特殊位 rws rwS权限(setuid)

以下就是我们第一个问题的答案

setuid:该位是让普通用户可以以root用户的角色运行只有root帐号才能运行的程序或命令。

s:文件属主和组设置SUID和GUID,文件在被设置了s权限后将以root身份执行,具备临时的提升的权限。在设置s权限时文件属主、属组必须先设置相应的x权限,否则s权限并不能正真生效

如Linux cat和passwd就是设置了SUID的程序

# 禁止使用
[root@test /]# chmod u-s  /usr/bin/cat  
#可以使用
[root@test /]# chmod u+s  /usr/bin/cat   

rws 和rwS的区别是:大写的S是代表这个文件没有X执行的权限,s的权限并不能正真生效

4.2 粘滞位 rwt rwT(t)

设置粘着位,一个文件可读写的用户并一定想让他有删除此文件的权限,如果文件设置了t权限则只能用属主和root有删除文件的权限,通过chmod +t filename 来设置t权限。

同样的,当没有x权限的时候,为大写T

设置粘滞位的文件,只能由以下账户删除

超级管理员

该目录的所有者

该文件的所有者

粘滞位的设置方法如下

[root@test /]# chmod u+t /1.txt

4.3 特殊权限 chattr

文件属性chattr

用途:操作符'+'用来在文件已有属性的基础上增加选定的属性; '-'用来去掉文件上的选定的属性;而'='用来指定该文件的唯一属性

字符'ASacdisu'用作文件新属性的选项,用法如下 chattr + i /1.txt

这里刚好解决我们第二个问题

[root@test /]#  chattr + i  /1.txt
#lsattr  1.txt' 列出文件的属性,展示特别位
[root@test /]#  lsattr /1.txt

字符'ASacdisu'代表意义如下

  • A 这个属性不允许更新文件的访问时间

  • a 文件只能追加内容

  • c 文件在磁盘上自动更新

  • d 不能使用dump命令备份文件

  • D 更改会同步保存在磁盘上

  • e 该文件使用磁盘上块的映射扩展

  • i 文件不能进行修改:你既不能删除它, 也不能给它重新命名,你不能对该文件创建链接, 而且也不能对该文件写入任何数据.

  • s 保密性删除文件或目录。

  • S 即时更新文件或目录。

  • u 预防意外删除

4.4 进程掩码 umask

新建文件、目录的默认权限会受到umask的影响,umask表示要减到的权限,我们观察系统umask

[root@test /]# umask
0022

创建文件夹权限 0777-0022 =755

创建文件权限 0777-0111=644

临时修改umask如下,但是不建议操作

[root@test /]# umask 0000

小知识

  • watch -n1 'ls -l test.txt' 每隔1s打印test.txt的详细信息

  • watch -n1 'lsattr test.txt' 列出文件的属性,展示特别位

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

multis

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值