zoukankan      html  css  js  c++  java
  • Linux中chmod命令

    1、chmod是linux中更改文件权限的命令,常用的有:

    (1) sudo chmod u+x

    (2) sudo chmod g+x

    (3) sudo chmod o+x

    其中的 u、g、o 分别代表的就是 user、group、others,"+"代表赋予权限,x (executable)代表可执行权。

    2、sudo chmod 777 代表什么:

    三位数字分别代表 user、group、others 的权限,可读(r)、可写(w)、可执行(x)的权限分别用数字 4、2、1 表示,数字7是权限 4、2、1 的和,777 即代表 user、group、others 均具有可读(r)、可写(w)、可执行(x)的权限,为最高权限。

    3、这是我写的一个简化篇,网上有另外一篇更详细的介绍,附地址如下:

    http://blog.csdn.net/linuxgroup/article/details/4247858

    为方便起见,直接转载过来一份,感谢原作者!

     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 标志更改匹配指定模式的每个目录和所有文件的文件方式位。请参阅示例 6

    当遇到符号链接并且链接指向目录时,更改该目录的文件方式位,但不进一步遍历目录。

    符号方式

    要以符号格式指定方式,必须指定三个标志集。

    注:不要使用空格分隔标志。

    第一个标志集指定对谁授权或对谁拒绝指定的许可权,如下所述:

    u

    文件所有者。

    g

    文件组固有的组和扩展 ACL 条目。

    o

    所有其它条目。

    a

    用户、组和所有其它条目。a 标志具有与一起指定 ugo 标志相同的效果。如果不指定这些标志,则缺省值为 a 标志,并应用文件创建掩码(umask )。

    第二个标志集指定是否要除去、应用或设置许可权:

    -

    除去指定的许可权。

    +

    应用指定的许可权。

    =

    清除选定的许可权字段并将其设置为指定的许可权。如果不指定 = 之后的许可权,chmod 命令从选定的字段除去所有许可权。

    第三个标志集指定要除去、应用或设置的许可权:

    r

    读许可权。

    w

    写许可权。

    x

    对于文件的执行许可权;对于目录的搜索许可权。

    X

    如果当前的(未修改的)方式位设置了至少一个用户、组或其它执行位,则执行文件的许可权。如果指定了 File 参数并且在当前的方式位中未设置任何执行位,则忽略 X 标志。

    搜索目录的许可权。

    s

    如果指定或隐含 u 标志,则设置执行时的用户标识许可权。如果指定或隐含 g 标志,则设置执行时的组标识许可权。

    t

    对于目录,它表示只有文件所有者可以链接或取消链接指定目录中的文件。对于文件,它设置 save-text 属性。

    数字或完全方式

    chmod 命令还允许您对该方式使用八进制表示法。数字方式是一个或多个以下值的摘要:

    4000

    设置执行时的用户标识。

    2000

    设置执行时的组标识。

    1000

    对于目录设置链接许可权或对于文件设置 save-text 属性。

    0400

    允许所有者读。

    0200

    允许所有者写。

    0100

    允许所有者执行或搜索。

    0040

    允许组读。

    0020

    允许组写。

    0010

    允许组执行或搜索。

    0004

    允许其他人读。

    0002

    允许其他人写。

    0001

    允许其他人执行或搜索。

    注:

    1. 用数字方式指定禁用任何扩展 ACL 。请参考《AIX 5L V5.2 系统用户指南:操作系统与设备》中的『访问控制列表 』以获取更多信息。

    2. 用符号更改组访问权限还影响扩展 ACL 条目。与文件的所有组相同的 ACL 中的组条目拒绝从方式除去的任何许可权。请参考『访问控制表 』以获取更多信息。

    3. 可以指定用逗号分开的多个符号方式。按照它们从左到右的出现顺序执行操作。

    4. 当从目录除去设置执行时的组标识许可权时,必须用符号指定该方式或使用 4 字符八进制,并且行距为零(例如 0755 )。

    安全性

    访问控制:此程序应该作为“可信计算基”中的正常用户程序安装。

    只有文件的所有者或 root 用户可以更改文件的方式。

    退出状态

    该命令返回以下出口值:

    0

    已成功执行完命令并已执行所有请求的更改。

    >0

    发生错误。

    示例

    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

    文件

    /usr/bin/chmod

    包含 chmod 命令。

  • 相关阅读:
    el-select下拉框选项太多导致卡顿,使用下拉框分页来解决
    vue+elementui前端添加数字千位分割
    Failed to check/redeclare auto-delete queue(s)
    周末啦,做几道面试题放松放松吧!
    idea快捷键
    解决flink运行过程中报错Could not allocate enough slots within timeout of 300000 ms to run the job. Please make sure that the cluster has enough resources.
    用.net平台实现websocket server
    MQTT实战3
    Oracle 查看当前用户下库里所有的表、存储过程、触发器、视图
    idea从svn拉取项目不识别svn
  • 原文地址:https://www.cnblogs.com/andrewlee0708/p/Linux_chmod.html
Copyright © 2011-2022 走看看