4、Linux 用户的权限

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: 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的权限并不能正真生效

微信图片_20230527161957.png

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' 列出文件的属性,展示特别位



相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
2月前
|
Linux Shell
Linux系统文件默认权限
Linux系统文件默认权限
52 2
|
1月前
|
Linux 数据安全/隐私保护
linux特殊权限!!
本文介绍了Linux系统中的特殊权限,包括suid、sgid和sbit。suid使普通用户在执行特定命令时获得root权限;sgid使用户在创建文件时继承目录的用户组权限;sbit确保用户只能删除自己在共享目录中创建的文件。此外,文章还讲解了chattr和lsattr命令,用于更改和查看文件的扩展属性,以及umask的概念和计算方法,帮助理解文件和目录的默认权限。
43 1
linux特殊权限!!
|
2月前
|
运维 监控 安全
Linux_权限理解(详细PLUS)
【10月更文挑战第3天】本文介绍了Linux系统中的权限管理基础,包括文件系统对象与权限关联、权限的继承性、字符与数字表示法的解读,以及用户、组与权限的动态交互。详细解析了`chmod`命令的高级用法和权限修改的风险,探讨了SUID、SGID和Sticky Bit等特殊权限的作用机制,并提出了基于角色的权限分配和定期权限审计的最佳实践。
73 11
|
2月前
|
Linux 应用服务中间件 nginx
Linux下权限设置之suid、sgid、sticky
Linux下权限设置之suid、sgid、sticky
|
2月前
|
Linux 数据安全/隐私保护 Windows
Linux_权限理解(详细PLUS
Linux_权限理解(详细PLUS
|
2月前
|
网络协议 Linux 网络安全
【Linux】用户和权限及实用操作------迅速了解用户和权限及其实用操作
【Linux】用户和权限及实用操作------迅速了解用户和权限及其实用操作
|
2月前
|
Linux Go 数据安全/隐私保护
Linux入门2——初识Linux权限
Linux入门2——初识Linux权限
29 0
|
4月前
|
存储 安全 Linux
Linux权限之谜:一步步教你如何解锁sudo权限并窥视/etc/shadow的神秘面纱!
【8月更文挑战第22天】在Linux中,`sudo`命令让授权用户能以其他用户(通常是root)身份运行命令。关键的安全文件`/etc/shadow`存储用户密码哈希,仅root可读。要使用`sudo`,需确保账户被列入`sudoers`文件中。系统管理员可通过`visudo`编辑此文件来赋予用户权限,例如添加`username ALL=(ALL) NOPASSWD: ALL`行。获得`sudo`权限后,可运行`sudo cat /etc/shadow`查看文件内容,但需谨慎操作以免影响系统安全。遵循最小权限原则,确保安全使用这些强大工具。
111 2
|
4月前
|
Linux 数据安全/隐私保护
在Linux中,什么是文件权限?什么是rwx权限模型?
在Linux中,什么是文件权限?什么是rwx权限模型?
|
4月前
|
Unix Linux Shell
Linux 权限简介
Linux 权限简介
47 1