Linux文件权限管理
[root@timy-test-k8s01 ~]# lltotal 8-rw-------.1 root root 1324 Apr 14 03:23 anaconda-ks.cfgdrwxr-xr-x. 13 root root 4096 Apr 23 22:53 Desktop最开头的 - 代表是一个普通文件,通过touch创建最开头的 d 代表是一个文件夹,通过mkdir创建最开头的 l 代
[root@timy-test-k8s01 ~]# ll
total 8
-rw-------. 1 root root 1324 Apr 14 03:23 anaconda-ks.cfg
drwxr-xr-x. 13 root root 4096 Apr 23 22:53 Desktop
最开头的 - 代表是一个普通文件,通过touch创建
最开头的 d 代表是一个文件夹,通过mkdir创建
最开头的 l 代表是一个软连接,快捷方式类型
例如Destop文件夹
rwx 代表属主,代表可读 可写 可执行 文件夹主人的权限
#第一列的权限属于root (属主,文件的主人) user
r-x 代表属组,代表可读 不可写 可执行 文件夹所属组的权限
#第二列的属于root (属组,文件呆在的用户组) group
r-x 代表其他人,代表可读 不可写 可执行 第三者的权限
#第三列既不属主,又不属组,就属于其他人的身份 other
r read 可读 可以使用cat、more、less、head、tail等命令查看文件内容
w write 可写 可以用vim、重定向符号等,向文件中写入内容
x executble 可执行 文件是可以执行的
- 没有权限
更改文件权限的命令
chmod u+x filename.txt #给文件的user属主添加可执行权限
chmod 0 filename.txt #取消文件所有的权限
chmod u-w dilename.txt #取消文件的写入权限
对于文件的读写执行,是如下意思
r cat more less命令
w vim 写入
x 可以执行如shell等脚本
文件夹的读写执行
r ls命令,可读
w 文件夹必须先有x权限,才可以在文件夹中,创建新文件,touch、mkdir等操作
x 可以cd进入文件夹
chmod命令
chmod命令用来变更文件或目录的权限
在UNIX系统家族里,文件或目录的控制分别以读取、写入、执行3种一般权限来区分,另有3种特殊权限可供运用
用户可以使用chmod指令去变更文件与目录的权限,设置方式采用文字或数字代号皆可
符号连接的权限无法变更,如果用户对符号连接修改权限,其改变作用在被连接的原始文件
文件权限的数字与字母转化
r read 4
w write 2
x exec 1
- 0
user,group,other的最大权限:rwx 4+2+1=7
user,group,other的最小权限:--- 0+0+0=0
案例
练习文件权限的数字与字母转化
1.普通文件
此时有个文件的权限如下
- rw- (user) r--(group) r--(other) test.tx
#修改test.txt的文件权限是属主只读,属组,其他人没有权限
[root@timy-test-k8s01 Desktop]# ll total 44 -rw-r--r--. 1 root root 17 Apr 22 05:25 alex.txt drwxr-xr-x. 12 root root 4096 Apr 24 03:32 alltemp -rw-r--r--. 1 root root 656 Apr 23 22:02 alltemp1.tar.gz -rw-r--r--. 1 root root 20480 Apr 23 21:56 alltemp.tar -rw-r--r--. 1 root root 14 Apr 19 21:34 mjj.txt -rwxr-xr-x. 1 root root 66 Apr 16 04:14 test.sh -rwxrwxrwx. 1 root root 43 Apr 23 02:55 test.txt [root@timy-test-k8s01 Desktop]# chmod 400 test.txt [root@timy-test-k8s01 Desktop]# ll total 44 -rw-r--r--. 1 root root 17 Apr 22 05:25 alex.txt drwxr-xr-x. 12 root root 4096 Apr 24 03:32 alltemp -rw-r--r--. 1 root root 656 Apr 23 22:02 alltemp1.tar.gz -rw-r--r--. 1 root root 20480 Apr 23 21:56 alltemp.tar -rw-r--r--. 1 root root 14 Apr 19 21:34 mjj.txt -rwxr-xr-x. 1 root root 66 Apr 16 04:14 test.sh -r--------. 1 root root 43 Apr 23 02:55 test.txt
#修改test.txt权限为属组只读,属主只写,其他人只读(默认角色一定是user group other,r w x顺序默认)
#字母表示形式
[root@timy-test-k8s01 Desktop]# chmod u=w,g=r,o=r test.txt [root@timy-test-k8s01 Desktop]# ll total 44 -rw-r--r--. 1 root root 17 Apr 22 05:25 alex.txt drwxr-xr-x. 12 root root 4096 Apr 24 03:32 alltemp -rw-r--r--. 1 root root 656 Apr 23 22:02 alltemp1.tar.gz -rw-r--r--. 1 root root 20480 Apr 23 21:56 alltemp.tar -rw-r--r--. 1 root root 14 Apr 19 21:34 mjj.txt -rwxr-xr-x. 1 root root 66 Apr 16 04:14 test.sh --w-r--r--. 1 root root 43 Apr 23 02:55 test.txt
#数字表示形式
[root@timy-test-k8s01 Desktop]# chmod 244 test.txt [root@timy-test-k8s01 Desktop]# ll total 44 -rw-r--r--. 1 root root 17 Apr 22 05:25 alex.txt drwxr-xr-x. 12 root root 4096 Apr 24 03:32 alltemp -rw-r--r--. 1 root root 656 Apr 23 22:02 alltemp1.tar.gz -rw-r--r--. 1 root root 20480 Apr 23 21:56 alltemp.tar -rw-r--r--. 1 root root 14 Apr 19 21:34 mjj.txt -rwxr-xr-x. 1 root root 66 Apr 16 04:14 test.sh --w-r--r--. 1 root root 43 Apr 23 02:55 test.txt
#修改文件权限为755,然后用字母表示改权限
chmod 755 test.txt
7(user)5(group)5(other)
user=7=4+2+1 rwx
group=5=4+1 r-x
other=5=4+1 r-x
文件权限
权限范围:
操作对象:
u 文件属主权限
g 同组用户权限
o 其他用户权限
a 所有用户权限(包括以上三种)
权限设定:
+ 增加权限
- 取消权限
= 唯一设定权限
权限类别:
r 读权限
w 写权限
x 执行权限
X 表示只有当该文档是个子目录或者该文档已经被设定过为可执行。
s 文件属主和组id
i 给文件枷锁,使其他用户无法访问
chown命令
修改文件属主,属组信息
语法:
chown 新属主的名字 文件/文件夹
chown :属组 test.txt #修改文件的用户组
chown 属主:属组 #同时修改文件的属主,属组
参数
-R --recursive 递归处理所有文件及子目录
-v --version 为处理的所有文件
umask命令
umask命令用来限制新文件权限的掩码
也称之为遮罩码,防止文件,文件夹创建的时候,权限过大
当新文件被创建时,其最初的权限由文件创建掩码决定
用户每次注册进入系统时,umask命令都被执行,并自动设置掩码改变默认值,新的权限将会把旧的覆盖
umask默认配置在/etc/profile61-64行
1.umask值就是指"Linux文件的默认属性需要减掉的权限"。
2.比如Linux普通文件的最大默认属性是666,目录文件的最大属性是777
语法参数:
-S: 以字符的形式显示当前的掩码
-p: 带umask开头以数字的形式显示当前掩码
umask的权限控制
文件、文件夹的最高权限是777
1.用root用户创建的文件夹
[root@timy-test-k8s01 ~]# mkdir test [root@timy-test-k8s01 ~]# ll total 4 -rw-------. 1 root root 1324 Apr 14 03:23 anaconda-ks.cfg drwxr-xr-x. 3 root root 125 May 6 03:02 Desktop drwxr-xr-x. 2 root root 6 May 11 21:54 test
文件夹权限是755
2.root创建文本
[root@timy-test-k8s01 ~]# touch test.txt [root@timy-test-k8s01 ~]# ll total 4 -rw-------. 1 root root 1324 Apr 14 03:23 anaconda-ks.cfg drwxr-xr-x. 3 root root 125 May 6 03:02 Desktop drwxr-xr-x. 2 root root 6 May 11 21:54 test -rw-r--r--. 1 root root 0 May 11 21:56 test.txt
文本的权限是644
3.通过普通用户创建文件夹
[root@timy-test-k8s01 ~]# su - duke Last login: Thu Apr 28 23:08:38 EDT 2022 on pts/0 [duke@timy-test-k8s01 ~]$ mkdir test1 [duke@timy-test-k8s01 ~]$ ll total 0 drwxrwxr-x. 2 duke duke 6 May 11 21:59 test1
文件夹权限是664
4.使用root账号查看umask的值,查看遮罩码的值
[root@timy-test-k8s01 ~]# umask 0022
计算初始文件、文件夹的权限如下
文件最大权限减去umask的值,得出文件的权限
666-022=644
文件夹,root创建的文件夹默认的权限是777,减去umask值之后,得出如下:
777-022=755
文件夹的权限是755
5.通过普通用户创建文件、文件夹默认权限计算
[root@timy-test-k8s01 ~]# su - duke Last login: Wed May 11 21:59:03 EDT 2022 on pts/0 [duke@timy-test-k8s01 ~]$ umask 0002
文件最大权限是666
666-002=664,因此得出文件的默认权限是664
计算文件夹的权限是
777-002=775,因此得出文件夹的默认权限是775
计算umask文件权限
系统默认umask数值对应的权限
记住公式
1.默认文件、文件夹的权限,减去umask的值等于最终的权限值
2.文件最大777,文件夹最大777
默认umask值,root和普通用户不一样
#root用户umask
[root@timy-test-k8s01 ~]# umask #查看当前用户预设权限 0022
[root@timy-test-k8s01 ~]# umask -S #以字母的形式显示权限,7-0 7-2 7-2 u=rwx,g=rx,o=rx
[root@timy-test-k8s01 ~]# umask -p umask 0022
chattr命令
chattr命令用于更改文件的扩展属性,比chmod更改的rwx权限更底层
参数
a: 只能向文件中添加数据,不得删除
-R: 递归更改目录属性
-V: 显示命令执行过程
模式:
+ 增加参数
- 移除参数
= 更新为指定参数
A 不让系统修改文件最后访问时间
a 只能追加文件数据,不得删除
i 文件不能被删除、改名、修改内容
案例
给与文件特殊的权限,chattr命令
a权限,代表只能写入数据,不得删除文件
[root@timy-test-k8s01 ~]# chattr +a test.txt #给test.txt文件添加特殊权限a [root@timy-test-k8s01 ~]# lsattr test.txt #lsattr查看特殊权限命令 -----a---------- test.txt
#列出文件的特殊权限
lsattr filename.txt
更多推荐
所有评论(0)