1、命令简介


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

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

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

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

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

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

2、用法


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

2、数字设定法

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

  1. chmod 3个从07的八进制数 文件或目录

3、选项


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

4、示例


示例1:查看权限
  1. [root@oracledb dir1]# ls -l
  2. 总用量 0
  3. -rw-r--r-- 1 root root 0 4 24 15:04 backup.sh
示例2:将backup.sh设定为只有该档案拥有者可以执行
  1. chmod u+x backup.sh
示例3:同时修改不同用户权限
  1. chmod ug+w,o-x backup.sh
示例4:删除文件权限
  1. chmod a-x backup.sh
示例5:使用“=”设置权限
  1. chmod u=x backup.sh
示例6、根据数字修改权限
  1. chmod 744 backup.sh
示例7、将目前目录下的所有档案与子目录皆设为任何人可读取 :
  1. chmod -R a+r *
示例8、将backup2.sh的权限改为和backup1.sh相同
  1. [root@oracledb dir1]# ll
  2. 总用量 0
  3. -rwxr-xr-x 1 root root 0 4 24 15:04 backup1.sh
  4. -rw-r--r-- 1 root root 0 4 25 20:27 backup2.sh
  5. [root@oracledb dir1]# chmod --reference=backup1.sh backup2.sh
  6. [root@oracledb dir1]# ll
  7. 总用量 0
  8. -rwxr-xr-x 1 root root 0 4 24 15:04 backup1.sh
  9. -rwxr-xr-x 1 root root 0 4 25 20:27 backup2.sh

chmod修改权限的更多相关文章

  1. Linux系统(和mac系统)chmod修改权限总结

    在 Mac 系统的终端上修改文件权限使用的是 Linux 中的 chmod 命令. chmod 用户+操作+权限+文件 用户部分:使用字母 u 表示文件拥有者(user),g 表示拥有者所在群组(gr ...

  2. Ubuntu批量修改权限

    Ubuntu中有两个修改命令可以用到,「change mode」&「change owner」 即chmod以及chown,其中可以用递归参数-R来实现更改所有子文件和子目录的权限. 1.利用 ...

  3. Linux权限详解 命令之 chmod:修改权限

    权限简介 Linux系统上对文件的权限有着严格的控制,用于如果相对某个文件执行某种操作,必须具有对应的权限方可执行成功. Linux下文件的权限类型一般包括读,写,执行.对应字母为 r.w.x. Li ...

  4. Linux下chmod 777 修改权限

    在linux操作系统下,使用shell命令来操作: 关于权限的问题用chmod命令来修改权限 -rw-r-r-- 1 root root 可参考:http://zhidao.baidu.com/lin ...

  5. Ubuntu下修改权限时出现"unable to execute /bin/chmod: Argument list too long"

    Ubuntu14.04下修改权限时出现"unable to execute /bin/chmod: Argument list too long"   ,大概意思是卧槽,你这参数也 ...

  6. chmod命令用法详解-chmod修改目录权限

    chmod用法: 用来修改某个目录或文件的访问权限.  语法: chmod [-cfvR] [--help] [--version] [who] [+ | - | =] [mode] 文件名 例子: ...

  7. Linux的文件访问权限及修改权限命令chmod

    http://www.linuxso.com/command/chmod.html Linux的文件访问权限及修改权限命令chmod Mxx000 Mxx000 人赞同了该文章 Linux的文件访问权 ...

  8. linux ,mac连接, git pull error, chmod修改文件的权限/chown修改文件和目录的所有者

    去项目目录下 启动服务 setsid npm start & Mac下如何用SSH连接远程Linux服务器 https://www.cnblogs.com/littleBit/p/536280 ...

  9. 学习Shell脚本编程(第2期)_编写修改权限及执行Shell程序的步骤

    编写Shell程序 执行Shell程序 Shell程序有很多类似C语言和其他程序设计语言的特征,但是又没有程序语言那样复杂.Shell程序是指放在一个文件中的一系列Linux命令和实用程序.在执行的时 ...

随机推荐

  1. L255 Learning to say no brings a thrill of freedom

    I am not sure who came up with that thing about never saying yes to something in the distant future ...

  2. Flask源码阅读-第三篇(flask\_compat.py)

    源码 # -*- coding: utf-8 -*-""" flask._compat ~~~~~~~~~~~~~ Some py2/py3 compatibility ...

  3. 元组类型&字典类型

    一.元组 元组:是一个不可变的列表 用途:当需要记录多个同种属性的值,并且只有读没有改的需求是,这时候应该用到元组 定义方式:在()内用逗号费隔开多个任意类型的元素 ***注意***     当元组只 ...

  4. Arrays.copyOfRange()

    Comparable[] aux = Arrays.copyOfRange(arr,from, to); 复制数组arr, from下标开始, to下标结束. 但是不包括to. 所以复制代码为 Com ...

  5. 【Python】Excel-4(样式设置)

    #练习: #封装一个ExcelUtil的模块(构造函数是excel的路径),里面提供封装的方法: #1 获取某个sheet对象 #2 打印所有sheet名称 #3 给某个sheet的某个单元格写入内容 ...

  6. ES6 class的继承-学习笔记

    1.简介 Class 可以通过extends关键字实现继承,这比 ES5 的通过修改原型链实现继承,要清晰和方便很多. 子类必须在constructor方法中调用super方法,否则新建实例时会报错. ...

  7. Spring Boot 揭秘与实战(六) 消息队列篇 - RabbitMQ

    文章目录 1. 什么是 RabitMQ 2. Spring Boot 整合 RabbitMQ 3. 实战演练4. 源代码 3.1. 一个简单的实战开始 3.1.1. Configuration 3.1 ...

  8. sqlplus/rman登录报权限错误ORA-01031/ORA-04005/0RA-00554

    安装Weblogic误操作对Oracle用户属组进行了修改 --本地sqlplus登录报错权限问题??? [oracle@enmo admin]$ sqlplus / as sysdba SQL*Pl ...

  9. Java IntelliJ IDEA 不能显示项目里的文件结构

    方法一: 关闭IDEA, 然后删除项目文件夹下的.idea文件夹 重新用IDEA工具打开项目 方法二: 菜单:File -> Invalidate Caches / Restart

  10. 启动服务报错:nested exception is java.lang.NoSuchMethodError: org.apache.cxf.common.jaxb.JAXBUtils.closeUnmarshaller(Ljavax/xml/bind/Unmarshaller;)V

    1.启动tomcat时报错:Error creating bean with name 'payInfService': Invocation of init method failed; neste ...