zoukankan      html  css  js  c++  java
  • Linux之chmod

    命令功能:

    chmod命令用于改变linux系统文件或目录的访问权限。用它控制文件或目录的访问权限。该命令有两种用法。一种是包含字母和操作符表达式的文字设定法;另一种是包含数字的数字设定法。

    命令格式:

    chmod [OPTION]... MODE[,MODE]... FILE...
    chmod [OPTION]... OCTAL-MODE FILE...
    chmod [OPTION]... --reference=RFILE FILE...

    第一种:使用符号模式,例如:chmod a+x file,此处的a代表所有用户,+代表添加权限,x代表执行权限

    第二种:使用绝对模式,例如:chmod 777 file,表示为所有用户添加可读可写可执行权限,三个数值分别对应三种用户类型

    命令参数:

    -c,--changes
    只输出被改变文件的信息
    -f,--silent,--quiet
    当chmod不能改变文件模式时,不通知文件的用户
    --help
    输出帮助信息。
    -R,--recursive
    可递归遍历子目录,把修改应到目录下所有文件和子目录
    --reference=filename
    参照filename的权限来设置权限
    -v,--verbose
    无论修改是否成功,输出每个文件的信息
    --version
    输出版本信息。
    --reference=<目录或者文件> 设置成具有指定目录或者文件具有相同的权限
    --version 显示版本信息

    命令实例:

    假设目录下文件信息为:

    vbird@Ubuntu16:~/test$ ll
    total 8
    drwxrwxr-x 2 vbird vbird 4096 9月   8 16:42 ./
    drwxr-xr-x 4 vbird vbird 4096 9月   8 16:42 ../
    -rw-rw-r-- 1 vbird vbird    0 9月   8 16:42 a.txt
    -rw-rw-r-- 1 vbird vbird    0 9月   8 16:42 b.txt
    1.对a.txt增加文件所有用户组可执行权限(都是基于原始状态)
    vbird@Ubuntu16:~/test$ chmod a+x a.txt
    vbird@Ubuntu16:~/test$ ll
    total 8
    drwxrwxr-x 2 vbird vbird 4096 9月   8 16:42 ./
    drwxr-xr-x 4 vbird vbird 4096 9月   8 16:42 ../
    -rwxrwxr-x 1 vbird vbird    0 9月   8 16:42 a.txt*
    -rw-rw-r-- 1 vbird vbird    0 9月   8 16:42 b.txt
    2.对a.txt同时修改不同用户权限,文件所有者可读可写可执行、用户组只读、其他人不可读不可写不可执行。(都是基于原始状态)
    第一种方法:
    vbird@Ubuntu16:~/test$ chmod u=rwx a.txt vbird@Ubuntu16:~/test$ chmod g=r a.txt vbird@Ubuntu16:~/test$ chmod o= a.txt vbird@Ubuntu16:~/test$ ll total 8 drwxrwxr-x 2 vbird vbird 4096 9月 8 16:42 ./ drwxr-xr-x 4 vbird vbird 4096 9月 8 16:42 ../ -rwxr----- 1 vbird vbird 0 9月 8 16:42 a.txt* -rw-rw-r-- 1 vbird vbird 0 9月 8 16:42 b.txt
    第二种方法:

      vbird@Ubuntu16:~/test$ chmod 740 a.txt
      vbird@Ubuntu16:~/test$ ll
      total 8
      drwxrwxr-x 2 vbird vbird 4096 9月 8 16:42 ./
      drwxr-xr-x 4 vbird vbird 4096 9月 8 16:42 ../
      -rwxr----- 1 vbird vbird 0 9月 8 16:42 a.txt*
      -rw-rw-r-- 1 vbird vbird 0 9月 8 16:42 b.txt

    3.根据目录下的b.txt的权限设置a.txt的权限

     假设目录下文件信息为:

    vbird@Ubuntu16:~/test$ ll
    total 12
    drwxrwxr-x 3 vbird vbird 4096 9月   8 16:52 ./
    drwxr-xr-x 4 vbird vbird 4096 9月   8 16:42 ../
    -rwxr----- 1 vbird vbird    0 9月   8 16:42 a.txt*
    -rw-rw-r-- 1 vbird vbird    0 9月   8 16:42 b.txt
    drwxrwxr-x 2 vbird vbird 4096 9月   8 16:53 dir/

    解决方法:

    vbird@Ubuntu16:~/test$ chmod --reference=b.txt a.txt
    vbird@Ubuntu16:~/test$ ll
    total 12
    drwxrwxr-x 3 vbird vbird 4096 9月   8 16:52 ./
    drwxr-xr-x 4 vbird vbird 4096 9月   8 16:42 ../
    -rw-rw-r-- 1 vbird vbird    0 9月   8 16:42 a.txt
    -rw-rw-r-- 1 vbird vbird    0 9月   8 16:42 b.txt
    drwxrwxr-x 2 vbird vbird 4096 9月   8 16:53 dir/
    4.对一个目录及其子目录所有文件添加权限,允许其他人可读可进去目录,但是目录下的文件只有只读权限。

    假设目录下文件信息为:

    vbird@Ubuntu16:~/test$ ll
    total 12
    drwxrwxr-x 3 vbird vbird 4096 9月 8 16:52 ./
    drwxr-xr-x 4 vbird vbird 4096 9月 8 16:42 ../
    -rwxr----- 1 vbird vbird 0 9月 8 16:42 a.txt*
    -rw-rw-r-- 1 vbird vbird 0 9月 8 16:42 b.txt
    drwxrwx--- 2 vbird vbird 4096 9月 8 16:53 dir/

    vbird@Ubuntu16:~/test$ ll dir
    total 8
    drwxrwxr-x 2 vbird vbird 4096 9月 8 16:53 ./
    drwxrwxr-x 3 vbird vbird 4096 9月 8 16:52 ../
    -rw-rw---- 1 vbird vbird 0 9月 8 16:53 c.txt
    -rw-rw---- 1 vbird vbird 0 9月 8 16:53 d.txt

    解决方法:
    vbird@Ubuntu16:~/test$ chmod -R o+rx dir
    vbird@Ubuntu16:~/test$ ll
    total 12
    drwxrwxr-x 3 vbird vbird 4096 9月   8 16:52 ./
    drwxr-xr-x 4 vbird vbird 4096 9月   8 16:42 ../
    -rwxr----- 1 vbird vbird    0 9月   8 16:42 a.txt*
    -rw-rw-r-- 1 vbird vbird    0 9月   8 16:42 b.txt
    drwxrwxr-x 2 vbird vbird 4096 9月   8 16:53 dir/
    vbird@Ubuntu16:~/test$ ll dir
    total 8
    drwxrwxr-x 2 vbird vbird 4096 9月   8 16:53 ./
    drwxrwxr-x 3 vbird vbird 4096 9月   8 16:52 ../
    -rw-rw-r-x 1 vbird vbird    0 9月   8 16:53 c.txt*
    -rw-rw-r-x 1 vbird vbird    0 9月   8 16:53 d.txt*
    vbird@Ubuntu16:~/test$ chmod o-x dir/c.txt dir/d.txt
    vbird@Ubuntu16:~/test$ ll
    total 12
    drwxrwxr-x 3 vbird vbird 4096 9月   8 16:52 ./
    drwxr-xr-x 4 vbird vbird 4096 9月   8 16:42 ../
    -rwxr----- 1 vbird vbird    0 9月   8 16:42 a.txt*
    -rw-rw-r-- 1 vbird vbird    0 9月   8 16:42 b.txt
    drwxrwxr-x 2 vbird vbird 4096 9月   8 16:53 dir/
    vbird@Ubuntu16:~/test$ ll dir
    total 8
    drwxrwxr-x 2 vbird vbird 4096 9月   8 16:53 ./
    drwxrwxr-x 3 vbird vbird 4096 9月   8 16:52 ../
    -rw-rw-r-- 1 vbird vbird    0 9月   8 16:53 c.txt
    -rw-rw-r-- 1 vbird vbird    0 9月   8 16:53 d.txt
     
     
  • 相关阅读:
    FreeCommander 学习手册
    String详解, String和CharSequence区别, StringBuilder和StringBuffer的区别 (String系列之1)
    StringBuffer 详解 (String系列之3)
    StringBuilder 详解 (String系列之2)
    java io系列26之 RandomAccessFile
    java io系列25之 PrintWriter (字符打印输出流)
    java io系列24之 BufferedWriter(字符缓冲输出流)
    java io系列23之 BufferedReader(字符缓冲输入流)
    java io系列22之 FileReader和FileWriter
    java io系列21之 InputStreamReader和OutputStreamWriter
  • 原文地址:https://www.cnblogs.com/hwli/p/9609698.html
Copyright © 2011-2022 走看看