linux下chmod使用
- 用法
- 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使用的更多相关文章
- Linux下chmod命令
命令格式 参数 描述 u User,即文件或目录的拥有者 g Group,即文件或目录的所属群组 o Other,除了文件或目录拥有者或所属群组之外,其它用户皆属于这个范围 a All,即全部的用户, ...
- Linux下chmod 777 修改权限
在linux操作系统下,使用shell命令来操作: 关于权限的问题用chmod命令来修改权限 -rw-r-r-- 1 root root 可参考:http://zhidao.baidu.com/lin ...
- LINUX 下chmod|chown|chgrp和用法和区别
1.chgrp(转变文件所属用户组) chgrp 用户组 文件名 ###便是这个格了.若是整个目次下的都改,则加-R参数用于递归. 如:chgrp -R user smb.conf 2.chown(转 ...
- 简说LINUX 下chmod|chown|chgrp和用法和区别
1.chgrp(改变文件所属用户组) chgrp 用户组 文件名 ###就是这个格了.如果整个目录下的都改,则加-R参数用于递归. 如:chgrp -R user smb.con ...
- chmod不起作用的原因分析 - Linux下查看分区文件系统类型
chmod不起作用 可能的原因: chmod对应的是windows下的一个磁盘分区,ntfs不支持linux权限 附:Linux下如何查看分区文件系统类型 1,fdisk -l fdisk -l 只能 ...
- Linux下的用户和用户组,文件权限:chown和chmod
如下图所示,root权限下新建一个用户MasterBai, /etc/passwd文件中新加入一些信息 这个文件中,记录了该服务器的用户信息,如下图红色框起来的用户,就是我们自己创建的用户,而起来2- ...
- Aix/Linux下自动备份oracle数据库
曾经有个同事,来回操作开发和生产的数据库,结果误删了生产的数据库,那种心情我想不是一般人能理解的,虽然说oracle可以有方法还原,但并不是彻底的. 所以,在工作中,不管是开发还是维护,备份数据库是非 ...
- Linux下命令行安装weblogic10.3.6
Linux下命令行安装weblogic10.3.6 一.安装前准备工作: 1.创建用户useradd weblogic;创建用户成功linux系统会自动创建一个和用户名相同的分组,并将该用户分到改组中 ...
- Linux下的几个好用的命令与参数
将所有文件的编码,转换为UTF-8 find . ! -type d -exec enca -L zh_CN -x UTF-8 {} \; 将指定目录下所有文件权限设定为644 find . ! -t ...
随机推荐
- python 全栈开发,Day44(IO模型介绍,阻塞IO,非阻塞IO,多路复用IO,异步IO,IO模型比较分析,selectors模块,垃圾回收机制)
昨日内容回顾 协程实际上是一个线程,执行了多个任务,遇到IO就切换 切换,可以使用yield,greenlet 遇到IO gevent: 检测到IO,能够使用greenlet实现自动切换,规避了IO阻 ...
- ERP退货系统管理(四十五)
添加的存储过程:(添加退货申请信息的存储过程) CREATE PROCEDURE [dbo].[BioBackSendGoods_ADD] @SendBackID INT OUTPUT, ), @Ap ...
- Git强制更新本地库和冲突解决
1.You have not concluded your merge. (MERGE_HEAD exists) 本地有修改和提交,如何强制用远程的库更新.出现这种情况一般是git本地有commit, ...
- day8--socketserver作业
fileno()文件描述符 handle_request()处理单个请求 server_forever(poll_interval=0.5)处理多个请求,poll_interval每0.5秒检测是否关 ...
- Python debug 调试;
F9:执行跳到下一个断点 F8:执行下一步 F7:进入函数
- 练习|Django-多表
models.py from django.db import models # Create your models here. class Author(models.Model): nid = ...
- Python 手动新建 Scrapy项目
# 创建项目 scrapy startproject 工程名 # 创建爬虫 scrapy genspider example example.com
- rocketMQ基本架构简介
1.RocketMQ 简介: RocketMQ前身是阿里研发的一个队列模型的消息中间件,后开源给apache基金会成为了apache的顶级开源项目,具有高性能.高可靠.高实时.分布式特点. 2.Roc ...
- 使用PhoneGap搭建一个山寨京东APP(转)
为什么要写一个App 首先解释下写出来的这个App,其实无任何功能,只是用HTML和CSS模仿JD移动端界面写的一个适配移动端的Web界面.本篇主要内容是介绍如何使用PhoneGap把开发出来的m ...
- HDU - 1712 - ACboy needs your help 【分组背包】
<题目链接> 题目大意:有n个课程,现在花M天来学习这些课程,学习每个课程花的天数所得到的价值不同,求M天怎么分配学习才能得到的价值最大.(这些课程得到的价值和所花天数的关系由矩阵给出) ...