zoukankan      html  css  js  c++  java
  • 每天一个linux命令:chmod

    1、命令简介

    chmod(Change mode) 用来将每个文件的模式更改为指定值。Linux/Unix 的档案调用权限分为三级 : 档案拥有者、群组、其他。

    u :目录或者文件的当前的用户
    g :目录或者文件的当前的群组
    o :除了目录或者文件的当前用户或群组之外的用户或者群组
    a :所有的用户及群组

    Linux的文件基本上分为三个属性:可读(r),可写(w),可执行(x)。另外,有一些程序属性的执行部分不是x,而是s,这表示执行这个程序的使用者,临时可以有和拥有者一样权力的身份来执行该程序。

    [root@oracledb dir1]# ls -l backup.sh 
    -rwxr-xr-x 1 root root 0 4月  24 15:04 backup.sh

    以rwx(Owner)r-x(Group)r-x(Other)为例:这个例子表示的权限是:使用者自己可读,可写,可执行;同一组的用户可读,不可写,可执行;其它用户可读,不可写,可执行。

    权限对文件的重要性
    r (read):可读取此一文件的实际内容,如读取文本文件的文字内容等; 
    w (write):可以编辑、新增或者是修改该文件的内容(但不含删除该文件); 
    x (execute):该文件具有可以被系统执行的权限。linux下文件是否可以执行和扩展名无关
    权限对目录的重要性
    r (read contents in directory):
    表示具有读取目录结构列表的权限,所以当你具有读取(r)一个目录的权限时,表示你可以查询该目录下的文件名数据。 所以你就可以利用 ls 这个指令将该目录的内容列表显示出来!
    w (modify contents of directory):
    表示你具有移动该目录结构列表的权限,也就是底下这些权限:
       建立新的文件与目录; 
       删除已经存在的文件与目录(不论该文件的权限为何!) 
       将已存在的文件或目录进行更名; 
       搬移该目录内的文件、目录位置。
    x (access directory):
    目录不可以被执行,目录的x代表的是用户能否进入该目录成为工作目录的用途! 所谓的工作目录(work directory)就是你目前所在的目录!举例来说,当你登入Linux时, 你所在的家目录就是你当下的工作目录。而变换目录的指令是cd(change directory)!
    权限的数字表示法
    r 读取权限,数字代号为“4”; 
    w 写入权限,数字代号为“2”; 
    x 执行或切换权限,数字代号为“1”;

    2、用法

     用法:chmod [选项]... 模式[,模式]... 文件...
     或:chmod [选项]... 八进制模式 文件...
     或:chmod [选项]... --reference=参考文件 文件...
    1、文字设定法:

    image

    2、数字设定法

    按照顺序(u)(g)(o),将权限转换成3个从0到7的八进制数字,如若要rwx属性则4+2+1=7 ; 若要rw-属性则4+2=6;

    chmod  3个从0到7的八进制数  文件或目录

    3、选项

    -c, --changes        类似 --verbose,但只在有更改时才显示结果
        --no-preserve-root    不特殊对待根目录(默认)
       --preserve-root        禁止对根目录进行递归操作
    -f, --silent, --quiet    去除大部份的错误信息
    -v, --verbose        为处理的所有文件显示诊断信息
        --reference=参考文件    使用指定参考文件的模式,而非自行指定权限模式
    -R, --recursive        以递归方式更改所有的文件及子目录
        --help        显示此帮助信息并退出
        --version        显示版本信息并退出
    
    每种 MODE 都应属于这类形式"[ugoa]*([-+=]([rwxXst]*|[ugo]))+"

    4、示例

    示例1:查看权限
    [root@oracledb dir1]# ls -l
    总用量 0
    -rw-r--r-- 1 root root 0 4月  24 15:04 backup.sh
    示例2:将backup.sh设定为只有该档案拥有者可以执行
    chmod u+x backup.sh
    示例3:同时修改不同用户权限
    chmod ug+w,o-x backup.sh
    示例4:删除文件权限
    chmod a-x backup.sh
    示例5:使用“=”设置权限
    chmod u=x backup.sh
    示例6、根据数字修改权限
    chmod 744 backup.sh
    示例7、将目前目录下的所有档案与子目录皆设为任何人可读取 :
    chmod -R a+r  *
    示例8、将backup2.sh的权限改为和backup1.sh相同
    [root@oracledb dir1]# ll
    总用量 0
    -rwxr-xr-x 1 root root 0 4月  24 15:04 backup1.sh
    -rw-r--r-- 1 root root 0 4月  25 20:27 backup2.sh
    [root@oracledb dir1]# chmod --reference=backup1.sh  backup2.sh
    [root@oracledb dir1]# ll
    总用量 0
    -rwxr-xr-x 1 root root 0 4月  24 15:04 backup1.sh
    -rwxr-xr-x 1 root root 0 4月  25 20:27 backup2.sh
  • 相关阅读:
    基本MVVM 和 ICommand用法举例(转)
    WPF C# 命令的运行机制
    628. Maximum Product of Three Numbers
    605. Can Place Flowers
    581. Shortest Unsorted Continuous Subarray
    152. Maximum Product Subarray
    216. Combination Sum III
    448. Find All Numbers Disappeared in an Array
    268. Missing Number
    414. Third Maximum Number
  • 原文地址:https://www.cnblogs.com/xqzt/p/5433022.html
Copyright © 2011-2022 走看看