LinMao's Blog
学习科研记录与分享!

chmod命令

chmod命令是用来控制某个文件或者文件目录访问权限。

linux中文件和目录的权限是什么?

在linux系统中每个文件或者目录都有只读、只写可执行权限,或者只是这些权限的组合。同时对应一个文件或目录有三种不同类型的用户访问:文件所有者、同组用户以及其他用户。文件所有者通常也是文件创建者。 我们通常用命令:ls -l 来查看当前目录下的文件权限信息。
root@ubuntucuda:/home/ubuntu# ls -l
总用量 1122588
drwxrwxr-x 18 ubuntu ubuntu      4096  5月 14 16:18 caffe
drwxrwxr-x 17 ubuntu ubuntu      4096  5月  9 22:35 caffe-master
-rw-r--r--  1 ubuntu ubuntu  45479630  5月  3 09:23 code_1.22.2-1523551015_amd64.deb
-rwxr-xr-x  1 ubuntu ubuntu 972320904  5月  3 09:23 cuda_6.5.14_linux_64.run
-rw-rw-r--  1 ubuntu ubuntu      2696  9月 23  2017 cuda-repo-ubuntu1404_6.5-14_amd64.deb
drwxrwxr-x  3 ubuntu ubuntu      4096  5月 10 23:57 data
drwxr-xr-x  2 ubuntu ubuntu      4096  5月 10 16:34 Desktop
drwxr-xr-x  6 ubuntu ubuntu      4096  5月 16 09:30 Documents
drwxr-xr-x  3 ubuntu ubuntu      4096  5月 10 22:21 Downloads
-rw-r--r--  1 ubuntu ubuntu      8980  5月  3 09:09 examples.desktop
drwxrwxr-x  3 ubuntu ubuntu      4096  5月  8 15:47 fish
-rw-r--r--  1 root   root    22547139  5月  3 10:00 initrd.img-4.4.0-121-generic.back
drwxrwxr-x  3 ubuntu ubuntu      4096  5月 10 22:50 lll
-rw-rw-r--  1 ubuntu ubuntu    149542  6月  1 10:08 lnmp1.5.tar.gz
drwxrwxr-x  9 ubuntu ubuntu      4096  5月  3 14:50 maxas
drwxrwxr-x  3 ubuntu ubuntu      4096  5月 10 16:37 models
上面就是执行ls -l 命令后的输出,每个文件目录访问权限都有三组,分别对应这用户所有者、同组用户和其他用户;每组对应三位表示对应用户的读、写和可执行权限。上面的输出中最左边一列共有10字符位置,第一个- 表示的是一个文件,d 表示的是一个目录;后面三位一组,rwx 对应这读、写和可执行权限。第二三列表示的是用户组和所有者。

chmod命令

  1. 命令格式: chmod [-cfvR] [who] [+|-|=] [权限] 文件名
  2. 命令参数:必要参数:-c 当发生改变时,报告处理信息-f 错误信息不输出-R 处理指定目录以及其子目录下的所有文件(这个参数用的比较多) -v 运行时显示详细处理信息 选择参数: <权限范围>=<目录或文件> 设置成指定目录或文件具有相同的权限 <权限范围>+<权限设置> 使权限范围内的目录或者文件具有指定的权限 <权限范围>-<权限设置> 删除权限范围的目录或者文件的指定权限 <权限范围>=<权限设置> 设置权限范围内的目录或者文件的权限为指定的值 权限范围: u 目录或者文件的当前的用户 g 目录或者文件的当前的群组 o 除了目录或者文件的当前用户或群组之外的用户或者群组 a 所有的用户及群组 权限代号: r 读权限,用数字4表示 w 写权限,用数字2表示 x 执行权限,用数字1表示 - 删除权限,用数字0表示 s 特殊权限
  3. 权限设置方式 chmod [who] [+|-|=] [权限] 文件名
    1. 字符设置法:权限处的参数设置成r w x 的组合。chmod [who] [+|-|=] [权限] 文件名字符设置法每次需要确定是给谁设置权限,比如chmod u+x filename 表示给filename 的当前用户设置可执行权限;当不设置对象时默认给所有用户及群组添加权限,比如chmod +x filename 表示给filename的所有用户及群组添加可执行文件。
    2. 数字设置法:权限处的参数设置成数字。数字表示的属性的含义:0表示没有权限,1表示可执行权限,2表示可写权限,4表示可读权限,然后将其相加。所以数字属性的格式应为3个从0到7的八进制数,其顺序是u g ochmod [+|-|=] [权限] 文件名数字设置法不用显式的确定给谁设置权限,因为命令中的三个数字就代表了不同的用户,比如chmod 777 fliename 就是依次给目录或者文件的当前的用户、目录或者文件的当前的群组和除了目录或者文件的当前用户或群组之外的用户或者群组也即是给所有的用户及群组设置读、写和可执行权限。

chmod命令测试

  1. + 设置权限
    ubuntu@ubuntucuda:~$ ls -l test
    -rw-rw-r-- 1 ubuntu ubuntu 0  6月 10 12:26 test
    ubuntu@ubuntucuda:~$ chmod a+x test
    ubuntu@ubuntucuda:~$ ls -l test
    -rwxrwxr-x 1 ubuntu ubuntu 0  6月 10 12:26 test
    
  2. - 设置权限
    ubuntu@ubuntucuda:~$ ls -l test
    -rwxrwxr-x 1 ubuntu ubuntu 0  6月 10 12:26 test
    ubuntu@ubuntucuda:~$ chmod u-x test
    ubuntu@ubuntucuda:~$ ls -l test
    -rw-rwxr-x 1 ubuntu ubuntu 0  6月 10 12:26 test
    
  3. = 设置权限
    ubuntu@ubuntucuda:~$ ls -l test 
    -rw-rwxr-x 1 ubuntu ubuntu 0  6月 10 12:26 test
    ubuntu@ubuntucuda:~$ chmod a=rw test 
    ubuntu@ubuntucuda:~$ ls -l test 
    -rw-rw-rw- 1 ubuntu ubuntu 0  6月 10 12:26 test
    
  4. 不指定用户设置权限(默认为所有用户及群组设置)
    ubuntu@ubuntucuda:~$ ls -l test 
    -rw-rw-rw- 1 ubuntu ubuntu 0  6月 10 12:26 test
    ubuntu@ubuntucuda:~$ chmod +x test
    ubuntu@ubuntucuda:~$ ls -l test 
    -rwxrwxrwx 1 ubuntu ubuntu 0  6月 10 12:26 test
    
  5. 用数字设置权限
    ubuntu@ubuntucuda:~$ ls -l test 
    -rwxrwxrwx 1 ubuntu ubuntu 0  6月 10 12:26 test
    ubuntu@ubuntucuda:~$ chmod 666 test
    ubuntu@ubuntucuda:~$ ls -l test 
    -rw-rw-rw- 1 ubuntu ubuntu 0  6月 10 12:26 test
    ubuntu@ubuntucuda:~$ chmod 777 test
    ubuntu@ubuntucuda:~$ ls -l test 
    -rwxrwxrwx 1 ubuntu ubuntu 0  6月 10 12:26 test
    
赞(0) 打赏
转载请注明出处:LinMao's Blog(林茂的博客) » chmod命令

评论 抢沙发

静态归档版本,评论功能已关闭。
  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

LinMao's Blog(林茂的博客)

了解更多联系我们

觉得文章有用就打赏一下作者吧~

支付宝扫一扫打赏

支付宝

微信扫一扫打赏

微信