• 每天一个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
  • 相关阅读:
    tomcat使用不同的jdk版本 liunx 装两个jdk
    接下来自己的研究对象
    钉钉小程序开发的所有坑
    java 在web应用中获取本地目录和服务器上的目录不一致的问题
    Python2.7更新pip:UnicodeDecodeError: 'ascii' codec can't decode byte 0xb7 in position 7: ordinal not in range(128)
    vue项目中禁止移动端双击放大,双手拉大放大的方法
    JZ56 删除链表中重复的结点
    JZ55 链表中环的入口结点
    JZ54 字符流中第一个不重复的字符
    JZ53 表示数值的字符串
  • 原文地址:https://www.cnblogs.com/xqzt/p/5433022.html
Copyright © 2020-2023  润新知