Linux系统中chmod命令的用法详解
Linux系统中chmod命令修改方式位和指定文件的扩展访问控制表。下面由学习啦小编为大家整理了Linux系统中chmod命令的用法详解的相关知识,希望对大家有帮助!
Linux系统中chmod命令的用法详解
用途
更改文件方式。
语法
要用符号更改文件方式
chmod [ -R ] [ -h ] [ -f ] [ [ u ] [ g ] [ o ] | [ a ] ] { { - | + | = } [ r ] [ w ] [ x ] [ X ] [ s ] [ t ] } { File ... | Directory ... }
要用数字更改文件方式
chmod [ -R ] [ -h ] [ -f ] PermissionCode { File ... | Directory ... }
描述
chmod 命令修改方式位和指定文件或目录的扩展访问控制表(ACL )。可以用符号或用数字定义方式(完全方式)。
当遇到符号链接而您未指定 -h 标志时,chmod 命令更改通过链接指向的文件或目录的方式,而非链接本身的方式。如果指定 -h 标志,则 chmod 命令防止此方式更改。
如果指定 -h 标志和 -R 标志,chmod 命令递归地降序指定的目录,并且在遇到符号链接时,不更改链接指向的文件或目录的方式。
标志
-f 禁止所有错误报告(除了无效权限和用法语句)。
-h 禁止遇到的符号链接指向的文件或目录的方式更改。
注:由于不能在符号链接上设置方式位,所以此行为与 chgrp 和 chown 命令上的 -h 标志的行为略有不同。
-R 只递归地降序目录,如同模式 File...|Directory... 指定。-R 标志更改匹配指定模式的每个目录和所有文件的文件方式位。
当遇到符号链接并且链接指向目录时,更改该目录的文件方式位,但不进一步遍历目录
Linux系统中的chmod命令的详解实例
1. 要将许可权类型添加到几个文件:
chmod g+w chap1 chap2
这将组成员的写权限添加到文件 chap1 和 chap2 。
2. 要立即进行几个许可权更改:
chmod go-w+x mydir
这拒绝组成员和其他人创建或删除 mydir (go-w )中的文件的许可权,并允许组成员和其他人搜索 mydir 或在路径名(go+x )中使用它。这等价于命令序列:
chmod g-w mydir
chmod o-w mydir
chmod g+x mydir
chmod o+x mydir
3. 要只允许所有者将 shell 步骤用作命令:
chmod u=rwx,go= cmd
这授权文件(u=rwx )所有者读、写和执行许可权。它还拒绝组和其他人以任何方式(go= )访问 cmd 的许可权。
如果具有执行 cmd shell 命令文件的许可权,则可以通过输入以下命令运行它:
cmd
注:取决于 PATH shell 变量,可能需要指定 cmd 文件的全路径。
4. 要使用设置标识(Set-ID )方式:
chmod ug+s cmd
在执行 cmd 命令时,有效的用户标识和组标识设置为那些拥有 cmd 文件的所有者。只更改与运行 cmd 命令的子进程关联的有效标识。 shell 会话的有效标识保留不更改。
此功能允许您可以访问受限制的文件。假定 cmd 程序启用了“设置用户标识(Set-User-ID )方式”并为名为 dbms 的用户所拥有。实际上,用户 dbms 不是一个人,但可能与数据库管理系统关联。用户 betty 不具有访问任何 dbms 的数据文件的许可权。然而,她具有执行 cmd 命令的许可权。当她这样做时,她的有效用户标识临时更改为 dbms ,因此 cmd 程序可以访问用户 dbms 拥有的数据文件。
这种方式下,用户 betty 可以使用 cmd 命令访问数据文件,但她不会在使用标准 shell 命令的过程中意外地破坏它们。
5. 要使用 chmod 命令的完全方式格式:
chmod 644 text
这设置所有者的读和写许可权,并且它对组和其他用户设置只读方式。这还除去可能与文件关联的所有扩展 ACL 。
6. 要递归地降序目录并更改给予树结构的文件和目录许可权:
./dir1/dir2/file1
./dir1/dir2/file2
./dir1/file1
请输入此命令序列:
chmod -R 777 f*
这将更改 ./dir1/file1 的许可权。
但对于以下树结构:
./dir1/fdir2/file1
./dir1/fdir2/file2
./dir1/file3
命令序列:
chmod -R 777 f*
将更改以下内容的许可权:
./dir1/fdir2
./dir1/fdir2/file1
./dir1/fdir2/file2
./dir1/file3
补充:Linux系统中chown命令详解
指令名称 : chown
使用权限 : root
使用方式 : chmod [-cfhvR] [--help] [--version] user[:group] file...
说 明 : linux/Unix 是多人多工作业系统,所有的档案皆有拥有者。利用 chown 可以将档案的拥有者加以改变。一般来说,这个指令只有是由系统管理者(root)所使用,一般使用者没有权限可以改变别人的档案拥有者,也没有权限可以自 己的档案拥有者改设为别人。只有系统管理者(root)才有这样的权限。
user : 新的档案拥有者的使用者 IDgroup : 新的档案拥有者的使用者群体(group)-c : 若该档案拥有者确实已经更改,才显示其更改动作-f : 若该档案拥有者无法被更改也不要显示错误讯息-h : 只对于连结(link)进行变更,而非该 link 真正指向的档案-v : 显示拥有者变更的详细资料-R : 对目前目录下的所有档案与子目录进行相同的拥有者变更(即以递回的方式逐个变更)--help : 显示辅助说明--version : 显示版本
范例 :将档案 file1.txt 的拥有者设为 users 群体的使用者 jessie :
chown jessie:users file1.txt
将目前目录下的所有档案与子目录的拥有者皆设为 users 群体的使用者 lamport :
chmod -R lamport:users *
-rw------- (600) -- 只有属主有读写权限。
-rw-r--r-- (644) -- 只有属主有读写权限;而属组用户和其他用户只有读权限。
-rwx------ (700) -- 只有属主有读、写、执行权限。
-rwxr-xr-x (755) -- 属主有读、写、执行权限;而属组用户和其他用户只有读、执行权限。
-rwx--x--x (711) -- 属主有读、写、执行权限;而属组用户和其他用户只有执行权限。
-rw-rw-rw- (666) -- 所有用户都有文件读、写权限。这种做法不可取。
-rwxrwxrwx (777) -- 所有用户都有读、写、执行权限。更不可取的做法。
以下是对目录的两个普通设定:
drwx------ (700) - 只有属主可在目录中读、写。
drwxr-xr-x (755) - 所有用户可读该目录,但只有属主才能改变目录中的内容
suid的代表数字是4,比如4755的结果是-rwsr-xr-x
sgid的代表数字是2,比如6755的结果是-rwsr-sr-x
sticky位代表数字是1,比如7755的结果是-rwsr-sr-t