[Linux学习笔记] Linux命令之chmod、chgrp、chown

1. 改变文件或目录权限: chmod

命令名称: chmod
命令英文原意: change the permissions mode of a file
命令所在路径: /bin/chmod
执行权限: 所有用户
语法: chmod [选项] [{ugoa} {+-=} {rwx}] [文件或目录]
     chmod  [选项] [mode=421] [文件或目录]
功能描述: 改变文件或目录权限
参数说明:
u 表示该文件的拥有者,g 表示与该文件的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是。
+ 表示增加权限、- 表示取消权限、= 表示唯一设定权限。
r 表示可读取,w 表示可写入,x 表示可执行。
-c : 若该文件权限确实已经更改,才显示其更改动作
-f : 若该文件权限无法被更改也不要显示错误讯息
-v : 显示权限变更的详细资料
-R : 对目前目录下的所有文件与子目录进行相同的权限变更(即以递回的方式逐个变更)

chmod是修改文件/目录的权限。可以有文字修改和数字修改。

r——读权限——可以查看文件内容(文件:cat、more、head、tail; 文件夹:ls列出目录中的内容)——可以列出目录中的内容
w——写权限——可以修改文件内容(文件:echo、vi;文件夹:touch、mkdir、rm)——可以在目录中创建、修改文件
x——执行权限——可以执行文件(文件:命令、脚本;文件夹:cd)——可以进入目录
其中:rwx也可以用数字来代替
r  ------------4
w ------------2
x ------------1
------------------------------------------------------------------------------
常见的以下的一些权限:
-rw------- (600) 只有所有者才有读和写的权限
-rw-r--r-- (644) 只有所有者才有读和写的权限,组群和其他人只有读的权限
-rwx------ (700) 只有所有者才有读,写,执行的权限
-rwx--x--x (711) 只有所有者才有读,写,执行的权限,组群和其他人只有执行的权限
-rw-rw-rw- (666) 每个人都有读写的权限
-rwxrwxrwx (777) 每个人都有读写和执行的权限

如在代码目录执行 ls -al,

$ ls -al
drwxr-xr-x  27 cdj cdj  4096 Apr 11  2017 sdk
//上述信息分别表示:权限(drwxr-xr-x)、所属用户(cdj)和组(cdj)、大小(4096)、时间(4.11)、名称(sdk)。
权限中的字母一共有10位数:
其中,第1位有两种选择:-表示是文件,d表示是目录。此处是d,表示sdk是目录;
第2位到第4位rwx表示的是所有者(所属用户cdj)的权限;
第5位到第7位r-x表示的是组(cdj)的权限;
第8位到第10位r-x表示的是其他人(other)的权限

-r--r--r--   1 cdj cdj    87 Apr 11  2017 Makefile  //可以看到文件makefile只有读权限
drwxr-xr-x   8 cdj cdj  4096 Apr 11  2017 ndk    
//可以看到用户(user)对ndk文件夹有读写执行权限,同组(group)用户有读和执行权限,其它用户只有执行权限

chmod操作对象who可是下述字母中的任一个或者它们的组合:

u 表示“用户(user)”,即文件或目录的所有者。

g 表示“同组(group)用户”,即与文件属主有相同组ID的所有用户。

o 表示“其他(others)用户”。

a 表示“所有(all)用户”。它是系统默认值。

如:

#sudo chmod 777 /home/berry

#sudo chmod -R 777 /testdir/testdir2 //其中  -R 需要是大写。 表示目录及目录下的所有内容都设置为相同的权限。

#sudo chmod ugo+r file1.txt  //将档案 file1.txt 设为所有人皆可读取 : 
#sudo chmod -R a+r *   //将目前目录下的所有档案与子目录皆设为任何人可读取 :

2. 改变文件的所有者: chown

命令名称: chown
命令英文原意: change file ownership
命令所在路径: /bin/chown
执行权限: 所有用户
语法: chown [用户] [文件或目录]
功能描述: 改变文件或目录的所有者

将目录的所有者修改为root:root(第一个root表示组,第二个root表示用户)。  该指令需要在root权限下使用。

sudo chown -R root:root nameservice1

将目录换成文件的名字就可以修改文件的所有者了,例如:

sudo chown -R root:root test.txt

只改变文件或目录的所有者:  chown -R owner: test.txt

只改变文件或目录的群组:  chown -R :group test.txt

3. 改变文件或目录的所属组: chgrp

命令名称: chgrp
命令英文原意: change file group ownership
命令所在路径: /bin/chgrp
执行权限: 所有用户
语法: chgrp [选项] [组] [文件]
功能描述: 改变文件或目录的所属用户组
必要参数:
-c 当发生改变时输出调试信息
-f 不显示错误信息
-R 处理指定目录以及其子目录下的所有文件
-v 运行时显示详细的处理信息
--dereference 作用于符号链接的指向,而不是符号链接本身
--no-dereference 作用于符号链接本身

举例:

改变文件的群组属性 :chgrp -v bin log2012.log   //将log2012.log文件由root群组改为bin群组

根据指定文件改变文件的群组属性:chgrp --reference=log2012.log log2013.log   //改变文件log2013.log 的群组属性,使得文件log2013.log的群组属性和参考文件log2012.log的群组属性相同

改变指定目录以及其子目录下的所有文件的群组属性 :chgrp -R bin test6   //改变指定目录以及其子目录下的所有文件的群组属性

猜你喜欢

转载自blog.csdn.net/shmily_jing/article/details/82352606
今日推荐