linux 命令:chmod详解
名称
chmod - 改变文件模式位
用法
chmod [OPTION]... MODE[,MODE]... FILE...
chmod [OPTION]... OCTAL-MODE FILE...
chmod [OPTION]... --reference=RFILE FILE...描述
chmod根据MODE改变每个文件的文件模式位,MODE可以是用符号或8进制数字表示。
符号模式的格式是 [ugoa...][[-+=][perms...]...],其中perms是0或者从rwxXst中选择多个字母,或从ugo中选择一个字母。多种符号模式可以用逗号分隔。
ugoa控制着哪些用户对文件的访问权限将被更改。u表示文件的拥有者,g表示拥有者所在组的其他用户,o表示组外的用户,a表示所有用户。如果这几个参数都没有提供,默认指定所有用户,但是umask中设置的位不会受影响。
运算符"+"使命令中的位模式追加到文件已有的模式中,"-"去掉已存在的并出现在命令中的模式,"="修改模式。
rwxXst表示文件模式,r(读),w(写),x(执行,或搜索目录),X(执行或只有当文件是一个目录或已经对一些用户有可执行权限时进行搜索),s(在执行时设置用户或组 ID),t(禁止删除标志或粘滞位)。
数字模式表示为四位八进制数字(0-7),引申出4,2,1。省略的数字被假定为前导的数字0。第一个数字选择设置用户 ID (4) ,设置组 ID (2) 和限制删除或粘性 (1) 属性。第二个数字选择文件所有者的权限:读(4),写(2),执行(1)。第三个数字选择文件所属组的其他用户的权限,第四个数字配置其他用户。
chmod永不改变软链接的权限,chmod 系统调用无法更改其权限。这不是一个问题,因为软链接的权限从未使用。但是,chmod可以改变软链接指向的文件的权限。相反,chmod 忽略在递归目录遍历过程中遇到的符号链接。
SETUID 和 SETGID 位
如果文件的组ID和用户的有效组ID或用户的补充组ID之一不匹配,chmod会清空SETUID位,除非用户有适当的特权。额外的限制会导致MODE或RFILE的SETUID和SETGID位被忽略。这个行为依赖于底层 chmod 系统调用的策略和功能。
对于目录 chmod 保留 SETUID 和 SETGID 位,除非你明确指定。你可以设置或清空模式位比如 u+s、g-s。要清除数字模式目录的这些位需要额外的前导0,或前导"=" 比如 00755 或 =755。
禁止删除标志或粘滞位
禁止删除标志或粘滞位是一个单独位,取决于文件类型。对于目录,它阻止无特权的用户删除或重命名这个目录中的文件,除非用户拥有文件或目录。这就叫作目录的禁止删除标志,在全局可写的目录中常见,比如/tmp。对于一些过去的系统中的普通文件,该位将程序的文本镜像保存在交换设备上,以便在运行时加载得更快,这就叫作粘滞位。
选项
改变每个FILE的模式为MODE。使用--reference,改变每个FILE的模式为RFILE。
-c, --changes
类似-v,但是只在发生改变时展示信息。
-f, --silent, --quiet
折叠大部分错误消息。
-v, --verbose
为每个操作的文件输出诊断信息。
--no-preserve-root
不特殊处理 '/' (默认)。
--preserve-root
无法对 '/' 进行递归操作。
--reference=RFILE
使用RFILE的模式而不是MODE。
-R, --recursive
递归改变文件和目录。
--help
打印这个帮助文档并退出。
--version
输出版本信息并推出。
MODE的格式:[ugoa]*([-+=]([rwxXst]*|[ugo]))+|[-+=][0-7]+
使用示例:
[root@server dir]# ll
总用量 20
-rw-r--r-- 2 root root 363 12月 2 16:36 a
lrwxrwxrwx 2 root root 4 12月 2 13:54 dir1 -> dir2
drwxr-xr-x 2 root root 4096 12月 2 14:08 dir2
drwxr-xr-x 3 root root 4096 12月 1 16:11 dir3
lrwxrwxrwx 2 root root 4 12月 2 13:54 dir4 -> dir2
-rw-r--r-- 1 root root 4 12月 1 18:08 file2
-rw-r--r-- 1 root root 0 11月 28 15:12 file3
-rw-r--r-- 1 root root 0 11月 29 14:41 file4
-rw-r--r-- 1 root root 164 11月 28 16:41 file.zip## 属主添加可执行权限
[root@server dir]# chmod u+x file[2-4]
[root@server dir]# ll
总用量 20
-rw-r--r-- 2 root root 363 12月 2 16:36 a
lrwxrwxrwx 2 root root 4 12月 2 13:54 dir1 -> dir2
drwxr-xr-x 2 root root 4096 12月 2 14:08 dir2
drwxr-xr-x 3 root root 4096 12月 1 16:11 dir3
lrwxrwxrwx 2 root root 4 12月 2 13:54 dir4 -> dir2
-rwxr--r-- 1 root root 4 12月 1 18:08 file2
-rwxr--r-- 1 root root 0 11月 28 15:12 file3
-rwxr--r-- 1 root root 0 11月 29 14:41 file4
-rw-r--r-- 1 root root 164 11月 28 16:41 file.zip## 属组配置为可读和可执行
[root@server dir]# chmod g=rx file[2-4]
[root@server dir]# ll
总用量 20
-rw-r--r-- 2 root root 363 12月 2 16:36 a
lrwxrwxrwx 2 root root 4 12月 2 13:54 dir1 -> dir2
drwxr-xr-x 2 root root 4096 12月 2 14:08 dir2
drwxr-xr-x 3 root root 4096 12月 1 16:11 dir3
lrwxrwxrwx 2 root root 4 12月 2 13:54 dir4 -> dir2
-rwxr-xr-- 1 root root 4 12月 1 18:08 file2
-rwxr-xr-- 1 root root 0 11月 28 15:12 file3
-rwxr-xr-- 1 root root 0 11月 29 14:41 file4
-rw-r--r-- 1 root root 164 11月 28 16:41 file.zip## 755 意思是属主全部权限,属组可读可执行,其他用户可读可执行
[root@server dir]# chmod 755 file2
[root@server dir]# ll
总用量 20
-rw-r--r-- 2 root root 363 12月 2 16:36 a
lrwxrwxrwx 2 root root 4 12月 2 13:54 dir1 -> dir2
drwxr-xr-x 2 root root 4096 12月 2 14:08 dir2
drwxr-xr-x 3 root root 4096 12月 1 16:11 dir3
lrwxrwxrwx 2 root root 4 12月 2 13:54 dir4 -> dir2
-rwxr-xr-x 1 root root 4 12月 1 18:08 file2
-rwxr-xr-- 1 root root 0 11月 28 15:12 file3
-rwxr-xr-- 1 root root 0 11月 29 14:41 file4
-rw-r--r-- 1 root root 164 11月 28 16:41 file.zip## 递归操作目录 注意:chmod会忽略软链接
[root@server dir]# chmod -R 755 ~/dir/
[root@server dir]# ll
总用量 20
-rwxr-xr-x 2 root root 363 12月 2 16:36 a
lrwxrwxrwx 2 root root 4 12月 2 13:54 dir1 -> dir2
drwxr-xr-x 2 root root 4096 12月 2 14:08 dir2
drwxr-xr-x 3 root root 4096 12月 1 16:11 dir3
lrwxrwxrwx 2 root root 4 12月 2 13:54 dir4 -> dir2
-rwxr-xr-x 1 root root 4 12月 1 18:08 file2
-rwxr-xr-x 1 root root 0 11月 28 15:12 file3
-rwxr-xr-x 1 root root 0 11月 29 14:41 file4
-rwxr-xr-x 1 root root 164 11月 28 16:41 file.zip
linux 命令:chmod详解相关推荐
- Linux命令-ls详解
Linux命令-ls详解(适合小白用户参考) 1.ls 不加任何参数,表示查询当前目录下的文件/文件夹 小提示:上面的白色文字表示普通文件,蓝色文字表示目录 2.ls 后面 ...
- 面试官都在问 | Linux命令mpstat详解
面试官都在问 | Linux命令mpstat详解 1. mpstat的基本用法 mpstat的全称为Multiprocessor Statistics,是一款常用的多核CPU性能分析工具,用来实时查询 ...
- linux 命令 curl 详解
一.curl 介绍 curl是一个命令行访问URL的计算机逻辑语言的工具,发出网络请求,然后得到数据并提取出,显示在标准输出stdout上面; 可以用它来构造http request报文,curl(C ...
- LINUX命令大全详解备忘录
文件目录操作命令 ls命令 cd命令 pwd命令 mkdir命令 rm 命令 rmdir 命令 mv命令 cp 命令 touch 命令 cat 命令 nl命令 more命令 less 命令 head ...
- linux命令 正则表达式,详解Linux命令中的正则表达式
详解Linux命令中的正则表达式 Mark Do 2017年9月19日 暂无评论 阅读 981 次 命令中的正则表达式 如果要在命令输出或文本中筛选内容时使用模糊查找,就需要使用正则表达式.正则表达式 ...
- Linux命令大全详解,让我们轻松入门学习Linux!
1.最基本常用命令 序号 命令 对应英文 作用 01 ls list 查看当前文件夹下的内容 02 pwd print wrok directory 查看当前所在文件夹 03 cd [目录名] cha ...
- linux命令——ll详解
一.ll命令 ll并不是linux下一个基本的命令,它实际上是ls -l的一个别名. Ubuntu默认不支持命令ll,必须用 ls -l,这样使用起来不是很方便. 如果要使用此命令,可以作如下修改: ...
- linux命令历史详解
概念:顾名思义,我们在linux终端输过的命令,系统都会将他们加载到内存中,以便我们快速调用命令.另外,Bash拥有自动记录命令历史的功能,用户所执行的命令会在注销时自动记录到自己的家目录下的.bas ...
- Linux命令——find详解
find是一个非常有效的工具,他可以遍历指定目录甚至整个系统来查找某些文件或目录 find [查找路径] [查找条件] [处理动作] 一.查找路径 (1) ./ 指的是当前目录下开始查找 (2) ...
- Linux命令lsscsi详解
@ 一.什么是scsi 二.常见硬盘接口 1. IDE接口的硬盘 2. SCSI接口硬盘 3. SATA接口类型 三. lsscsi命令 1. lsscsi 命令安装 2. lsscsi命令英文手册 ...
最新文章
- java调用权报表的代码_ireport5.6使用table组件,如何用table显示javaBean数据源
- Caffe学习笔记3——制作并训练自己的数据集
- 软件工程——团队作业3
- PHP应对洪水般的恶意访问接口 访问冲击
- MyBaties异常之 ORA-00918: 未明确定义列
- linux 安装python_Linux/Mac/Windows的Rstudio安装Python模块总报错,怎么破?
- mysql50道题 查询和,Mysql Sql 语句练习题 (50道)
- DataTable RowFilter 过滤数据
- WinForm UI设计与开发思路(转)
- 字符串匹配算法之KMP
- RocketMQ(三)—— 集群模式的说明
- Python链表学习
- python笔记06_进程vs线程
- input框,需要隐式显示的时候,不让它自动填充的办法
- 移植 libuv 到 Visual C++ 6.0 并支持在 Windows XP 系统下编译
- MATLAB简介与基础知识
- OSCHINA网页旋转-愚人节效果
- 链家网深圳租房信息分析报告
- 测试之颠,必先利其器
- 电子货架标签----拣货系统
热门文章
- CocoStudio1.3 场景编辑器使用
- c语言程序设计pdf下载上海交大,C语言程序设计第1章参考标准答案(上海交大出版社).doc...
- 使用ExtendSim进行物流、供应链和运输建模仿真
- C语言求素数中flag的作用,c语言编程判断素数 c语言程序设计(判断素数)
- python可视化编程软件下载_mPython-mPython(图形化编程软件)下载 v0.5.0官方版-下载啦...
- 幼儿园管理系统源码【免费分享】
- java 彻底删除文件_如何删除java文件
- linkedin android,如何在android中登录linkedin?
- XenCenter建立SR存储库,添加系统ISO镜像源
- IT项目经理每天每周都在干什么?附简要周报模板