文件或目录的权限
使用ls -l来查看文件与目录的详细权限(文件拥有x权限才能执行,目录拥有x权限才能打开)
[root@shu-test home]# ls -l
总用量 0
-rw-r--r--. 1 root root 0 11月 14 00:33 shu32
[root@shu-test home]#
-rw-r--r-- 除开前面- 分三段(最前面的一个表示文件的类型,也就是之前讲到的文件类型)详细数下总共10个字符
r=可读 w=可写 x=可执行
r=4 w=2 x=1 rwx=7 rw-=6 --x=1
rw-r--r--=644 rw-r-xr-x=655
第一段:所有者的权限
第二段:所属组 属于哪个用户组
第三段:所有者与所属组以外的用户的权限
chmod命令
更改文件或目录的权限
格式:
chmod [参数][权限数字][文件名]
更改权限:
[root@shu-test home]# chmod 777 shutest.txt
[root@shu-test home]# ls -l
总用量 0
-rw-r--r--. 1 root root 0 11月 14 00:33 shu32
-rwxrwxrwx. 1 root root 0 11月 14 00:44 shutest.txt
实验:赋予1.txt权限700(root用户可执行可读写,其他用户以及root组都不行),切换到user01用户,无法操作1.txt;
[root@shu-test abc]# chmod 700 1.txt
[root@shu-test abc]# ls -la
总用量 0
drwxr-xr-x. 2 root root 19 12月 20 21:13 .
dr-xr-x---. 8 root root 256 12月 20 21:13 ..
-rwx------. 1 root root 0 12月 20 21:13 1.txt
[root@shu-test abc]# su user01
[user01@shu-test abc]$ ls -la
总用量 4
drwxr-xr-x. 2 root root 19 12月 20 21:14 .
dr-xr-x---. 8 root root 256 12月 20 21:13 ..
-rwx------. 1 root root 5 12月 20 21:14 1.txt
[user01@shu-test abc]$ cat 1.txt
cat: 1.txt: 权限不够
[user01@shu-test abc]$
-R:更改整个目录下的所有文件权限(所有该目录下的子文件子目录的权限都更改)(批量更改)
[root@shu-test /]# chmod -R 770 shu32/
[root@shu-test shu32]# ls -l
总用量 8
-rwxrwx---. 1 root root 9 11月 14 00:58 shuzonglu001.txt
-rwxrwx---. 1 root root 8 11月 14 00:58 shuzonglu002.txt
chown
更改文件所有者和所属组
格式:
chown [参数] [用户名] [目录或文件]
更改文件所有者:chown user01 2.txt
[root@shu-test b]# ls -l
总用量 4
-rwx------. 1 root root 889 12月 20 21:19 2.txt
drwx------. 2 root root 6 12月 20 21:19 c
[root@shu-test b]# chown user01 2.txt
[root@shu-test b]# ls -l
总用量 4
-rwx------. 1 user01 root 889 12月 20 21:19 2.txt
drwx------. 2 root root 6 12月 20 21:19 c
[root@shu-test b]#
chown 用户名:用户组 文件名
更改文件的所有者和所有组
[root@shu-test b]# ls -l
总用量 4
-rwx------. 1 user01 user01 889 12月 20 21:19 2.txt
drwx------. 2 root root 6 12月 20 21:19 c
[root@shu-test b]# chown root:root 2.txt
[root@shu-test b]# ls -l
总用量 4
-rwx------. 1 root root 889 12月 20 21:19 2.txt
drwx------. 2 root root 6 12月 20 21:19 c
[root@shu-test b]#
chown -R 用户名:用户组 目录名
更改目录的所有者和所有组(子目录、子文件全部更改)
[root@shu-test a]# ls -l
总用量 0
drwx------. 3 root root 28 12月 20 21:19 b
[root@shu-test a]# chown -R user01:user01 b/
[root@shu-test a]# ls -l
总用量 0
drwx------. 3 user01 user01 28 12月 20 21:19 b
[root@shu-test a]# cd b/
[root@shu-test b]# ls -l
总用量 4
-rwx------. 1 user01 user01 889 12月 20 21:19 2.txt
drwx------. 2 user01 user01 6 12月 20 21:19 c
[root@shu-test b]#
chgrp命令
chgrp 用户组 目录或文件
更改所有组(不更改所有者)
[root@shu-test a]# ls -l
总用量 0
drwx------. 3 user01 user01 28 12月 20 21:19 b
[root@shu-test a]# chgrp root b/
[root@shu-test a]# ls -l
总用量 0
drwx------. 3 user01 root 28 12月 20 21:19 b
[root@shu-test a]#
-R:更改子目录下的所有文件的所有组(这里不做实验)
umask命令
当我们创建一个文件的时候默认权限为rw-r--r--(644)权限,目录为rwxr-xr-x(755),如果我们想创建一个文件默认值为777,那么就得用到umask命令了;
决定创建文件的默认权限
实验:
[root@shu-test a]# touch 1.txt
[root@shu-test a]# mkdir k
[root@shu-test a]# ls -ls
总用量 0
0 -rw-r--r--. 1 root root 0 12月 20 22:04 1.txt
0 drwxrwxrwx. 3 root root 28 12月 20 22:03 b
0 drwxr-xr-x. 2 root root 6 12月 20 22:07 k
查询umask值
[root@shu-test a]# umask
0022
[root@shu-test a]#
更改umask值
(改值后新建2.txt文件与S目录,查看默认权限文件为664,目录为775)
那么规律就来了
我们更改的文件权限是umask 0002 就是002 文件满权限是666 目录满权限是777 通过满权限减
必须使用权限号一位位相减,而不是数字减
文件最低满权限 :666=(rw-rw-rw-)
目录最低满权限:777=(rwxrwxrwx)
umask 0002 =002 (-------w-)
New文件默认权限=【文件满权限】-【umask值】=(rw-rw-rw-)-(-------w-)=(rw-rw-r--)
New目录默认权限=【目录满权限】-【umask值】=(rwxrwxrwx)-(-------w-)=(rwxrwxr-x)
[root@shu-test a]# umask
0022
[root@shu-test a]# umask 0002
[root@shu-test a]# ls -ls
总用量 0
0 -rw-r--r--. 1 root root 0 12月 20 22:04 1.txt
0 drwxrwxrwx. 3 root root 28 12月 20 22:03 b
0 drwxr-xr-x. 2 root root 6 12月 20 22:07 k
[root@shu-test a]# touch 2.txt
[root@shu-test a]# mkdir s
[root@shu-test a]# ls -ls
总用量 0
0 -rw-r--r--. 1 root root 0 12月 20 22:04 1.txt
0 -rw-rw-r--. 1 root root 0 12月 20 22:12 2.txt
0 drwxrwxrwx. 3 root root 28 12月 20 22:03 b
0 drwxr-xr-x. 2 root root 6 12月 20 22:07 k
0 drwxrwxr-x. 2 root root 6 12月 20 22:12 s
隐藏权限lsattr、chattr
当你是该文件的拥有者、所有组、权限也有读写权限,但是无法编辑它,那么就要考虑它是否有隐藏权限;
lsattr命令
检查文件隐藏权限
lsattr 文件名
[root@shu-test a]# lsattr 1.txt
---------------- 1.txt
chattr命令
修改异常权限
chattr +i 文件名
不容许操作(无法保存)
[root@shu-test a]# lsattr 1.txt
---------------- 1.txt
[root@shu-test a]# chattr +i 1.txt
[root@shu-test a]# lsattr 1.txt
----i----------- 1.txt
chattr -i 文件名
取消I属性
[root@shu-test a]# lsattr 1.txt
----i----------- 1.txt
[root@shu-test a]# chattr -i 1.txt
[root@shu-test a]# lsattr 1.txt
---------------- 1.txt
chattr +a 文件名
只能在文件尾追加文字,不能修改,不能删除,不能改名字
[root@shu-test a]# lsattr 1.txt
-----a---------- 1.txt
[root@shu-test a]# rm 1.txt
rm:是否删除普通文件 "1.txt"?y
rm: 无法删除"1.txt": 不允许的操作
[root@shu-test a]#
[root@shu-test a]# echo aaaaaaaaa>>1.txt
[root@shu-test a]# cat 1.txt
222222222222221111
aaaaaaaaa
[root@shu-test a]#
转载于:https://blog.51cto.com/shuzonglu/2052715