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
     
     
  • 相关阅读:
    Distinct Subsequences
    Edit Distance
    值传递和引用传递
    同步代码块和同步方法的区别
    JVM、JRE、JDK的区别
    线程中的sleep()、join()、yield()方法有什么区别?
    线程的几种状态
    MVC模式设计的Web层框架初识
    Java实现线程的两种方式?Thread类实现了Runnable接口吗?
    springMVC运行流程
  • 原文地址:https://www.cnblogs.com/hwli/p/9609698.html
Copyright © 2011-2022 走看看