admin 管理员组

文章数量: 1184232


2023年12月21日发(作者:mac装系统win10详细教程)

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 只递归地降序目录,如同模式 指定。-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]

说 明 : linux/Unix 是多人多工作业系统,所有的档案皆有拥有者。利用 chown 可以将档案的拥有者加以改变。一般来说,这个指令只有是由系统管理者(root)所使用,一般使用者没有权限可以改变别人的档案拥有者,也没有权限可以自 己的档案拥有者改设为别人。只有系统管理者(root)才有这样的权限。

user : 新的档案拥有者的使用者 IDgroup : 新的档案拥有者的使用者群体(group)-c : 若该档案拥有者确实已经更改,才显示其更改动作-f : 若该档案拥有者无法被更改也不要显示错误讯息-h : 只对于连结(link)进行变更,而非该 link 真正指向的档案-v : 显示拥有者变更的详细资料-R : 对目前目录下的所有档案与子目录进行相同的拥有者变更(即以递回的方式逐个变更)--help : 显示辅助说明--version : 显示版本

范例 :将档案 的拥有者设为 users 群体的使用者 jessie :

chown jessie:users

将目前目录下的所有档案与子目录的拥有者皆设为 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


本文标签: 命令 文件 方式 目录