umask和chattr的目录与文件权限管理

6月6日任务
2.14 文件和目录权限chmod
2.15 更改所有者和所属组chown
2.16 umask
2.17 隐藏权限lsattr/chattr

2.14 文件和目录权限chmod

chmod 修改文件或目录的权限
文件和目录有三个权限位
[root@xiang-2 src]# ll 456.txt
-rw-r--r-- 1 root root 10608 6月 5 14:16 456.txt
第一段的为所属主的权限,第二段所属组的权限,第三段其他人的权限
可读r 可写w 可执行x
权限数字表示:r=4 w=2 x=1
如-rw-r--r-- 1 root root 10608 6月 5 14:16 456.txt的权限表示为:
chmod 644 456.txt
chmod = change mode
chmod 选项 -r 递归修改一个目录下所有的文件权限变更

[root@localhost src]# ll -la jiaoben/
总用量 20
drwxr-xr-x  2 xiang xiang  73 6月  6 16:05 .
drwxr-xr-x. 3 root  root  21 6月  6 16:05 ..
-rw-r--r--  1 xiang xiang  63 6月  4 17:58 1.py
-rw-r--r--  1 xiang xiang  38 6月  4 17:57 2.py
-rw-r--r--  1 xiang xiang 112 6月  4 17:59 2.pyc
-rw-r--r--  1 xiang xiang 112 6月  4 18:13 2.pyo
-rw-r--r--  1 xiang xiang 278 6月  6 15:57 jisuan.py
[root@localhost src]# chmod 755 -R  jiaoben/         递归修改成755权限位
[root@localhost src]# ll -la jiaoben/             查看修改后的权限,所属主可读可写可执行,所属组可读可执行,其他用户可读可执行
总用量 20
drwxr-xr-x  2 xiang xiang  73 6月   6 16:05 .
drwxr-xr-x. 3 root  root   21 6月   6 16:05 ..
-rwxr-xr-x  1 xiang xiang  63 6月   4 17:58 1.py
-rwxr-xr-x  1 xiang xiang  38 6月   4 17:57 2.py
-rwxr-xr-x  1 xiang xiang 112 6月   4 17:59 2.pyc
-rwxr-xr-x  1 xiang xiang 112 6月   4 18:13 2.pyo
-rwxr-xr-x  1 xiang xiang 278 6月   6 15:57 jisuan.py

2.15 更改所有者和所属组chown

chown = change owner
chown 所有者:所属组 文件或目录
chgrp 所属组 文件或目录
创建一个用户用于给予权限

[root@localhost src]# useradd xiang
[root@localhost src]# ll
总用量 0
drwxr-xr-x 2 root root 73 6月  6 16:05 jiaoben
[root@localhost src]# chgrp xiang jiaoben
[root@localhost src]# ll
总用量 0
drwxr-xr-x 2 root xiang 73 6月  6 16:05 jiaoben  所属组权限变更
[root@localhost src]# chown xiang:root jiaoben
[root@localhost src]# ll 
总用量 0
drwxr-xr-x 2 xiang root 73 6月  6 16:05 jiaoben  所属主和所属组变更
[root@localhost src]# ll -la jiaoben/
总用量 20
drwxr-xr-x  2 xiang root  73 6月  6 16:05 .
drwxr-xr-x. 3 root  root  21 6月  6 16:05 ..
-rw-r--r--  1 root  root  63 6月  4 17:58 1.py
-rw-r--r--  1 root  root  38 6月  4 17:57 2.py
-rw-r--r--  1 root  root 112 6月  4 17:59 2.pyc
-rw-r--r--  1 root  root 112 6月  4 18:13 2.pyo
-rw-r--r--  1 root  root 278 6月  6 15:57 jisuan.py
[root@localhost src]# chown xiang:xiang -R jiaoben
[root@localhost src]# ll -la jiaoben/                目录下所有的文件和目录权限发生变更
总用量 20
drwxr-xr-x  2 xiang xiang  73 6月  6 16:05 .
drwxr-xr-x. 3 root  root  21 6月  6 16:05 ..
-rw-r--r--  1 xiang xiang  63 6月  4 17:58 1.py
-rw-r--r--  1 xiang xiang  38 6月  4 17:57 2.py
-rw-r--r--  1 xiang xiang 112 6月  4 17:59 2.pyc
-rw-r--r--  1 xiang xiang 112 6月  4 18:13 2.pyo
-rw-r--r--  1 xiang xiang 278 6月  6 15:57 jisuan.py

2.16 umask

默认权限umask
[root@localhost src]# umask
0022
默认022表示创建时所属主给全部权限,所属组给可读可执行权限,其他人同样是可读可执行权限
目录的x权限和文件的权限表示意义不同,目录表示可进入浏览,默认有x权限,文件默认没有x权限
系统的默认umask设置
777 - 022 = 755 rwxrwxrwx - (----w--w-) = rwxr-xr-x 文件的权限计算
666 - 022 = 644 rwxrwxrwx - (----w--w-) = rwxr-xr-x 目录的权限计算

例如umask修改为003,创建文件时默认不会给予可执行权限
777 - 003 = 774 rwxrwxrwx - (-------wx) = rwxrwxr-- 默认使用777(rwxrwxrwx)权限位来计算
666 - 003 = 664 rw-rw-rw- - (-------wx) = rw-rw-r-- 默认使用666(rw-rw-rw-)权限位来计算

2.17隐藏权限lsattr_chattr

chattr 选项 +i 文件 +i表示给文件加上只读的权限,不可写、不可改名、不可删除
lsattr 查看特殊权限位

[root@localhost src]# chattr +i 1.txt 
[root@localhost src]# vim 1.txt 

~      
-- 插入 -- W10: 警告: 正在修改一个只读文件          不可更改文件内容

[root@localhost src]# mv 1.txt 2.txt
mv: 无法将"1.txt" 移动至"2.txt": 不允许的操作               不允许给文件改名
[root@localhost src]# lsattr 1.txt 
----i----------- 1.txt
[root@localhost src]# rm -rf 1.txt 
rm: 无法删除"1.txt": 不允许的操作                  不可删除
[root@localhost src]# chattr -i  1.txt                 去掉特殊权限
[root@localhost src]# chattr +a 1.txt             只可追加文件内容,不可更改、不可删除、不可重命名
[root@localhost src]# lsattr 1.txt 
-----a---------- 1.txt
[root@localhost src]# chattr +i jiaoben/              给目录加上i权限
[root@localhost src]# lsattr -d  jiaoben/             查看目录本身的隐藏权限
----i----------- jiaoben/
[root@localhost src]# rm -rf jiaoben/                删除测试
rm: 无法删除"jiaoben/1.py": 权限不够
rm: 无法删除"jiaoben/2.py": 权限不够
rm: 无法删除"jiaoben/2.pyc": 权限不够
rm: 无法删除"jiaoben/2.pyo": 权限不够
rm: 无法删除"jiaoben/jisuan.py": 权限不够
[root@localhost src]# chattr +a jiaoben/            给目录添加只能追加的隐藏权限
[root@localhost src]# touch jiaoben/123.txt        向目录中追加新文件及新内容
[root@localhost src]# vim jiaoben/123.txt
ergdg
~                                                                                                                                                    
~                                                                                                                                                    
"jiaoben/123.txt" 1L, 6C 已写入                                                                                                    
E207: 无法删除备份文件
请按 ENTER 或其它命令继续
[root@localhost src]# cat jiaoben/123.txt               会有提示,但修改内容已经保存
ergdg

猜你喜欢

转载自blog.51cto.com/8844414/2125633
今日推荐