• Linux目录与文件的权限


    零、Linux中的权限为什么重要?

      权限直接关系数据安全!

    一、用户基础概念:

    1. 所有者(owner):拥有这个文件的用户。一般拥有目录或文件的所有权限。
    2. 用户组(group):几个用户组成一个用户组,一般来说组内用户同时具有某些权限。
    3. 其他人(others):相对于owner和group的其他人。一般比前两者少某些权限。

    二、目录与文件的权限的意义:

    1. 文件是实际包含数据的,一般文本文件、数据库文件、二进制可执行文件等,因此权限对于文件来说,意义如下:
      1. r(read):可读取此文件的实际内容,例如读取文本文件hello.txt里的hello,world!
      2. w(write):可以编辑、新增或是修改文件的内容(注:不包含删除该文件本身的权限
      3. x(eXecute):该文件具有被系统执行的权限(注:Linux下,文件能否被执行,不像windows下看文件扩展名,而是由文件是否具有x权限来决定的
    2. 目录主要的内容是记录文件名列表。权限对于目录来说,意义如下:
      1. r(read contents in directory):表示具有读取目录结构列表的权限,当具有一个目录的r权限时,就可以使用ls将其打印出来
      2. w(modify contents of directory):这个可写入权限对于目录来说很强大,它代表者你可以:
        1.   新建新的文件与目录
        2.   删除已经存在的文件与目录(且不论该文件的权限如何)
        3.   将已存在的文件或目录重命名
        4.   转移该目录内的文件、目录位置。
        5.  总之、目录的w权限与该目录下的文件名变动有直接关系。
      3. x(access directory):目录x代表用户是否能进入该目录成为工作目录,例如我具有/data的x权限,那么我可以cd /data,反之则不行。

    例如:查看/data下的test.txt文件的详细信息可以看到:

    [root@oldboy2 /]# ls -l /data/test.txt
    -rw-r--r--. 1 oldboy users 296 Apr 29 11:15 /data/test.txt
    

      打印的结果中:

    1. 第一个字符 [-] :表示此文件为普通文件
        • 若是[d]则是目录
        • 若是[-]则是文件
        • 若是[l]则是连接文件(linkfile)
        • 若是[b]则表示设备文件里面可供储存的接口设备
        • 若是[c]则表示设备文件里面的串行端口设备,例如键盘、鼠标(一次性读取设备)

      2、后面的[rw-r--r--]字符:表示此文件的权限信息,三个一组。

    • 第一组[rw-]:表示所有者的权限为r、w,可读可写。
    • 第二组[r--]:表示同用户组的权限为r,只能读。
    • 第三组[r--]:表示其他非本用户组的权限为r,只能读。

    三、Linux存放用户身份和用户组记录的文件。

    /etc/passwd                     #默认情况下,所有系统上的账号与一般身份用户以及root的信息都记录在这个文件里
    /etc/shadow                     #记录个人的密码
    /etc/group                      #记录所有的用户组名称
    #这三个文件是Linux里账号、密码和用户组信息的集中地。不可随意删除。

    四、更改文件用户组、所有者、权限的命令。(注:以下操作都在root下进行)

    1. 改变文件用户组chgrp(change group)
      chgrp users  /root/install.log                            #要改变的组名必须在/etc/group下存在
                                        #将install.log文件用户组改为users
    2. 改变文件所有者chown(change owner)
      chown xiaoming /data/test.txt                             #目标用户必须在/etc/passwd下存在
                                        #将test.txt文件的所有者为xiaoming
    3. 改变文件权限chmon
      1. 方法一,Linux中每种权限对应着一个分数,对应表如下
        r(read)                    ==    4              
        w(write)                   ==    2                 
        x(executable)              ==    1

     更改文件的权限就把需要的权限分数相加后放在对应的owner、group、others位置上。如下

    chmod  640   /data/test.txt                                         #将/test.txt权限更改为-rw-r-----
                                         #6==4+2 对应rw-;4对应r--;0对应---。只有owner可读写,group可读,others无任何权限)

         2.方法二,前面说过user(也就是owner)、group、others三种身份,在Linux中用u,g,o代表这三种身份的权限。如下: 

            u                 +(加入某个权限)                    r
            g                 -(去除某个权限)                   w
            o                 =(设置某个权限)                   x
            a(all)

          实践:例如要设置一个文件的权限为-rwxr-xr-x,也就是user具有可读、可写和可执行权限,group与others(g/o)具有可读与可执行的权限。代码如下:

    [root@oldboy2 /]# chmod u=rwx,go=rx /data/test.txt
    [root@oldboy2 /]# ls -l /data/test.txt                        #查看权限
    -rwxr-xr-x. 1 oldboy users 296 Apr 29 11:15 /data/test.txt            

    参考:1、鸟哥的Linux私房菜

       2、https://linux.cn/

  • 相关阅读:
    MySQL具体解释(19)----------海量数据分页查询优化
    初试 Windows XP Embedded 系统开发1
    四元数(Quaternion)和旋转
    Qt动画效果的实现,QPropertyAnimation
    <QtEndian>
    QString,QByteArray和QBitArray之间的转换
    memmove和memcpy
    QStyle
    QStyle 新风格的实现
    实时操作系统
  • 原文地址:https://www.cnblogs.com/xaomng/p/6820268.html
Copyright © 2020-2023  润新知