[ 知识是人生的灯塔,只有不断学习,才能照亮前行的道路 ]
0x00 前言简述
描述:前一章,学习了Linux系统中的用户与用户组的管理,此章节我们将继续学习Linux系统中比较基础且重要的文件权限设置与属性管理,在Linux系统运维中,文件权限设置与属性管理是至关重要的,也是Linux运维工程师必须掌握的技能之一。
温馨提示:Linux 程序访问文件目录的权限,取决于程序的发起者,若程序的发起者是root,那么访问文件目录的权限就是root用户,若发起者是普通用户,那么访问文件目录的权限就是发起者的,有可能由于权限不足而被拒绝读写。
温馨提示:如果小伙伴们在其他平台看到此文章,一定要关注访问作者首发公众号《全栈工程师修炼指南》,给作者持续创作的动力!
例如,查看当前目录下的 install.log
文件权限。
$ ls -l install.log
-rw-r--r-- 1 root root 0 Jun 13 15:18 install.log
$ ls -alh /etc/passwd
- rw-r--r-- 1 root root 1.6K May 9 17:10 /etc/passwd
[类型] [权限] [连接数] [所属者] [所属组] [文件大小] [修改时间] [文件名称]
# 复习知识:文件类型
- 表示一般文件
d 表示目录
l 表示连接文件
b 表示块设备
c 表示串行字符设备
s 表示数据接口文件
其中,权限部分为所属者Owner,u
,所属组 Group,g
,以及其他人 Other,o
。
$ ls -alh /etc/shadow
- rw- r-- --- 1 root shadow 842 May 9 17:10 /etc/shadow
[owner] [group] [other]
文件权限说明
在Linux系统中,每个文件针对每类访问者,都定义了三种权限即(rwx)常用八进制数展示,除此以外还有三种特殊权限,后续在做介绍。
# 例如,文件目录最不安全的权限 777 ,所属者,所属组,以及其他人都有读写执行权限,在服务器中是非常不安全的。
rwx = 4 + 2 + 1 = 7
# 文件,其中常见权限 644
r, Readable 在文件中表示读权限(4)
w, Writeable 在文件中表示写权限(2)
x, Executable 在文件中表示执行权限(1)
# 目录,其中常见权限 755
r, read contents in directory 在目录中表示读取权限(4),可查询该目录下的文件名数据;
w, modify contents in directory 在目录中表示修改权限(2), 可更改该目录结构列表(名称、删除、重命名)权限
x, access directory 在目录中访问执行权限(1), 可否进入该目录成为工作目录的用途
以数字的表示权限的方法,例如:
权限 | 文件类型 | 读、写、执行 | 读、写、执行 | 读、写、执行 |
---|---|---|---|---|
字符表示 | d,l,c,s,p | r,w,x | r,w,x | r,w,x |
数字表示 | - | 4, 2, 1 | 4, 2, 1 | 4, 2, 1 |
权限分配 | - | 文件所有者 | 文件所属组用户 | 其他用户 |
以八进制数表示的方法,例如:
权限 | 八进制 | 十进制 |
---|---|---|
--- | 000 | 0 |
--x | 001 | 1 |
-w- | 010 | 2 |
-wx | 011 | 3 |
r-- | 100 | 4 |
r-x | 101 | 5 |
rw- | 110 | 6 |
rwx | 111 | 7 |
补充说明: 将目录
给任何人浏览时,应该至少要给予r或x的权限,但是w权限一般不能随便给,同样的道理,要给任何人查看文件
时,至少要给予r权限,但是w和x权限一般不能随便给。
Q: 在Linux中使用那些命令来改变文件属性与权限呢?
chown
命令: 改变文件或者目录所有者,例如:chown -R weiyigeek:worker /app/
chgrp
命令: 改变文件或者目录所属用户组,例如:chgrp -R weiyigeek /app/
chmod
命令: 改变文件或者目录的权限, 例如:chown 644 /app/config.txt
umask
命令: 改变文件或者目录默认权限, 例如:umask 022
下面我们来详细的学习一下实践文件目录所属者切换、文件目录权限、文件特殊权限,以及文件目录ACL访问控制列表的配置操作!