文件和目录的归属
文件的归属
- rw- 文件的主人 属主
- r-- 文件所属的组 属组
查看文件的属性
[root@localhost jlx]# ll 1.txt
-rw-r--r--. 1 root root 0 8月 1 13:35 1.txt
属性含义
-
第一列:表示文件类型,-属于普通文件。
-
第二列:表示文件的UGO权限。rw-r--r--每三个一组。
rw- :属主的权限;
r-- :属组的权限;
r-- :其他人的权限。
-
第三列:表示ACL表中是否设置了ACL权限。“.” 表示无ACL权限,“+”表示设置了ACL权限。
-
第四列:表示硬链接数。
-
第五列:表示文件的属主。
-
第六列:表示文件的属组。
-
第七列:表示文件的大小,有多少字节。
-
第八列:表示最后一次修改时间。
-
第九列:表示文件名。
设置文件和目录的归属(chown、chgrp)
chown
格式
chown 属主 文件或目录 //修改属主
chown :属组 文件或目录 //修改属组
chown 属主:属组 文件或目录 //修改属主和属组
选项
-R:递归修改指定目录下所有文件、子目录的归属
示例
chown既可以修改属主,也可以修改属组
[root@localhost jlx]# ll 1.txt ////查看文件1.txt的归属,属主为root,属组为root组
-rw-r--r--. 1 root root 0 8月 1 13:35 1.txt
[root@localhost jlx]# chown jlx:jlx 1.txt //将属主修改为jlx,属组修改为jlx
[root@localhost jlx]# ll 1.txt //查看归属,修改成功
-rw-r--r--. 1 jlx jlx 0 8月 1 13:35 1.txt
chgrp 只能修改属组
[root@localhost ~]# ls -dl jlx //查看jlx目录的归属,属主和属组为都root组
drwxr-xr-x. 2 root root 32 8月 1 14:26 jlx
[root@localhost ~]# ll jlx //jlx目录下的文件,属主和属组都为root
总用量 0
-rw-r--r--. 1 root root 0 8月 1 13:35 1.txt
-rw-r--r--. 1 root root 0 8月 1 14:26 2.txt
[root@localhost ~]# chgrp -R jlx jlx //将jlx目录的属组修改为jlx,同时递归修改目录下的所有文件
[root@localhost ~]# ls -dl jlx //查看jlx目录的属组已变为jlx
drwxr-xr-x. 2 root jlx 32 8月 1 14:26 jlx
[root@localhost ~]# ll jlx //查看jlx目录下所有文件的属组也都变为jlx
总用量 0
-rw-r--r--. 1 jlx jlx 0 8月 1 13:35 1.txt
-rw-r--r--. 1 root jlx 0 8月 1 14:26 2.txt
因为chgrp 命令只能修改属组,而chown命令既可修改属主也可修改属组,故实际运用中一般使用chown命令
文件和目录的权限管理
文件的权限类型
| 权限类型 | 对文件的影响 | 对目录的影响 |
|---|---|---|
| r (读取) | 可读取文件内容 | 可列出目录内容 |
| w (写入) | 可修改文件内容 | 可在目录中新建、移动、删除文件或子目录 |
| x (执行) | 可作为程序执行 | 可切换目录 |
- 文件夹的最小权限 是 x 一定要带上否则无法 进行任何操作,超级管理员不受影响
- 删除一个文件和所在文件夹权限有关和自身没关系。注意超级管理员
设置文件和目录的权限 chmod
格式
chmod 对象(u/g/o/a)赋值符(+/-/=)权限类型(r/w/x) 文件/目录
“+”号代表增加权限,“-”号代表减少相应权限,“=”号代表覆盖对应的权限。
或者
chmod nnn 文件/目录
选项
-R 递归修改知道目录下所有子项的权限
示例
[root@localhost jlx]# chmod u+x 1.txt //为属主增加执行权限
[root@localhost jlx]# ll 1.txt
-rwxr--r--. 1 jlx jlx 0 8月 1 13:35 1.txt
[root@localhost jlx]# chmod g=rw 1.txt //为属组覆盖读写权限
[root@localhost jlx]# ll 1.txt
-rwxrw-r--. 1 jlx jlx 0 8月 1 13:35 1.txt
[root@localhost jlx]# chmod o-r 1.txt //去掉其他人的读取权限
[root@localhost jlx]# ll 1.txt
-rwxrw----. 1 jlx jlx 0 8月 1 13:35 1.txt
[root@localhost jlx]# chmod a+r 1.txt //去掉其他人的读取权限
[root@localhost jlx]# ll 1.txt
-rwxrw-r--. 1 jlx jlx 0 8月 1 13:35 1.txt
或者
[root@localhost jlx]# ll 1.txt //查看文权限,属主为读写,属组和其他人只有读权限
-rw-r--r--. 1 jlx jlx 0 8月 1 13:35 1.txt
[root@localhost jlx]# chmod 666 1.txt //设置属主、属组、其他人的权限都为读和写
[root@localhost jlx]# ll 1.txt //查看文件权限,所有人都拥有读写权限
-rw-rw-rw-. 1 jlx jlx 0 8月 1 13:35 1.txt
[root@localhost jlx]# chmod 744 1.txt //设置属主拥有读写执行权限,属组和其他人只拥有读权限
[root@localhost test]# ll 1.txt
-rwxr--r--. 1 jlx jlx 0 8月 1 13:35 1.txt
权限掩码umask
作用
- 控制新建的文件或者目录的权限。
- 默认权限去除umask的权限为新建的文件
unmask设置
unask 022
unmask查看
unmask
示例
将umask设置为000,创建目录和文件,查看权限。
[root@localhost jlx]# umask 000 //将umask设置为000
[root@localhost jlx]# umask //查看umask,为000
0000
[root@localhost jlx]# mkdir 25 //创建目录25
[root@localhost jlx]# ls -dl 25 //查看目录权限,所有人都拥有读写执行权限
drwxrwxrwx. 2 root root 6 8月 1 15:07 25
[root@localhost jlx]# touch 1.txt //创建文件 1.txt
[root@localhost jlx]# ll 1.txt //查看目录权限,所有人都只拥有读写权限
-rw-rw-rw-. 1 root root 0 8月 1 15:08 1.txt
将umask设置为022,创建目录和文件,查看权限。
[root@localhost jlx]# umask 022 //将umask设置为022
[root@localhost jlx]# umask //查看umask,为022
0022
[root@localhost jlx]# mkdir 24 //创建目录24
[root@localhost jlx]# ls -dl 24 //查看目录权限,属主拥有读写执行权限,属组和其他人拥有只读权限
drwxr-xr-x. 2 root root 6 8月 1 15:10 24
[root@localhost jlx]# touch 2.txt 创建文件 2.txt
[root@localhost jlx]# ll 2.txt //查看目录权限,属主有读写权限,属组和其他人拥有只读权限
-rw-r--r--. 1 root root 0 8月 1 15:11 2.txt
- 系统默认umask为022(第一个0与特殊权限有关,目前只需要看后三位)。
- 目录的落地权限=777-022=755。目录必须要有执行权限,用户才能访问该目录。
- 文件的落地权限=666-022=644。系统出于安全考虑,创建文件时去掉了所有的执行权限,防止一些不安全的程序文件被错误执行。 【普通文件落地时,权限不可能有奇数,减过后有奇数+1】