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. ios 手机验证码用户注册(倒计时15秒)

    // // ViewController.m // register手机验证码注册 // // Created by zzqqrr on 17/8/28. // Copyright (c) 2017年 ...

  2. JAVA_全局配置文件(配置网址,url等等)_第一种方式

    一.概述 当使用httpClient调其他系统接口时,需要通过地址来发送post请求. 这时我们有不同的环境,那么就有两个问题. 1是地址不能写在代码中,而是要写在配置文件. 2是不同环境配置文件应该 ...

  3. Java编程中必须了解 十几个代码段

    向文件末尾添加内容 字符串有整型的相互转换 转字符串到日期 java.util.Date = java.text.DateFormat.getDateInstance().parse(date Str ...

  4. php 中 ">>" "<<" 的含义

    运算符  说明 <<<    管道,引入自c++.将被其后标记括起来的内容视为一个字符串处理,其中的变量会被展开 <<     左移,位操作算符 >>     ...

  5. 20165228 2017-2018-2 《Java程序设计》第3周学习总结

    20165228 2017-2018-2 <Java程序设计>第3周学习总结 教材学习内容总结 编程语言 面向机器语言:机器能直接识别的语言, 其指令由特定的二进制码表示. 其中汇编语言是 ...

  6. 安卓 dex 通用脱壳技术研究(三)

    /*     此为DexHunter实现的主要功能,进行内存dump,将class_def_items中dump出classdef和extra部分 */ void* DumpClass(void *p ...

  7. YII2.0使用ActiveForm表单(转)

    Controller控制器层代码 <?php namespace frontend\controllers; use frontend\models\UserForm; class UserCo ...

  8. vim 删除

    shift + $ :光标往后 shift + ^ :光标往前 shift + D 删除当前光标直到末尾

  9. 百练6255-单词反转-2016正式B题

    百练 / 2016计算机学科夏令营上机考试 已经结束 题目 排名 状态 统计 提问   B:单词翻转 查看 提交 统计 提问 总时间限制:  1000ms 内存限制:  65536kB 描述 输入一个 ...

  10. acm 2005

    ////////////////////////////////////////////////////////////////////////////////#include<iostream ...