[Linux]-chown-chmod

这两个命令乍一看长得很像,经常混淆。

事实上,两者是不同的,当然确实也有一点功能上的相似的或者说互相配合。chown 是设置文件所有者,chmod 是设置用户对于文件的权限。

chown

设置文件的所有者/所有组

命令格式为 chown user[:group] file...,可以加上 -R 参数表示对文件夹递归执行同样的权限操作。

例子

参考菜鸟教程

/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 *

chmod

控制用户对文件的权限

命令格式为 chmod [mode] [file...] ,可以加上 -R 参数表示对文件夹递归执行同样的权限操作。

mode 格式主要为 [ugoa...][[+-=][rwx]...]u 表示文件所有者,g 表示和文件所有者同一个用户组的用户,o 表示其他用户,a 表示 all,即ugo+ 表示添加权限, - 表示删除某个权限,= 表示赋值为某个权限。r 表示读权限,w 表示写权限,x 表示执行权限。

并且可以使用三个 8 进制数字来表示,第一个表示 urwx 权限,第二个表示 g ,第三个表示 o

例子

参考菜鸟教程

将文件 file1.txt 设为所有人皆可读取 :

chmod ugo+r file1.txt

将文件 file1.txt 设为所有人皆可读取 :

chmod a+r file1.txt

将文件 file1.txt 与 file2.txt 设为该文件拥有者,与其所属同一个群体者可写入,但其他以外的人则不可写入 :

chmod ug+w,o-w file1.txt file2.txt

为 ex1.py 文件拥有者增加可执行权限:

chmod u+x ex1.py

将目前目录下的所有文件与子目录皆设为任何人可读取 :

chmod -R a+r *

用字符和数字的表达等价,如

chmod a=rwx file
chmod 777 file

chmod ug=rwx,o=x file
chmod 771 file