Linux文件目录管理
Linux文件目录:权限管理
#### chmod命令 - 语法:chmod [-cfvR] [--help] [--version] mode file... - 参数: - -c : 若该文件权限确实已经更改,才显示其更改动作 - -f : 若该文件权限无法被更改也不要显示错误讯息 - -v : 显示权限变更的详细资料 - -R : 对目前目录下的所有文件与子目录进行相同的权限变更(即以递归的方式逐个变更) - mode:权限设定字串 - 格式:[ugoa...][[+-=][rwxX]...][,...] - u 表示该文件的拥有者,g 表示与该文件的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是。 - +表示增加权限、-表示取消权限、=表示唯一设定权限。 - r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该文件是个子目录或者该文件已经被设定过为可执行。 #### chown 变更文件或目录的拥有者或所属群组 - 语法: ```shell chown [-cfhRv][--dereference][拥有者.<所属群组>][文件或目录..] chown [-chfRv][--dereference][.所属群组][文件或目录... ...] chown [-cfhRv][--dereference][--reference=<参考文件或目录>][文件或目录...] ``` - 参数: -c 效果类似"-v"参数,但仅回报更改的部分。 -f 不显示错误信息。 -h 只78对符号连接的文件作修改,而不更动其他任何相关文件。 -R 递归处理,将指定目录下的所有文件及子目录一并处理。 -v 显示指令执行过程。 -\-dereference 效果和"-h"参数相同。 -\-reference=<参考文件或目录> 把指定文件或目录的拥有者与所属群组全部设成和参考文件或目录的拥有者与所属群组相同。 - 例子: ```shell chown user1 file1 改变一个文件的所有人属性 chown -R user1 directory1 改变一个目录的所有人属性并同时改变改目录下所有文件的属性 chown user1:group1 file1 改变一个文件的所有人和群组属性 ``` #### chgrp 用来变更文件或目录的所属群组 - 语法:chgrp(选项)(参数) - 选项: - -c:效果类似“-v”参数,但仅回报更改的部分; - -f:不显示错误信息; - -h:只对符号连接的文件作修改,而不是该其他任何相关文件; - -R:递归处理,将指令目录下的所有文件及子目录一并处理; - -v:显示指令执行过程; - -\-reference=<参考文件或目录>:把指定文件或目录的所属群组全部设成和参考文件或目录的所属群组相同; - 参数: 组:指定新工作名称; 文件:指定要改变所属组的文件列表。多个文件或者目录之间使用空格隔开。 #### lsattr命令:查看文件系统属性 - 语法: lsattr [选项] 文件或目录名 - 选项: -a:后面不带文件或目录名,表示显示所有文件和目录(包括隐藏文件和目录) -d:如果目标是目录,只会列出目录本身的隐藏属性,而不会列出所含文件或子目录的隐藏属性信息; -R:和 -d 恰好相反,作用于目录时,会连同子目录的隐藏信息数据也一并显示出来。 #### chattr命令:修改文件系统的权限属性 - 语法:chattr [+-=] [属性] 文件或目录名 \+ 表示给文件或目录添加属性,- 表示移除文件或目录拥有的某些属性,= 表示给文件或目录设定一些属性。 chattr 命令,专门用来修改文件或目录的隐藏属性,只有 root 用户可以使用。 - 选项 - i:如果对文件设置 i 属性,那么不允许对文件进行删除、改名,也不能添加和修改数据;如果对目录设置 i 属性,那么只能修改目录下文件中的数据,但不允许建立和删除文件; - a:如果对文件设置 a 属性,那么只能在文件中増加数据,但是不能删除和修改数据;如果对目录设置 a 属性,那么只允许在目录中建立和修改文件,但是不允许删除文件; - u:设置此属性的文件或目录,在删除时,其内容会被保存,以保证后期能够恢复,常用来防止意外删除文件或目录。 - s:和 u 相反,删除文件或目录时,会被彻底删除(直接从硬盘上删除,然后用 0 填充所占用的区域),不可恢复。 #### 符号模式 - 使用符号模式可以设置多个项目:who(用户类型),operator(操作符)和 permission(权限),每个项目的设置可以用逗号隔开。 命令 chmod 将修改 who 指定的用户类型对文件的访问权限,用户类型由一个或者多个字母在 who 的位置来说明。 -** who 的符号模式表所示:** - u:即user,表示文件所有者 - g:即group,表示文件所有者所在组 - o:即others,表示所有其他用户 - a:即all,表示所有用户, 相当于 ugo - **operator 的符号模式表:** - +:即为指定的用户类型增加权限 - -:即去除指定用户类型的权限 - =:即设置指定用户权限的设置,即将用户类型的所有权限重新设置 - **permission 的符号模式表:** - r:读,设置为可读权限 - w:写,设置为可写权限 - x:执行权限,设置为可执行权限 - X:特殊执行权限,只有当文件为目录文件,或者其他类型的用户有可执行权限时,才将文件权限设置可执行 - s:setuid/gid,当文件被执行时,根据who参数指定的用户类型设置文件的setuid或者setgid权限 - t:粘贴位,设置粘贴位,只有超级用户可以设置该位,只有文件所有者u可以使用该位 #### 文件权限划分 - Linux/Unix 的文件调用权限分为三级 : 文件所有者(Owner)、用户组(Group)、其它用户(Other Users)。  - 只有文件所有者和超级用户可以修改文件或目录的权限。可以使用绝对模式(八进制数字模式),符号模式指定文件的权限。  #### 八进制语法 - r->4,w->2,x->1 | 权限 | rwx | 八进制 | | ----- | ----- | | 读 + 写 + 执行 | rwx | 7 | | 读 + 写 | rw- | 6 | | 读 + 执行 | r-x | 5 | | 只读 | r-- | 4 | | 写 + 执行 | -wx | 3 | | 只写 | -w- | 2 | | 只执行 | --x | 1 | | 无 | --- | 0 | #### 更多说明 | 命令 | 说明 | | ----- | ----- | | 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/ | #### 实例 ```shell chmod ugo+rwx directory1 设置目录的所有人(u)、群组(g)以及其他人(o)以读(r )、写(w)和执行(x)的权限 chmod go-rwx directory1 删除群组(g)与其他人(o)对目录的读写执行权限 chmod u+s /bin/file1 设置一个二进制文件的 SUID 位 - 运行该文件的用户也被赋予和所有者同样的权限 chmod u-s /bin/file1 禁用一个二进制文件的 SUID位 chmod o+t /home/public 设置一个文件的 STIKY 位 - 只允许合法所有人删除文件 chmod o-t /home/public 禁用一个目录的 STIKY 位 chmod ug+w,o-x text ```
顶部
收展
底部
[TOC]
目录
Linux文件目录:增删改查命令
Linux文件目录:权限管理
Linux文件目录:文件搜索
Linux文件目录:文件比较
Linux文件目录:过滤分割合并
LInux文件目录:文件传输
Rsync同步过程中遇到的常见问题
相关推荐
Linux打包压缩
Linux文本处理
Linux软件安装
Linux用户和用户组管理
Linux文件系统管理
Linux系统管理