文件和目录权限chmod 更改所有者和所属组chown umask 隐藏权限lsattr/chattr

命令chown

更改文件的所有者,格式:chown [-R] 账户名 文件名       chown [-R]  账户名:组名 文件名。   -R选项只适用于目录,作用是级联更改,不仅更改当前目录,目录里面的目录或者文件也劝不回更改

[root@lizhipeng01 ~]# mkdir dir3
[root@lizhipeng01 ~]# useradd user1
[root@lizhipeng01 ~]# touch dir3/test3
[root@lizhipeng01 ~]# chown user1 dir3
[root@lizhipeng01 ~]# ls -ld dir3
drwxr-xr-x. 2 user1 root 18 12月 19 04:42 dir3
[root@lizhipeng01 ~]# ls -l dir3
总用量 0
-rw-r--r--. 1 root root 0 12月 19 04:42 test3
[root@lizhipeng01 ~]# chown -R user1:testgroup dir3
chown: 无效的组: "user1:testgroup"
[root@lizhipeng01 ~]# groupadd testgroup
[root@lizhipeng01 ~]# chown -R user1:testgroup dir3
[root@lizhipeng01 ~]# ls -l test
ls: 无法访问test: 没有那个文件或目录
[root@lizhipeng01 ~]# ls -l test3
ls: 无法访问test3: 没有那个文件或目录
[root@lizhipeng01 ~]# ls -l dir3
总用量 0
-rw-r--r--. 1 user1 testgroup 0 12月 19 04:42 test3

命令chmod

用于改变用户对文件/目录的读写执行权限,格式:chmod [-R] xyz 文件名(xyz表示数字),R表示级联

[root@lizhipeng01 ~]# ls -ld dir3                                     查看目录dir3权限
drwxr-xr-x. 2 user1 testgroup 18 12月 19 04:42 dir3
[root@lizhipeng01 ~]# ls -l dir3                                       查看目录dir3下文件的权限
总用量 0
-rw-r--r--. 1 user1 testgroup 0 12月 19 04:42 test3
[root@lizhipeng01 ~]# chmod 750 dir3
[root@lizhipeng01 ~]# ls -ld dir3
drwxr-x---. 2 user1 testgroup 18 12月 19 04:42 dir3
[root@lizhipeng01 ~]# ls -l dir3/test3
-rw-r--r--. 1 user1 testgroup 0 12月 19 04:42 dir3/test3
[root@lizhipeng01 ~]# chmod 700 dir3/test3
[root@lizhipeng01 ~]# ls -l dir3/test3
-rwx------. 1 user1 testgroup 0 12月 19 04:42 dir3/test3
[root@lizhipeng01 ~]# chmod -R 700 dir3                            级联更改
[root@lizhipeng01 ~]# ls -ld dir3                                           目录权限改成700
drwx------. 2 user1 testgroup 18 12月 19 04:42 dir3
[root@lizhipeng01 ~]# ls -l dir3              目录下的文件权限700
总用量 0
-rwx------. 1 user1 testgroup 0 12月 19 04:42 test3

[root@lizhipeng01 ~]# chmod u=rwx,og=rx dir3/test3  
[root@lizhipeng01 ~]# ls -l dir3
总用量 0
-rwxr-xr-x. 1 user1 testgroup 0 12月 19 04:42 test3
[root@lizhipeng01 ~]# chmod u-x dir3/test3
[root@lizhipeng01 ~]# ls -l dir3
总用量 0
-rw-r-xr-x. 1 user1 testgroup 0 12月 19 04:42 test3
[root@lizhipeng01 ~]# chmod a-x dir3/test3
[root@lizhipeng01 ~]# ls -l dir3/test3
-rw-r--r--. 1 user1 testgroup 0 12月 19 04:42 dir3/test3
[root@lizhipeng01 ~]# chmod u+x dir3/test3
[root@lizhipeng01 ~]# ls -l dir3
总用量 0
-rwxr--r--. 1 user1 testgroup 0 12月 19 04:42 test3

命令umask

默认情况下,目录的权限值755,普通文件的权限值644

[root@lizhipeng01 ~]# umask
0022

umask数值代表的含义是文件(666)或目录(777)需要减去的权限

umask的值是可以自定义的,如

[root@lizhipeng01 ~]# umask=002
[root@lizhipeng01 ~]# mkdir dir4
[root@lizhipeng01 ~]# ls -ld dir4
drwxr-xr-x. 2 root root 6 12月 19 05:51 dir4
[root@lizhipeng01 ~]# touch test4

[root@lizhipeng01 ~]# ls -l test4
-rw-r--r--. 1 root root 0 12月 19 05:52 test4

可以看到目录的默认权限为755,文件的默认权限664。umask可以在/etc/bashrc/里面更改,默认情况下,root的umask为022,而一般使用者002。

修改文件的特殊属性

命令chattr,格式:chattr [+-=] [Asaci] [文件或者目录名]

A:增加该属性后,表示文件或目录的atime将不可修改。

s:增加该属性后,会将数据同步写入磁盘中。

a:增加该属性后,表示只能追加不能删除,非root用户不能设定该属性。

c:增加该属性后,表示自动压缩该文件,读取时会自动解压。

i:增加该属性后,表示文件不能删除、重命名、设定链接、写入以及新增数据。

[root@lizhipeng01 ~]# chattr +i dir2
[root@lizhipeng01 ~]# touch dir2/test5
touch: 无法创建"dir2/test5": 权限不够
[root@lizhipeng01 ~]# chattr -i dir2
[root@lizhipeng01 ~]# touch dir2/test5
[root@lizhipeng01 ~]# chattr +i dir2
[root@lizhipeng01 ~]# rm -f dir2/test5
rm: 无法删除"dir2/test5": 权限不够

[root@lizhipeng01 ~]# chattr -i dir2
[root@lizhipeng01 ~]# touch dir2/test6
[root@lizhipeng01 ~]# ls dir2
test5 test6
[root@lizhipeng01 ~]# chattr +a dir2
[root@lizhipeng01 ~]# rm -f dir2/test6
rm: 无法删除"dir2/test6": 不允许的操作
[root@lizhipeng01 ~]# touch dir2/test7
[root@lizhipeng01 ~]# ls dir2
test5 test6 test7
dir2目录增加a权限后,只可以在里面创建文件,而不能删除文件。文件亦是如此。

[root@lizhipeng01 ~]# chattr +a dir2/test7
[root@lizhipeng01 ~]# echo '11111'>dir2/test7
-bash: dir2/test7: 不允许的操作
[root@lizhipeng01 ~]# echo '11111' >> dir2/test7
[root@lizhipeng01 ~]# cat dir2/test7
11111
[root@lizhipeng01 ~]# chattr +i dir2/test6
[root@lizhipeng01 ~]# echo '11111'>> dir2/test6
-bash: dir2/test6: 权限不够
[root@lizhipeng01 ~]# echo '11111' > dir2/test6
-bash: dir2/test6: 权限不够
[root@lizhipeng01 ~]# rm -f dir2/test6
rm: 无法删除"dir2/test6": 不允许的操作

命令lsattr,该命令用于读取文件或者目录的特殊权限,格式:lsattr [-aR] [文件/目录名]

-a:类似于ls的-a选项,即连同隐藏文件一同列出。

-R:连同子目录的数据一同列出。

[root@lizhipeng01 ~]# lsattr dir2
---------------- dir2/test5
----i----------- dir2/test6
-----a---------- dir2/test7
[root@lizhipeng01 ~]# lsattr -aR dir2
-----a---------- dir2/.
---------------- dir2/..
---------------- dir2/test5
----i----------- dir2/test6
-----a---------- dir2/test7

原文地址:https://www.cnblogs.com/sisul/p/8060153.html