04.Linux命令之文件权限
1、文件权限信息的查看-ll
命令: ll 或 ls -l
[86god@localhost 桌面]$ ll
总用量 0
-rw-rw-r--. 1 86god 86god 0 6月 10 01:18 t1.txt
-rw-rw-r--. 1 86god 86god 0 6月 10 01:19 t2.txt
[86god@localhost 桌面]$ ls -l
总用量 0
-rw-rw-r--. 1 86god 86god 0 6月 10 01:18 t1.txt
-rw-rw-r--. 1 86god 86god 0 6月 10 01:19 t2.txt
2、文件权限信息的认识
首先,在Linux系统中文件的访问权限对文件的访问者进行了分类:文件所有者、文件所属组、其它用户。
如上图所示:
第1位:文件类型,当为文件夹时,是d
第2-10位:文件权限
r | w | x |
---|---|---|
可读 | 可写 | 可执行 |
文件权限还可以使用二进制数表示
如:
权限 | rw- | rw- | r– |
---|---|---|---|
二进制 | 110 | 110 | 100 |
八进制 | 6 | 6 | 4 |
所以上述权限,还可以使用664来表示!!!
3、文件默认创建权限掩码设置-umask
在shell中创建一个文件,虽然没有指定文件的权限,但是文件被创建成功后,默认会具有一个权限,这是因为文件创建之时的权限会受到系统中文件创建权限掩码的影响。
umask 命令可以查看系统中当前默认的权限掩码信息。
命令:
[86god@localhost 桌面]$ umask
0002
[86god@localhost 桌面]$ umask -S
u=rwx,g=rwx,o=rx
其中,u指的是文件所有者,g 指的是文件所属组, o 指的是其它用户
同时,也可以使用umask 命令来设置默认的权限掩码信息
命令:
[86god@localhost 桌面]$ umask 0000
[86god@localhost 桌面]$ umask
0000
4、文件访问权限的修改-chmod
umask 决定的是文件创建出来的默认权限,然而大多时候我们需要修改一个已经存在的文件权限,这时候就需要使用chmod命令(ps:全称change mode)完成。
命令:
chmod [u,g,o][+,-,=][r,w,x]/[0-7] 文件名
-R 或 --recursive #递归处理,将指定目录下的所有文件及子目录一并处理
注意:
- [u,g,o]:u指的是文件所有者,g 指的是文件所属组, o 指的是其它用户
- [+,-,=]:+代属性码添加权限,-取消权限,=将权限修改
- [r,w,x]/[0-7]:权限的设置,可以为rwx的组合或者8进制数字。
示例:
[86god@localhost 桌面]$ ll t1.txt
-rw-rw-r--. 1 86god 86god 0 6月 10 01:18 t1.txt
[86god@localhost 桌面]$ chmod u+x t1.txt
[86god@localhost 桌面]$ ll t1.txt
-rwxrw-r--. 1 86god 86god 0 6月 10 01:18 t1.txt
[86god@localhost 桌面]$ chmod 777 t1.txt
[86god@localhost 桌面]$ ll t1.txt
-rwxrwxrwx. 1 86god 86god 0 6月 10 01:18 t1.txt
chmod -R 选项
递归处理,将指定目录下的所有文件及子目录一并处理
[86god@localhost 桌面]$ tree d1
d1
├── t1.txt
├── t2.txt
└── t3.txt
[86god@localhost 桌面]$ ll d1
总用量 0
-rw-rw-r--. 1 86god 86god 0 6月 10 02:08 t1.txt
-rw-rw-r--. 1 86god 86god 0 6月 10 02:08 t2.txt
-rw-rw-r--. 1 86god 86god 0 6月 10 02:08 t3.txt
[86god@localhost 桌面]$ chmod -R 777 d1
[86god@localhost 桌面]$ ll d1
总用量 0
-rwxrwxrwx. 1 86god 86god 0 6月 10 02:08 t1.txt
-rwxrwxrwx. 1 86god 86god 0 6月 10 02:08 t2.txt
-rwxrwxrwx. 1 86god 86god 0 6月 10 02:08 t3.txt
5、文件所有者的修改-chown
文件的所有者拥有对文件的权限进行修改的权力,但是若我们想要将这个权力交给另一个用户,也就是修改一个文件的所有者,那么就需要使用chown命令(ps:全称change owner)。
命令:
chown 用户 文件名 #chown命令更改文件的所属用户
-R #对目录下的所有档案与子目录进行相同的拥有者变更(即以递回的方式逐个变更)
chown命令示例:
[86god@localhost 桌面]$ ll t1.txt
-rwxrwxrwx. 1 86god 86god 0 6月 10 01:18 t1.txt
[root@localhost 桌面]# chown root t1.txt
[root@localhost 桌面]# ll t1.txt
-rwxrwxrwx. 1 root 86god 0 6月 10 01:18 t1.txt
注意:
- 修改文件的所有者,只能是root用户才有这权力。
- 默认情况下只能修改文件的所有者,而对于目中的子文件却是没有任何影响。
chown -R命令示例:
递归修改文件夹内所有文件的所有者
[root@localhost 桌面]# ll d1
总用量 0
-rwxrwxrwx. 1 86god 86god 0 6月 10 02:08 t1.txt
-rwxrwxrwx. 1 86god 86god 0 6月 10 02:08 t2.txt
-rwxrwxrwx. 1 86god 86god 0 6月 10 02:08 t3.txt
[root@localhost 桌面]# chown -R root d1
[root@localhost 桌面]# ll d1
总用量 0
-rwxrwxrwx. 1 root 86god 0 6月 10 02:08 t1.txt
-rwxrwxrwx. 1 root 86god 0 6月 10 02:08 t2.txt
-rwxrwxrwx. 1 root 86god 0 6月 10 02:08 t3.txt
6、文件所属组的修改-chgrp
文件所属组中成员,具备对一个文件对应所属组的访问权限,若要将这个权力移交到另一个用户组中则需要使用chgrp命令(ps:全称change group)。
命令:
chgrp 组名 文件名 #chgrp修改文件的所属组
-R或--recursive #递归处理,将指定目录下的所有文件及子目录一并处理。
chgrp命令示例:
[root@localhost 桌面]# ll t1.txt
-rwxrwxrwx. 1 root 86god 0 6月 10 01:18 t1.txt
[root@localhost 桌面]# chgrp root t1.txt
[root@localhost 桌面]# ll t1.txt
-rwxrwxrwx. 1 root root 0 6月 10 01:18 t1.txt
注意:
- 修改文件的所属组,只能是root用户才有这权力。
- 默认情况下只能修改文件的所属组,而对于目中的子文件却是没有任何影响。
chgrp -R选项:
递归修改文件夹内所有文件的所属组
[root@localhost 桌面]# ll d1
总用量 0
-rwxrwxrwx. 1 root 86god 0 6月 10 02:08 t1.txt
-rwxrwxrwx. 1 root 86god 0 6月 10 02:08 t2.txt
-rwxrwxrwx. 1 root 86god 0 6月 10 02:08 t3.txt
[root@localhost 桌面]# chgrp -R root d1
[root@localhost 桌面]# ll d1
总用量 0
-rwxrwxrwx. 1 root root 0 6月 10 02:08 t1.txt
-rwxrwxrwx. 1 root root 0 6月 10 02:08 t2.txt
-rwxrwxrwx. 1 root root 0 6月 10 02:08 t3.txt