这篇文章主要讲解了“Linux基础命令chmod的用法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Linux基础命令chmod的用法”吧!
chmod
改变文件或者目录的权限,可以用数字或者字母来标识权限。在数字模式下:0,代表没有权限;1,代表可执行;2,代表可读;4,代表可写;多个权限可以相加。在字符模式下:x,代表执行;r,代表读;w,代表写;g,代表组权限;o,代表组内其他用户权限;u,代表用户权限ls命令中,看到的权限分别是:用户权限、组权限、组内其他用户权限。此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。
1
、语法
chmod[
选项]modefile
chmod[
选项]八进制模式file
chmod[
选项]–reference=RFILEfile
2
、选项列表
选项说明
–version
显示命令版本信息
–help
显示帮助文档
-c | –changes
和verbose一样,但是只有在发生改变的时候才显示详细信息
–preserve-root
禁止对根目录递归炒作
–no-preserve-root
不特殊对待根目录,默认值
-f | –silent | –quiet
忽略部分错误信息
–reference=file
使用关联文件所属的组
-v | –verbose
显示详细信息
-R | –recursive
用递归的方式改变所有的目录和子目录
3
、说明
chmod根据模式更改每个给定文件的文件模式位,该模式可以是要进行的更改的符号表示,也可以是表示新模式位的位模式的八进制数。符号模式的格式是[ugoa…][[+-=][perms…]…],其中perms为集合rwxXst的零个或多个字母,或来自结合ugo的单个字母。可以给出多种符号模式,用逗号分隔。字母ugoa控制哪些用户访问文件的权限将被更改:(u)拥有该文件的用户、(g)文件组中的其他用户、(o)不属于文件组的其他用户或所有用户(A)。如果所有这些都没有给出,那么效果就好像给定了“a”,但是在umask中设置的位不受影响。运算符‘+’使所选的文件模式位被添加到每个文件的现有文件模式位中;‘-’使它们被删除;‘=‘使它们被添加,并使未提及的位被删除,除非目录的未提及的设置用户和组ID位不受影响。字母“rwxXst”为受影响的用户选择文件模式位:(r)读、(w)写、(x)执行(或搜索目录)、(X)只在文件是目录或已对某些用户具有执行权限、(s)在执行时设置用户或组ID、(t)限制删除标志或粘性位时执行/搜索。您可以指定“ugo”其中的一个或多个字母:(u)授予拥有文件的用户的权限,(g)授予属于文件组的其他用户的权限,(o)授予上述两个类别中任何一个用户的权限。数字模式是1到4个八进制数字(0-7),通过将值4、2和1的位相加而得。省略的数字被假定为前导零。第一个数字选择设置用户ID(4)和设置组ID(2),并限制删除或粘贴(1)属性。第二位数为拥有该文件的用户选择权限:读(4)、写(2)和执行(1);第三位数选择文件组中具有相同值的其他用户的权限;第四位数字选择对不属于文件组的其他用户具有相同值的权限。chmod从不更改符号链接的权限;chmod开发云主机域名系统调用不能更改它们的权限。这不是一个问题,因为符号链接的权限从未被使用过。但是,对于命令行中列出的活动:慈云数据爆款香港服务器,CTG+CN2高速带宽、快速稳定、平均延迟10+ms 速度快,免备案,每月仅需19元!! 点击查看每个符号链接,chmod会更改指向文件的权限。相反,chmod忽略递归目录遍历过程中遇到的符号链接。
4
、设置uid和gid
如果文件的组ID与用户的有效组ID或用户的辅助组ID不匹配,则chmod将清除常规文件的“set-group-ID”位,除非用户具有适当的权限。附加限制可能导致MODE或RFILE的“set-user-ID”和“set-group-ID”位被忽略.此行为取决于底层chmod系统调用的策略和功能。当有疑问时,检查底层系统行为。chmod保留目录的“set-user-ID”和“set-group-ID”位,除非您显式地另外指定。您可以使用“u+s”和“g-s”这样的符号模式设置或清除位,也可以用数字模式设置(但不清楚)这些位。
5
、限制删除标志或粘性位
受限制的删除标志或粘性位是一个位,其解释取决于文件类型。对于目录,它防止非特权用户删除或重命名目录中的文件,除非他们拥有该文件或目录;这称为目录的限制删除标志,通常在/tmp之类的可写目录中找到。对于一些旧系统上的常规文件,这一位将程序的文本映像保存在交换设备上,以便在运行时更快地加载;这称为粘性位。
6
、实例
1)修改文件的权限为最大值
[root@localhost weijie]#
chmod 777 1.c
You have new mail in /var/spool/mail/root
[root@localhost weijie]#
ls -l 1.c
-rwxrwxrwx
1 root weijie 0 9
月
7 09:11 1.c
2)设置组和其他用户只读,使用字符模式设置
[root@localhost weijie]#
chmod 777 1.c//
改为最大权限
[root@localhost weijie]#
ls -l 1.c
-rwxrwxrwx
1 root weiji开发云主机域名e 0 9
月
7 09:11 1.c
[root@localhost weijie]#
chmod go+r 1.c//
修改组、其他用户权限
[root@localhost weijie]#
ls -l 1.c
-rwxrwxrwx
1 root weijie 0 9
月
7 09:11 1.c
//
这里没有效果
[root@localhost weijie]#
chmod 700 1.c//
组、其他用户权限为
[root@localhost weijie]#
chmod go+r 1.c//
组、其他用户增加读权限
[root@localhost weiji开发云主机域名e]#
ls -l 1.c
-rwxr--r-- 1
root weijie 0 9
月
7 09:11 1.c//
成功。可以看到使用字符模式的时候,权限是一种或的算法,而不是直接赋值
感谢各位的阅读,以上就是“Linux基础命令chmod的用法”的内容了,经过本文的学习后,相信大家对Linux基础命令chmod的用法这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是开发云,小编将为大家推送更多相关知识点的文章,欢迎关注!
本文从转载,原作者保留一切权利,若侵权请联系删除。
《Linux基础命令chmod的用法》来自互联网同行内容,若有侵权,请联系我们删除!
还没有评论,来说两句吧...