• 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 命令。

  • 相关阅读:
    tailf,tail -f,tail -F区别
    Java多线程知识总结(一)
    MyBatis使用总结
    mina学习总结
    好书推荐
    Hessian总结
    Spring总结
    SpringMVC总结
    判断两个IP是否处于同一子网(网段)
    Delphi Json之树遍历
  • 原文地址:https://www.cnblogs.com/andrewlee0708/p/Linux_chmod.html
Copyright © 2020-2023  润新知