chmod | 改变文件或目录权限。 |
---|---|
chown | 改变文件或目录的属主和属组。 |
chgrp | 更改文件用户组。 |
umask | 显示或设置权限掩码。 |
chmod 命令
chmod 命令: 改变文件或目录权限.
格式:
- chmod [OPTION]... MODE[,MODE]... FILE...
- chmod [OPTION]... OCTAL-MODE FILE...
- chmod [OPTION]... --reference=RFILE FILE...
参数:
-c 或 --changes: 效果类似 "-v" 参数, 但仅回报更改的部分;
-f 或 --quiet 或 --silent: 不显示错误信息;
-R 或 --recursive: 递归处理, 将指令目录下的所有文件及子目录一并处理;
-v 或 --verbose: 显示指令执行过程;
--reference=< 参考文件或目录 >: 把指定文件或目录的所属群组全部设成和参考文件或目录的所属群组相同;
< 权限范围 >+< 权限设置 >: 开启权限范围的文件或目录的该选项权限设置;
< 权限范围 >-< 权限设置 >: 关闭权限范围的文件或目录的该选项权限设置;
< 权限范围 >=< 权限设置 >: 指定权限范围的文件或目录的该选项权限设置;
例子:
- # 创建文件, 默认是 644
- [[email protected] ~]# VIM 1.txt
- [[email protected] ~]# ls -l 1.txt
- -rw-r--r--. 1 root root 6 Jul 19 05:26 1.txt
- # 修改文件为可运行
- [[email protected] ~]# chmod u+x 1.txt
- [[email protected] ~]# ls -l 1.txt
- -rwxr--r--. 1 root root 6 Jul 19 05:26 1.txt
- # 多个修改用逗号隔开
- [[email protected] ~]# chmod u+x,g+w 1.txt
- [[email protected] ~]# ls -l 1.txt
- -rwxrw-r--. 1 root root 6 Jul 19 05:26 1.txt
chown 命令
chown 命令: 改变文件或目录的属主和属组.
格式:
- chown [OPTION]... [OWNER][:[GROUP]] FILE...
- chown [OPTION]... --reference=RFILE FILE...
参数:
-c 或 --changes: 效果类似 "-v" 参数, 但仅回报更改的部分;
-f 或 --quite 或 --silent: 不显示错误信息;
-h 或 --no-dereference: 只对符号连接的文件作修改, 而不更改其他任何相关文件;
-R 或 --recursive: 递归处理, 将指定目录下的所有文件及子目录一并处理;
-v 或 --version: 显示指令执行过程;
--dereference: 效果和 "-h" 参数相同;
--help: 在线帮助;
--reference=< 参考文件或目录 >: 把指定文件或目录的拥有者与所属群组全部设成和参考文件或目录的拥有者与所属群组相同;
--version: 显示版本信息.
例子:
- # 递归修改文件夹的属主为 boy
- [[email protected] ~]# chown -R boy boy/
- [[email protected] ~]# ls -l
- total 114168
- -rwxrw-r--. 1 root root 6 Jul 19 05:26 1.txt
- -rw-------. 1 root root 1220 Jun 1 07:56 anaconda-ks.cfg
- drwxr-xr-x. 2 boy root 19 Jul 19 05:30 boy
- -rw-r--r--. 1 root root 11203874 Jul 18 20:06 etc.tar.gz
- -rw-r--r--. 1 root root 105684753 Jul 13 00:55 MongoDB-Linux-x86_64-rhel70-4.0.10.tgz
- -rw-r--r--. 1 root root 1049 Jul 18 02:16 pwd
- -rw-------. 1 root root 1903 Jul 19 01:13 sent
chgrp 命令
chgrp 命令: 用来改变文件或目录所属的用户组. 该命令用来改变指定文件所属的用户组. 其中, 组名可以是用户组的 http://man.linuxde.net/id , 也可以是用户组的组名. 文件名可以 是由空格分开的要改变属组的文件列表, 也可以是由通配符描述的文件集合. 如果用户不是该文件的文件主或超级用户 (root), 则不能改变该文件的组.
格式:
- chgrp [OPTION]... GROUP FILE...
- chgrp [OPTION]... --reference=RFILE FILE...
参数:
-c 或 --changes: 效果类似 "-v" 参数, 但仅回报更改的部分;
-f 或 --quiet 或 --silent: 不显示错误信息;
-h 或 --no-dereference: 只对符号连接的文件作修改, 而不是该其他任何相关文件;
-R 或 --recursive: 递归处理, 将指令目录下的所有文件及子目录一并处理;
-v 或 --verbose: 显示指令执行过程;
--reference=< 参考文件或目录 >: 把指定文件或目录的所属群组全部设成和参考文件或目录的所属群组相同;
例子:
- # 修改文件的属组为 boy
- [[email protected] ~]# chgrp -R boy boy/
- [[email protected] ~]# ls -l
- total 114168
- -rwxrw-r--. 1 root root 6 Jul 19 05:26 1.txt
- -rw-------. 1 root root 1220 Jun 1 07:56 anaconda-ks.cfg
- drwxr-xr-x. 2 boy boy 19 Jul 19 05:30 boy
- -rw-r--r--. 1 root root 11203874 Jul 18 20:06 etc.tar.gz
- -rw-r--r--. 1 root root 105684753 Jul 13 00:55 MongoDB-Linux-x86_64-rhel70-4.0.10.tgz
- -rw-r--r--. 1 root root 1049 Jul 18 02:16 pwd
- -rw-------. 1 root root 1903 Jul 19 01:13 sent
umask 命令
umask 命令: 用来设置限制新建文件权限的掩码. 当新文件被创建时, 其最初的权限由文件创建掩码决定. 用户每次注册进入系统时, umask 命令都被执行, 并自动设置掩码 mode 来限制新文件的权限. 用户可以通过再次执行 umask 命令来改变默认值, 新的权限将会把旧的覆盖掉.
参数:
-p: 输出的权限掩码可直接作为指令来执行;
-S: 以符号方式输出权限掩码.
工作原理:
在 Linux 中, 一个普通文件的默认权限值是 666, 文件夹的是 777. 当创建一个文件或文件夹时, 内核会调用默认值 "减去"umask 值, 去得出新文件的权限.
这个列表展示的是 umask 中每个数字对应的文件或文件夹的权限:
umask 数字值 | 默认的文件权限 | 默认的文件夹权限 |
---|---|---|
0 | rw | rwx |
1 | rw | rw |
2 | r | rx |
3 | r | r |
4 | w | wx |
5 | w | w |
6 | x | x |
7 | (no permission allowed) | (no permission allowed) |
例子:
- # 默认 umask
- [[email protected] ~]# umask
- 0022
- [[email protected] ~]# umask -S
- u=rx,g=rx,o=rx
- # 修改 umask
- [[email protected] ~]# umask 444
- [[email protected] ~]# umask
- 0444
- # 新建文件权限为 666-444
- [[email protected] ~]# VIM test2
- [[email protected] ~]# ls -l test2
- --w--w--w-. 1 root root 7 Jul 19 05:40 test2
- # 新建文件夹权限为 777-444
- [[email protected] ~]# ls -l
- d-wx-wx-wx. 2 root root 6 Jul 19 05:47 test6
来源: http://www.bubuko.com/infodetail-3129275.html