Linux—权限管理
Linux 权限管理
1、权限简介
Linux权限是操作系统用来限制对资源访问的机制,权限一般分为读、写、执行。系统中每个文件都拥有特定的权限:属主、属组以及其他人,通过这样的机制来限制哪些用户或用户组可以对特定文件进行相应的操作。
1.1 权限分类
- 权限针对文件的三类对象:
| 全拼 | 翻译 | 简写 |
|---|---|---|
| owner | 属主 | u |
| group | 属组 | g |
| other | 其它人 | o |
- 权限的分类:
| 权限 | 对文件的影响 | 对目录的影响 |
|---|---|---|
| r(读取) | 可读取文件内容 | 可列出目录中内容 |
| w(写入) | 可修改文件内容 | 可在目录中创建删除内容 |
| x(执行) | 可作为命令执行 | 可访问目录内容 |
注意:目录必须拥有 x 权限,否则无法查看其内容
- 权限的表示方式:
| 第一种 | 第二种 |
|---|---|
| - - - | 0 |
| - - x | 1 |
| - w - | 2 |
| - w x | 3 |
| r - - | 4 |
| r - x | 5 |
| r w - | 6 |
| r w x | 7 |
1.2 Linux安全上下文
Linux每个进程都是以某个用户身份运行,进程的权限与该用户的权限一样,运行该进程的用户的权限越大,则进程拥有的权限就越大。
文件有属主和属组,进程有属主和属组
- 任何一个可执行程序文件能不能启动为进程,取决于发起者对程序文件是否拥有可执行权限
- 启动为进程后,其进程的属主为发起者,属组为发起者的基本组
- 进程访问文件时的权限取决于进程的发起者:
- 进程的发起者是文件的属主时,则应用文件属主权限
- 进程的发起者是文件的属组时,则应用文件属组权限
- 应用文件“其它”权限
2、权限管理命令
2.1 权限修改命令chmod
//权限修改主要修改三类对象的权限
//语法:chmod MODE file,...
-R //递归修改权限
//修改某类对象权限:u,g,o,a
权限修改的三种方式:
chmod 对象类别=MODE file,.....
chmod 对象类别=MODE,对象类别=MODE file,.....
例如:
[root@zsl ~]# chmod u=rwx zsl
[root@zsl ~]# chmod u=rwx,g=rwx zsl
chmod 对象类别+|-MODE file,.....
chmod 对象类别+|-MODE,对象类别+|-MODE file,.....
chmod +|-MODE file,.....
例如:
[root@zsl ~]# chmod u+rwx zsl
[root@zsl ~]# chmod u-x,g-x zsl
[root@zsl ~]# chmod +x zsl
chmod "mode number" file,.....
例如:
[root@zsl ~]# chmod 777 zsl
2.2 属主和属组修改命令chown
//chown命令只有管理员可以使用。
chown USERNAME file,...
-R //修改目录及其内部文件的属主
chown USERNAME:GROUPNAME file,...
chown USERNAME.GROUPNAME file,...
例如:
[root@zsl ~]# chown root.root zsl
[root@zsl ~]# chown root:root zsl
2.3 特殊权限
linux的权限默认是根据linux安全上下文的方式来控制的,而特殊权限的存在打破了linux安全上下文的规则。
SUID(4) //运行程序时,这个程序启动的进程的属主是程序文件自身的属主,而不是发起者为属主
chmod u+s file
chmod u-s file
//如果file本身原来就有执行权限,则SUID显示为s,否则显示为S
SGID(2) //运行程序时,这个程序启动的进程的属组是程序文件自身的属组,而不是启动者所属的基本组
//一旦某目录被设定了SGID,则对此目录有写权限的用户在此目录中创建的文件或目录,其所属的组为此设定了SGID的目录的属组
chmod g+s DIR
chmod g-s DIR
//如果file本身原来就有执行权限,则SGID显示为s,否则显示为S
SBIT(1) //公共目录,每个人都能创建文件,删除自己的文件,但是不能删除别人创建的文件
chmod o+t DIR
chmod o-t DIR
//如果DIR本身原来就有执行权限,则SBIT显示为t,否则显示为T
特殊权限的数字表示方式:
4755 //有SUID,文件权限为755
2755 //有SGID,文件权限为755
1755 //有Sticky,文件权限为755
//这里前面的4、2、1分别表示SUID、SGID、Sticky
2.4 文件系统访问控制列表facl
facl(Filesystem Access Control List),利用文件扩展保存额外的访问控制权限。
//语法:setfacl [-bkndRLP] { -m|-M|-x|-X ... } file ...
-m //设定权限条目
u:UID:perm
g:GID:perm
示例:
setfacl -m u:test:rw file
setfacl -m g:test:rw file
//如果要为某个目录设定默认的访问控制列表,只需要设定时在u或g前面加上d即可
示例:
setfacl -m d:u:test:rw file
//此时在此目录中创建的文件均继承此访问控制列表所设置的权限
-x //删除权限条目
u:UID
g:GID
示例:
setfacl -x u:test file
setfacl -x g:test file
-b //Remove all
示例:
setfacl -b file
//查看文件系统访问控制列表getfacl
//语法:getfacl [-aceEsRLPtpndvh] file ...
示例:
getfacl file
2.5 遮罩码
为什么文件创建以后默认权限是644?
为什么目录创建以后默认权限是755?
新建文件和新建目录的默认权限是由遮罩码umask来控制的。
从名字就能看出来,遮罩码umask是用来隐藏一些权限的。
举例:如果你不想让人家认出你,你会怎么办?
文件最终的权限为:
666-umask 文件最高权限 - 遮罩码 = 文件最终权限
目录最终的权限为:
777-umask 目录最高权限 - 遮罩码 = 目录最终权限
文件默认是不能具有执行权限的,如果文件有了执行权限则将其权限整体加1。
3、sudo借权
sudo可以实现某个用户能够以另外哪一个用户的身份通过哪些主机执行什么命令
sudo的配置文件:/etc/sudoers
//使用visudo命令进行sudo的配置,每一行就是一个sudo条目,条目格式如下:
示例:
who which_hosts=(runas) command
who : User,User_Alias //表示运行命令者的身份
which_hosts : Host,Host_Alias //通过哪些主机
runas : User,Runas_Alias //以哪个用户的身份
command : Command,Cmnd_Alias //运行哪些命令
//别名必须全部而且只能使用大写英文字母的组合,可以使用感叹号取反
//别名分类
1.用户别名:
User_Alias "Alias" =
用户的用户名
组名,使用%引导
还可以其它已经定义的用户别名
2.主机别名:
Host_Alias "Alias" =
主机名
IP地址
网络地址
其它主机别名
3.命令别名:
Cmnd_Alias =
命令路径
目录(此目录内的所有命令)
其它已定义的命令别名
//sudo命令语法:sudo [options] COMMAND
-V //显示版本编号
-h //帮助信息,会显示版本编号及指令的使用方式说明
-l //列出当前用户可以使用的所有sudo类命令
-v //重新做一次密码确认,如果超过N(默认为5)分钟,也会问密码
-k //立刻清除认证信息,如果不指定-k,默认认证信息在5分钟后失效
-b //将要执行的指令放在后台执行
-u USERNAME //以指定的用户名执行命令,默认为root
4、文件特殊属性命令
chattr命令用于改变文件的特殊属性。与chmod命令相比,chmod只是改变文件的读写、执行权限,而chattr是基于内核的更底层的属性控制。
命令格式:
chattr [选项] [+/-/=属性] [文件或目录]
选项:
-R //递归
-V //显示过程
模式:
+ //用于增加属性
- //用户删除属性
= //用于指定属性
A //告诉系统不要修改该文件的最后访问时间
a //只能向文件追加数据,不能删除
i //设定文件不能被删除,改名,写入或新增内容
示例:
[root@hzz ~]# chattr +a hzz.txt //为hzz.txt增加a属性
[root@hzz ~]# lsattr hzz.txt //查看文件特殊属性
-----a-------e-- hzz.txt
5、扩展命令
sleep //睡眠
//写脚本时为防止上一个命令没执行完下一命令就开始执行时可以sleep命令
//语法:sleep NUMBER[SUFFIX]...
SUFFIX:
s:秒,默认
m:分
h:小时
d:天
示例:
sleep 5 //表示睡眠5秒后再执行后面的命令
last //显示/var/log/wtmp文件内容,用户登录历史及系统重启历史
-n # //显示最近#次的相关信息
lastb //显示/var/log/btmp文件内容,用户错误的登录尝试
-n # //显示最近#次的相关信息
lastlog //显示每个用户最近一次成功登录信息
-u username //显示特定用户最近的登录信息
basename //显示路径基名
Linux—权限管理的更多相关文章
- Linux系列教程(十六)——Linux权限管理之ACL权限
通过前面的两篇博客我们介绍了Linux系统的用户管理,Linux用户和用户组管理之相关配置文件 讲解了用户管理的相关配置文件,包括用户信息文件/etc/passwd,用户密码文件/etc/shadow ...
- 【Linux】 Linux权限管理与特殊权限
Linux权限管理 权限管理这方面,非常清楚地记得刚开始实习那会儿是仔细研究过的,不知道为什么没有笔记留痕..除了一些基本的知识点早就忘光了,无奈只好从头开始学习一遍.. ■ 基本权限知识 这部分实在 ...
- Linux基础知识之用户和用户组以及 Linux 权限管理
已经开始接触Linux用户管理,用户组管理,以及权限管理这几个逼格满满的关键字.这几个关键字对于前端程序猿的我来说真的是很高大上有木有,以前尝试学 Linux 的时候看到这些名词总是下意识的跳过不敢看 ...
- Linux权限管理之ACL权限
注:转载自:https://www.cnblogs.com/ysocean/p/7801329.html 目录 1.什么是 ACL 权限? 2.查看分区 ACL 权限是否开启:dump2fs ①.查看 ...
- [Linux 003]——用户和用户组以及 Linux 权限管理(一)
嗬!没想到吧!学习 Linux 的第三天,我们已经开始接触用户管理,用户组管理,以及权限管理这几个逼格满满的关键字.这几个关键字对于前端程序猿的我来说真的是很高大上有木有,以前尝试学 Linux 的时 ...
- 用户和用户组以及 Linux 权限管理
1.从 /etc/passwd 说起 前面的基本命令学习中,我们介绍了使用 passwd 命令可以修改用户密码.对于操作系统来说,用户名和密码是存放在哪里的呢?我们都知道一个站点的用户名和密码是存放在 ...
- Linux权限管理(用户、组、文件管理)
一. Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示. 1. 文件查看类命令cat,tac, head, tail, more, less, ls ,file: -ls : l ...
- linux权限管理-特殊权限
目录 linux权限管理-特殊权限 一,特殊权限 Linux权限属性chattr概述 linux进程掩码umask linux权限管理-特殊权限 一,特殊权限 1.suid(4000) SetUID( ...
- linux权限管理-基本权限
目录 linux权限管理-基本权限 权限修改命令chmod linux权限管理-基本权限 权限 针对某些文件和进程,对用户进行限制 权限与用户的关系 rwx rwx r-x User Group Ot ...
- linux权限管理—基本权限
目录 Linux权限管理-基本权限 一.权限的基本概述 二.权限修改命令chmod 三.基础权限设置案例 四.属主属组修改命令chown Linux权限管理-基本权限 一.权限的基本概述 1.什么是权 ...
随机推荐
- IDEA windows版本快捷键
使用本快捷键前,可以在idea使用下面方法确认版本! Ctrl 快捷键 介绍 Ctrl + F 在当前文件进行文本查找 (必备)Ctrl + R 在当前文件进行文本替换 (必备) Ctrl + Z 撤 ...
- Python <算法思想集结>之抽丝剥茧聊动态规划
1. 概述 动态规划算法应用非常之广泛. 对于算法学习者而言,不跨过动态规划这道门,不算真正了解算法. 初接触动态规划者,理解其思想精髓会存在一定的难度,本文将通过一个案例,抽丝剥茧般和大家聊聊动态规 ...
- linux运维基础1
内容概要 运维简介 运维岗位职责 服务器 服务器硬件介绍 磁盘阵列 虚拟化软件及环境 虚拟化软件 安装操作系统 Vmware虚拟机安装及相关配置流程 内容详情 运维简介 运维岗位职责 核心:运行维护应 ...
- NODE.JS exports require理解
node.js exports 的作用是什么? 因为A.js文件想访问B.js文件中的类或函数,是不能直接访问的.为了解决这个问题 node.js 产生了 exports ,exports 实际可以理 ...
- 如何删除wps在我的电脑入口中的云文档图标
本人有强迫症,看着图标很难受,所以就找到了一种注册表删除的方法,操作如下: 呼出注册表面板, WIN+R 输入 regedit 打开注册表 找到如下路径 计算机\HKEY_CURRENT_USER\S ...
- 【Redis】Redis Cluster-集群故障转移
集群故障转移 节点下线 在集群定时任务clusterCron中,会遍历集群中的节点,对每个节点进行检查,判断节点是否下线.与节点下线相关的状态有两个,分别为CLUSTER_NODE_PFAIL和CLU ...
- UiPath存在元素Element Exists的介绍和使用
一.Element Exists的介绍 使您能够验证UI元素是否存在,即使它不可见,输出的是一个布尔值 二.Element Exists在UiPath中的使用 1. 打开设计器,在设计库中新建一个Se ...
- nginx转发rabbitmq
第一种: 直接加个location块 location /rabbitmq/ { proxy_pass http://127.0.0.1:15672/; } 第二种: location /rabbit ...
- runc hang 导致 Kubernetes 节点 NotReady
Kubernetes 1.19.3 OS: CentOS 7.9.2009 Kernel: 5.4.94-1.el7.elrepo.x86_64 Docker: 20.10.6 先说结论,runc v ...
- Tapdata 肖贝贝:实时数据引擎系列(四)-关于 Oracle 与 Oracle CDC
摘要:想实现 Oracle 的 CDC,排除掉一些通用的比如全量比对, 标记字段获取之外, 真正的增量形式获取变更, 有三种办法: Logminer .XStream .裸日志解析,但不管哪种方法 ...