学习啦>学习电脑>操作系统>Linux教程>

Linux系统中chmod命令的用法详解

时间: 佳洲1085 分享

  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

3637107