• Linux 命令


    文件的模式

    当使用 ls -l 命令查看目录内容时

    [huey@huey-K42JE cmdline]$ ls -l /etc/passwd
    -rw-r--r-- 1 root root 1917 Jul  2 15:01 /etc/passwd

    第一列字段是文件模式。第一个字符表示文件类型,这里 "-" 表示该文件是个普通文件。后面的 9 个字符表示文件的访问权限,分为读权限、写权限和执行权限,又分别针对三种对象:所有者、同组用户和其他用户。这里 "-rw-r--r--" 表示,文件的所有者拥有读写权限,而同组用户和其他用户只用于读权限。

    文件的类型

     属性  文件类型
    -  普通文件
    d  目录文件
    l  符号链接
    c  字符设备文件。该文件类型表示以字节流形式处理数据的设备,如终端或调制解调器。
    b  块设备文件。该文件类型表示以数据块方式处理数据的设备,如硬盘驱动或光盘驱动。

    权限属性

    属性 文件 目录
    r 允许打开和读取文件。 允许列出目录下的内容。
    w 允许写入或截短文件,但该权限不允许重命名或删除文件。是否能重命名和删除文件由目录权限决定。 如果也设置了执行权限,那么目录中的文件允许被创建、被删除以及被重命名。
    x 允许吧文件当作程序一样来执行。用脚本语言写的程序必须被设置为可读,以便能被执行。 允许进入目录下,例如 cd directory。

    八进制数字表示法

     八进制   二进制   文件模式 
    0 000 ---
    1 001 --x
    2 010 -w-
    3 011 -wx
    4 100 r--
    5 101 r-x
    6 110 rw-
    7 111 rwx

    符号表示法

     符号  含义
    u  user 的缩写,表示文件或目录的所有者 
    g  group 的缩写,表示文件所属的群组
    o  othes 的缩写,表示其他所有用户
    a  all 的缩写,是 u、g 和 o 三者的组合

    如果没有指定字符,则假定使用 all。操作符 "+" 表示添加一种权限,"-" 表示删除一种权限,"=" 表示只有指定的权限可用,其他所有的权限都被删除。 

    命令格式

    chmod [OPTION]... MODE[,MODE]... FILE...
    chmod [OPTION]... OCTAL-MODE FILE...
    chmod [OPTION]... --reference=RFILE FILE...

    命令参数

    -c, --changes
      类似 -v 选项,但只在文件模式发生改变时才显示诊断信息。

    --preserve-root
      禁止对根目录进行递归操作。

    -f, --silent, --quiet
      去除大部份的错误信息。

    -v, --verbose
      处理每个文件时,显示诊断信息。

    --reference=RFILE
      使用 RFILE 文件的模式,而非自行指定权限模式。

    -R, --recursive
      以递归方式更改文件和目录的模式。

    --help
      显示帮助信息。

    --version
      显示版本信息。

    实例

    a) 将 hello.sh 的模式更改为 744(rwxr--r--)。

    [huey@huey-K42JE cmdline]$ ls -l hello.sh 
    -rw-rw-r-- 1 ucm ucm 0 Oct  3 17:00 hello.sh
    [huey@huey-K42JE cmdline]$ chmod 744 hello.sh 
    [huey@huey-K42JE cmdline]$ ls -l hello.sh 
    -rwxr--r-- 1 ucm ucm 0 Oct  3 17:00 hello.sh

    b) 为 hello.sh 所属群组的用户添加可执行权限。

    [huey@huey-K42JE cmdline]$ ls -l hello.sh 
    -rwxr--r-- 1 ucm ucm 0 Oct  3 17:00 hello.sh
    [huey@huey-K42JE cmdline]$ chmod g+x hello.sh 
    [huey@huey-K42JE cmdline]$ ls -l hello.sh 
    -rwxr-xr-- 1 ucm ucm 0 Oct  3 17:00 hello.sh

    c) 删除其他用户对 hello.sh 的读权限。

    [huey@huey-K42JE cmdline]$ ls -l hello.sh 
    -rwxr-xr-- 1 ucm ucm 0 Oct  3 17:00 hello.sh
    [huey@huey-K42JE cmdline]$ chmod o-r hello.sh 
    [huey@huey-K42JE cmdline]$ ls -l hello.sh 
    -rwxr-x--- 1 ucm ucm 0 Oct  3 17:00 hello.sh

    d) 将 hello.sh 所有者权限设置为 rw-,同时删除所属群组用户的可执行权限和为其他用户添加读权限。

    [huey@huey-K42JE cmdline]$ ls -l hello.sh 
    -rwxr-x--- 1 ucm ucm 0 Oct  3 17:00 hello.sh
    [huey@huey-K42JE cmdline]$ chmod u=rw,g-x,o+r hello.sh 
    [huey@huey-K42JE cmdline]$ ls -l hello.sh 
    -rw-r--r-- 1 ucm ucm 0 Oct  3 17:00 hello.sh
  • 相关阅读:
    写了这么久前端,你知道浏览器原理吗?
    史上最全的web前端开发程序员学习清单!
    常见前端面试题及答案
    “下辈子再也不当程序员了,我被黑够了”
    什么是web前端,全栈工程师就业前景怎么样?
    要嫁就嫁程序员,钱多话少死得早!
    想转行做web前端工程师,必学这6大技能
    测试用例设计总结
    python读取一个英文文件,并记录每个单词出现的次数,降序输出
    python读取一个文件的每一行判断是否为素数,并把结果写到另一个文件中
  • 原文地址:https://www.cnblogs.com/huey/p/4853518.html
Copyright © 2020-2023  润新知