美文网首页
Linux文件权限与命令

Linux文件权限与命令

作者: 人在码途 | 来源:发表于2017-01-18 11:05 被阅读49次

    一、Linux权限介绍

    在linux中的每一个文件或目录都包含有访问权限,这些访问权限决定了谁能访问和如何访问这些文件和目录。用户可以利用Linux系统提供的chmod命令来重新设定不同的访问权限。也可以利用chown命令来更改某个文件或目录的所有者。利用chgrp命令来更改某个文件或目录的用户组。

    可以通过以下三种方式限制方位权限:

    • 只用户自己访问:
    • 允许一个预先指定的用户组中的用户访问
    • 允许系统中的任何用户访问

    同时,用户能够控制一个文件或目录的访问程度,一个文件或目录可能有读、写以及执行权限;当创建一个文件时,系统会自动赋予文件的所有者读和写的权限,这样可以允许所有者能够显示文件内容和修改文件。文件所有者可以将这些权限改变为任何他想指定的权限。

    每一个用户都有它自身的读、写和执行权限。

    • 第一套权限控制访问自己的文件权限,即所有者权限。
    • 第二套权限控制用户组访问其中一个用户的文件的权限。
    • 第三套权限控制其他所有用户访问一个用户的文件的权限,这三套权限赋予用户不同类型(即所有者、用户组和其他用户)的读、写及执行权限就构成了一个有9种类型的权限组。

    有三种不同类型的用户可对文件或目录进行访问:文件所有者,同组用户、其他用户。

    所有者一般是文件的创建者。所有者可以允许同组用户有权访问文件,还可以将文件的访问权限赋予系统中的其他用户。在这种情况下,系统中每一位用户都能访问该用户拥有的文件或目录。

    查看文件权限:ls -l file

    bash-3.2# ls -l test.html 
    -rw-r--r--  1 tongkun  staff  208 12 26 21:18 test.html
    

    说明:

    • 横线代表空许可
    • r代表只读
    • w代表写
    • x代表可执行

    注意这里有10个位置,第一个字符制定文件类型。如果第一个字符是横线,表示一个非目录文件,如果是d,表示是一个目录。

    -rw-r--r-- 说明:

    test.html是一个普通文件,对属主有读写权限,对属同组用户有只读权限,对其他用户有只读权限。

    二、使用chmod的字母和数字改变文件或目录的访问权限

    • chmod命令用于改变文件活目录的访问权限
    • chmod有两种用法。一种是包含字母和操作符表达式的文字设定法;另一种是包含数字的数字设定法。

    1. 文字设定法

    chmod [who] [+ | - | =] [mode] 文件名

    命令中各选项的含义是:

    • u 表示用户(user),即文件和目录的所有者
    • g 表示同组用户(group),即与文件属主有相同id的所有用户
    • o 表示其他用户
    • a 表示所有用户,他是系统的默认值

    操作符:

    • + 添加某个权限
    • - 取消某个权限
    • = 赋予给定权限并取消其他所有权限(如果有的话)

    mode所表示的权限可用于下注字符的任意组合:

    • r 可读
    • w 可写
    • x 可执行
    • X 只有目标文件对某些用户是可执行的或该目标文件是目录时才追加x 属性。
    • s 在文件执行时把进程的属主或组ID置为该文件的文件属主。方式“u+s”设置文件的用户ID位,“g+s”设置组ID位。
    • t 保存程序的文本到交换设备上。
    • u 与文件属主拥有一样的权限。
    • g 与和文件属主同组的用户拥有一样的权限。
    • o 与其他用户拥有一样的权限。

    文件名:以空格分开的要改变权限的文件列表,支持通配符。

    在一个命令行中可给出多个权限方式,其间用逗号隔开。例如:chmod g+r,o+r example

    2. 数字设定法

    用数字表示的属性的含义:0表示没有权限,1表示可执行权限,2表示可写权限,4表示可读权限,然后将其相加。所以数字属性的格式应为3个从0到7的八进制数,其顺序是(u)(g)(o)。

    例如,如果想让某个文件的属主有“读/写”二种权限,需要把4(可读)+2(可写)=6(读/写)。

    数字设定法的一般形式为:

    chmod [mode] 文件名¼

    文件和目录的权限表示,是用rwx这三个字符来代表所有者、用户组和其他用户的权限。有时候,字符似乎过于麻烦,因此还有另外一种方法是以数字来表示权限,而且仅需三个数字。

    • r:对应数值4
    • w:对应数值2
    • x:对应数值1
    • -:对应数值0

    只是包rwx看成二进制数。有则1表示,无则0表示。所以 -rwx r-x r--则表示为111 101 100 十进制数为754

    自己 同组用户 其他用户
    可读 是 是 是
    可写 是 是
    可执行

    那么,我们先根据上表得到权限串为:rw-rw-r--,那么转换成二进制数就是110 110 100,再每三位转换成为一个十进制数,就得到664,因此我 们执行命令:

    例如,我们想让a.txt这个文件的权限为:

    自己 同组用户 其他用户
    可读 是 是 是
    可写 是 是
    可执行

    那么,我们先根据上表得到权限串为:rw-rw-r--,那么转换成二进制数就是110 110 100,再每三位转换成为一个十进制数,就得到664,因此我 们执行命令:

    chmod 644 a.txt
    

    如果一个文件的权限全部放开,则权限数字即为 777

    chmod 777 a.txt
    

    如果想一次修改某个目录下所有文件的权限,包括子目录中的文件权限也要修改,要使用参数-R表示启动递归处理。

    chomd -R 777 /Hexo
    

    则Hexo目录下所有文件对所有用户授予读写和执行的权限。

    三、是用chown更改文件的拥有者权限

    chown将指定文件的拥有者改为指定的用户或组,用户可以是用户名或者用户ID;组可以是组名或者组ID;文件是以空格分开的要改变权限的文件列表,支持通配符。系统管理员经常使用chown命令,在将文件拷贝到另一个用户的名录下之后,让用户拥有使用该文件的权限。

    命令说明

    1.命令格式:

    chown [选项]... [所有者][:[组]] 文件...

    2.命令功能:

    通过chown改变文件的拥有者和群组。在更改文件的所有者或所属群组时,可以使用用户名称和用户识别码设置。普通用户不能将自己的文件改变成其他的拥有者。其操作权限一般为管理员。

    3.命令参数:

    必要参数:

    • -c 显示更改的部分的信息
    • -f 忽略错误信息
    • -h 修复符号链接
    • -R 处理指定目录以及其子目录下的所有文件
    • -v 显示详细的处理信息
    • -deference 作用于符号链接的指向,而不是链接文件本身

    选择参数:

    • --reference=<目录或文件> 把指定的目录/文件作为参考,把操作的文件/目录设置成参考文件/目录相同拥有者和群组
    • --from=<当前用户:当前群组> 只有当前用户和群组跟指定的用户和群组相同时才进行改变
    • --help 显示帮助信息
    • --version 显示版本信息

    命令实例

    实例1. 改变拥有者和群组

    命令:chown tongkun:everyone Mysql日志分析.md
    说明:更改拥有者为tongkun, 群组为everyone群组

    实例2. 更改目录的拥有者和群组

    命令:chown -R tongkun:everyone dir
    说明:更改目录以及子目录子文件的拥有者和群组

    相关文章

      网友评论

          本文标题:Linux文件权限与命令

          本文链接:https://www.haomeiwen.com/subject/whgvbttx.html