用法

chmod使用语法

$ chmod [options] mode[,mode] file1 [file2 ...]

使用ls命令的查看文件或目录的属性

$ ls -l file

八进制语法

chmod命令可以使用八进制数来指定权限。文件或目录的权限位是由9个权限位来控制,每三位为一组,它们分别是文件所有者(user)的读、写、执行,用户组(group)的读、写、执行以及(other)其它用户的读、写、执行。历史上,文件权限被放在一个比特掩码中,掩码中指定的比特位设为1,用来说明一个类具有相应的优先级。

chmod的八进制语法的数字说明;

r 4

w 2

x 1

- 0

所有者的权限用数字表达:属主的那三个权限位的数字加起来的总和。如rwx ,也就是4+2+1 ,应该是7。

用户组的权限用数字表达:属组的那个权限位数字的相加的总和。如rw- ,也就是4+2+0 ,应该是6。

其它用户的权限数字表达:其它用户权限位的数字相加的总和。如r-x ,也就是4+0+1 ,应该是5。

例如修改文件myfile的权限

$ chmod 664 myfile
$ ls -l myfile
-rw-rw-r-- 1 57 Jul 3 10:13 myfile 符号模式 使用符号模式可以设置多个项目:who(用户类型),operator(操作符)和permission(权限),每个项目的设置可以用逗号隔开。 命令chmod将修改who指定的用户类型对文件的访问权限,用户类型由一个或者多个字母在who的位置来说明,如who的符号模式表所示:
who 用户类型 说明
u user 文件所有者
g group 文件所有者所在组
o others 所有其他用户
a all 所用用户, 相当于 ugo operator的符号模式表:
Operator 说明
+ 为指定的用户类型增加权限
- 去除指定用户类型的权限
= 设置指定用户权限的设置,即将用户类型的所有权限重新设置 permission的符号模式表:
模式 名字 说明
r 读 设置为可读权限
w 写 设置为可写权限
x 执行权限 设置为可执行权限
X 特殊执行权限 只有当文件为目录文件,或者其他类型的用户有可执行权限时,才将文件权限设置可执行
s setuid/gid 当文件被执行时,根据who参数指定的用户类型设置文件的setuid或者setgid权限
t 粘贴位 设置粘贴位,只有超级用户可以设置该位,只有文件所有者u可以使用该位
符号模式实例 对目录的所有者u和关联组g增加读r和写w权限: $ chmod ug+rw mydir
$ ls -ld mydir
drw-rw---- 2 unixguy uguys 96 Dec 8 12:53 mydir 对文件的所有用户ugo删除写w权限: $ chmod a-w myfile
$ ls -l myfile
-r-xr-xr-x 2 unixguy uguys 96 Dec 8 12:53 myfile 对mydir的所有者u和关联组g设置成读r和可执行x权限: $ chmod ug=rx mydir
$ ls -ld mydir
dr-xr-x--- 2 unixguy uguys 96 Dec 8 12:53 mydir 命令使用实例
命令 说明
chmod a+r file 增加读权限对file的所有用户
chmod a-x file 删除执行权限对file的所有用户
chmod a+rw file 增加读写权限对file的所有用户
chmod +rwx file 增加读写执行权限对file的所有用户
chmod u=rw,go= file 设置读写权限对file的所有者,清空所有权限对file的用户组和其他用户
chmod -R u+r,go-r docs 对目录docs和其子目录层次结构中的所有文件增加所有用户的读权限,而对用户组和其他用户删除读权限
chmod 664 file 设置读写权限对file的所有者和用户组, 为其其他用户设置读权限
chmod 0755 file 相当于u=rwx (4+2+1),go=rx (4+1 & 4+1)。0 没有特殊模式。
chmod 4755 file 4设置了设置用户ID,剩下的相当于 u=rwx (4+2+1),go=rx (4+1 & 4+1)。
find path/ -type d -exec chmod a-x {} \; 删除可执行权限对path/以及其所有的目录(不包括文件)的所有用户,使用‘-type f'匹配文件
find path/ -type d -exec chmod a+x {} \; 允许所有用户浏览或通过目录path/
函数说明 chmod函数C语言的定义: int chmod(const char *path, mode_t mode); 函数使用mode_t类型的参数,使用其比特位组成各种模式:
模式 八进制 含义
S_ISUID 04000 执行时设置用户ID,setuid权限
S_ISGID 02000 执行时设置组ID,setgid权限
S_ISVTX 01000 粘贴位
S_IRUSR, S_IREAD 00400 所有者读
S_IWUSR, S_IWRITE 00200 所有者写
S_IXUSR, S_IEXEC 00100 所有者执行
S_IRGRP 00040 由组读
S_IWGRP 00020 由组写
S_IXGRP 00010 由组执行
S_IROTH 00004 其他人读
S_IWOTH 00002 其他人写
S_IXOTH 00001 其他人执行 模式进行按位或运算对应期望的权限。
参考文献
linux命令行与shell脚本编程大全

linux下chmod使用的更多相关文章

  1. Linux下chmod命令

    命令格式 参数 描述 u User,即文件或目录的拥有者 g Group,即文件或目录的所属群组 o Other,除了文件或目录拥有者或所属群组之外,其它用户皆属于这个范围 a All,即全部的用户, ...

  2. Linux下chmod 777 修改权限

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

  3. LINUX 下chmod|chown|chgrp和用法和区别

    1.chgrp(转变文件所属用户组) chgrp 用户组 文件名 ###便是这个格了.若是整个目次下的都改,则加-R参数用于递归. 如:chgrp -R user smb.conf 2.chown(转 ...

  4. 简说LINUX 下chmod|chown|chgrp和用法和区别

    1.chgrp(改变文件所属用户组) chgrp 用户组    文件名    ###就是这个格了.如果整个目录下的都改,则加-R参数用于递归. 如:chgrp  -R    user  smb.con ...

  5. chmod不起作用的原因分析 - Linux下查看分区文件系统类型

    chmod不起作用 可能的原因: chmod对应的是windows下的一个磁盘分区,ntfs不支持linux权限 附:Linux下如何查看分区文件系统类型 1,fdisk -l fdisk -l 只能 ...

  6. Linux下的用户和用户组,文件权限:chown和chmod

    如下图所示,root权限下新建一个用户MasterBai, /etc/passwd文件中新加入一些信息 这个文件中,记录了该服务器的用户信息,如下图红色框起来的用户,就是我们自己创建的用户,而起来2- ...

  7. Aix/Linux下自动备份oracle数据库

    曾经有个同事,来回操作开发和生产的数据库,结果误删了生产的数据库,那种心情我想不是一般人能理解的,虽然说oracle可以有方法还原,但并不是彻底的. 所以,在工作中,不管是开发还是维护,备份数据库是非 ...

  8. Linux下命令行安装weblogic10.3.6

    Linux下命令行安装weblogic10.3.6 一.安装前准备工作: 1.创建用户useradd weblogic;创建用户成功linux系统会自动创建一个和用户名相同的分组,并将该用户分到改组中 ...

  9. Linux下的几个好用的命令与参数

    将所有文件的编码,转换为UTF-8 find . ! -type d -exec enca -L zh_CN -x UTF-8 {} \; 将指定目录下所有文件权限设定为644 find . ! -t ...

随机推荐

  1. 关于ie7下display:inline-block;不支持的解决方案。

    摘要: 声明:此文章为转载(点击查看原文),如有侵权24小时内删除.联系QQ:1522025433. 今天码的时候遇到这个问题了. 如果本身是内联元素的,把它的display属性设置设置为inline ...

  2. python 全栈开发,Day122(人工智能初识,百度AI)

    一.人工智能初识 什么是智能? 我们通常把人成为智慧生物,那么”智慧生物的能力”就是所谓的”智能”我们有什么能力?听,说,看,理解,思考,情感等等 什么是人工智能? 顾名思义就是由人创造的”智慧能力” ...

  3. python 全栈开发,Day95(RESTful API介绍,基于Django实现RESTful API,DRF 序列化)

    昨日内容回顾 1. rest framework serializer(序列化)的简单使用 QuerySet([ obj, obj, obj]) --> JSON格式数据 0. 安装和导入: p ...

  4. 【C语言】 二叉树的基本运算

    • 二叉树节点类型BTNode: typedef struct node { char data; struct node *lchild, *rchild; } BTNode; 创建二叉树 void ...

  5. 【AtCoder】Yahoo Programming Contest 2019

    A - Anti-Adjacency K <= (N + 1) / 2 #include <bits/stdc++.h> #define fi first #define se se ...

  6. Codeforces Round #369 (Div. 2)-D Directed Roads

    题目大意:给你n个点n条边的有向图,你可以任意地反转一条边的方向,也可以一条都不反转,问你有多少种反转的方法 使图中没有环. 思路:我们先把有向边全部变成无向边,每个连通图中肯定有且只有一个环,如果这 ...

  7. T9 HDU1298

    就是字典树加dfs 把所有操作封在结构体里面 #include <cstdio> #include <cstring> #include <algorithm> # ...

  8. 031 分布式中,zookeeper的部署

    一:准备 1.概述 为分布式应用提供协调服务的项目 提供一个简单的原语集合,以便于分布式应用可以在它之上构建更高层次的同步服务. 类似于文件系统那样的树形数据结构 目的:将分布式服务不再由于协作冲突而 ...

  9. Linux 之 AT&T汇编语言 mov、add、sub指令、数据段

    mov指令的几种形式: mov 寄存器. 数据 mov ax,8888 mov 寄存器. 寄存器 mov bx,ax mov 寄存器. 内存单元 mov ax,[0] mov 内存单元.寄存器 mov ...

  10. [微信小程序] 微信小程序下拉滚动选择器picker绑定数据的两种方式

    小程序 picker 多列选择器 数据动态获取 需求是将各校区对应各班级的数据 以两列选择器的方式展示出来,并且可以在选择完成之后记录选结果参数. 校区数据 和 班级数据 分别是两个接口,以 校区 t ...