chwon 修改文件拥有者
Linux chown(英文全拼:change owner)命令用于设置文件所有者和文件关联组的命令。
Linux/Unix 是多人多工操作系统,所有的文件皆有拥有者。利用 chown 将指定文件的拥有者改为指定的用户或组,用户可以是用户名或者用户 ID,组可以是组名或者组 ID,文件是以空格分开的要改变权限的文件列表,支持通配符。 。
chown 需要超级用户 root 的权限才能执行此命令。
只有超级用户和属于组的文件所有者才能变更文件关联组。非超级用户如需要设置关联组可能需要使用 chgrp 命令。
使用权限 : root
语法:
chown [-cfhvR] [--help] [--version] user[:group] file...
参数 :
- user : 新的文件拥有者的使用者 ID
- group : 新的文件拥有者的使用者组(group)
- -c : 显示更改的部分的信息
- -f : 忽略错误信息
- -h :修复符号链接
- -v : 显示详细的处理信息
- -R : 处理指定目录以及其子目录下的所有文件
- –help : 显示辅助说明
- –version : 显示版本
示例:
# 把 /var/run/httpd.pid 的所有者设置 root:
chown root /var/run/httpd.pid
#将文件 file1.txt 的拥有者设为 runoob,群体的使用者 runoobgroup :
chown runoob:runoobgroup file1.txt
#将当前前目录下的所有文件与子目录的拥有者皆设为 runoob,群体的使用者 runoobgroup:
chown -R runoob:runoobgroup *
#把 /home/runoob 的关联组设置为 512 (关联组ID),不改变所有者:
chown :512 /home/runoob
chgrp 修改文件所属群组
Linux chgrp(英文全拼:change group)命令用于变更文件或目录的所属群组。
与 chown 命令不同,chgrp 允许普通用户改变文件所属的组,只要该用户是该组的一员。
在 UNIX 系统家族里,文件或目录权限的掌控以拥有者及所属群组来管理。您可以使用 chgrp 指令去变更文件与目录的所属群组,设置方式采用群组名称或群组识别码皆可。
语法:
chgrp [-cfhRv][--help][--version][所属群组][文件或目录...]
或
chgrp [-cfhRv][--help][--reference=<参考文件或目录>][--version][文件或目录...]
参数说明:
- -c或–changes 效果类似"-v"参数,但仅回报更改的部分。
- -f或–quiet或–silent 不显示错误信息。
- -h或–no-dereference 只对符号连接的文件作修改,而不更动其他任何相关文件。
- -R或–recursive 递归处理,将指定目录下的所有文件及子目录一并处理。
- -v或–verbose 显示指令执行过程。
- –help 在线帮助。
- –reference=<参考文件或目录> 把指定文件或目录的所属群组全部设成和参考文件或目录的所属群组相同。
- –version 显示版本信息。
示例:
//修改 将log2012.log文件由root群组改为bin群组
[root@localhost test]# chgrp -v bin log2012.log
"log2012.log" 的所属组已更改为 bin
//参考log2013.log 文件的所属组 修改 log2012.log的所属组
[root@localhost test]# ll
---xrw-r-- 1 root bin 302108 11-13 06:03 log2012.log
-rw-r--r-- 1 root root 61 11-13 06:03 log2013.log
[root@localhost test]# chgrp --reference=log2012.log log2013.log
[root@localhost test]# ll
---xrw-r-- 1 root bin 302108 11-13 06:03 log2012.log
-rw-r--r-- 1 root bin 61 11-13 06:03 log2013.log
umask 初始创建一个目录或者文件时的默认权限。
- 针对目录来说x权限代表可以进入该目录,所以说对于这个权限初始赋值是没什么问题的; 目录的权限为777
- 针对文件的x的权限代表执行,这个风险太高,所以一般权限初始赋值必须去掉x的; 文件的权限为666
[root@www ~]# umask
0022
- 第一个0代表suid丢弃的权限;
- 第二个0代表本文件/目录拥有者什么权限都没丢弃(如果是文件,x权限除外,为什么看看上面解释);
- 第三个2代表本文件/目录的用户组丢弃了w权限(如果是文件那么它的x权限也丢弃);
- 第三个2代表本文件/目录的其他用户能使用的权限只有有r和x(文件除外)。
root用户的默认创建权限和其他用户的默认创建权限是不同的。
默认权限怎么计算呢?以root用户为例
//文件夹temp 创建的默认权限为 rwx r-x r-x 为 755
777 所有权限
-022 丢弃的权限
---- 减法运算
755 默认权限
//文件aaa 创建的默认权限为 rw- r-- r-- 为 755
666 所有权限 为什么是666 因为创建的文件时不具备执行权限,风险太高
-022 丢弃的权限
---- 减法运算
644 默认权限
可以使用umask将默认的0022 修改为其他值,修改完使用所有权限做减法就是创建文件夹和目录的默认权限了。但是不建议去做修改。