zoukankan      html  css  js  c++  java
  • 文件安全与权限 笔记

    文件安全与权限

    文中所有代码均已在centos7.7环境中测试

    文件

    对创建的文件,系统会保存文件的全部信息,包括

    • 文件的位置
    • 文件类型
    • 文件长度
    • 文件的拥有用户与可访问的用户
    • i节点
    • 文件的修改位置
    • 文件的权限位

    使用 ls -l 去查看文件的属性:

    total 60
    lrwxrwxrwx.  1 root root     7 Apr 26 15:48 bin -> usr/bin
    dr-xr-xr-x.  5 root root  4096 Apr 26 16:01 boot
    drwxr-xr-x  19 root root  2960 Oct  9 10:52 dev
    drwxr-xr-x. 76 root root  4096 Oct  9 10:52 etc
    drwxr-xr-x.  2 root root  4096 Apr 11  2018 home
    lrwxrwxrwx.  1 root root     7 Apr 26 15:48 lib -> usr/lib
    lrwxrwxrwx.  1 root root     9 Apr 26 15:48 lib64 -> usr/lib64
    drwx------.  2 root root 16384 Apr 26 15:48 lost+found
    drwxr-xr-x.  2 root root  4096 Apr 11  2018 media
    drwxr-xr-x.  2 root root  4096 Apr 11  2018 mnt
    drwxr-xr-x.  2 root root  4096 Apr 11  2018 opt
    dr-xr-xr-x  82 root root     0 Oct  9 10:52 proc
    dr-xr-x---.  4 root root  4096 Apr 26 16:02 root
    drwxr-xr-x  24 root root   640 Oct  9 10:52 run
    lrwxrwxrwx.  1 root root     8 Apr 26 15:48 sbin -> usr/sbin
    drwxr-xr-x.  2 root root  4096 Apr 11  2018 srv
    dr-xr-xr-x  13 root root     0 Oct  9  2020 sys
    drwxrwxrwt.  9 root root  4096 Oct  9 10:53 tmp
    drwxr-xr-x. 13 root root  4096 Apr 26 15:48 usr
    drwxr-xr-x. 19 root root  4096 Apr 26 07:54 var
    
    • total :代表所有文件占的空间

    • 第一列(例如dr-xr-xr-x) : 文件类型(参照下一节)及__文件的权限位__,除去第一位的字符,后面的9位是9个权限位,设定用户对文件的访问权限,后面9位分为三组:

      1. 前三位:文件属主权限
      2. 中间三位:同组用户权限
      3. 后三位:其他用户权限

      - 代表相应的权限被禁止

    • 第二列:代表文件___硬链接___的数目

    • 第三列:文件的__属主__

    • 第四列:文件的属主所在的缺省组

    • 第五列:用字节表示的文件长度

    • 第六列:文件的更新时间

    • 第七列:文件名

    文件类型

    ls -l列出的第一列第一位代表文件类型:

    • d:目录
    • l:符号连接
    • s:套接字文件
    • b:块设备文件
    • c:字符设备文件
    • p:命名管道文件
    • - :普通文件,即不属于以上文件的文件

    权限

    创建一个文件 :touch <filename>

    这里键入命令 touch myfile,然后键入命令 ls -l

    total 0
    -rw-r--r-- 1 root root 0 Oct  9 11:19 myfile
    

    根据之前说的,那么 -rw-r--r--则定义了:

    1. 这是一个普通文件
    2. rw-代表了文件属主拥有的权限
    3. r--代表了文件属主缺省组的权限
    4. r--代表了其他用户的权限

    每一个组的三个权限位:

    • r:读权限
    • w:写权限
    • x:执行该脚本或程序的权限

    改变权限位(使用chmod命令)

    chmod命令分为两种格式:

    符号模式

    格式为:chmod [who] operator [permission] filename

    who的含义

    u 文件属主权限

    g 同组用户权限

    o 其他用户权限

    a 所有用户(文件属主、同组用户及其他用户)。

    operator的含义:

    + 增加权限

    - 减少权限

    = 设定权限

    permission的含义

    r 读权限

    w 写权限

    x 执行权限

    s 文件属主和组 set-ID

    t 粘性位(通常对目录来说,这个目录下的文件只有属主才能删除,即使同组用户有相等权限。对文件来说,会被放在虚拟存储进行执行)

    l 给文件加锁,使其他用户无法访问

    u,g,o 针对文件属主、同组用户及其他用户的操作

    使用举例

    myfile初始权限

    -rw-r--r-- 1 root root 0 Oct  9 11:19 myfile
    

    执行 chmod u+x myfile chmod o-w myfile

    权限变为

    -rwxr--r-- 1 root root 0 Oct  9 11:19 myfile
    

    绝对模式

    命令形式为

    chmod [mode] file

    mode是一个八进制数

    在绝对模式中,每一个权限位用一个八进制数代表,如下表

    八进制数 含义
    0400 文件属主可读
    0200 文件属主可写
    0100 文件属主可执行
    0040 同组用户可读
    0020 同组用户可写
    0010 同组用户可执行
    0004 其他用户可读
    0002 其他用户可写
    0001 其他用户可执行

    设定权限时,根据表中各个要设定的权限加起来就可以得到相应的权限表示

    比如 777 就是所有权限

    可以通过 chmod -R 去递归的设置目录树的权限

    目录权限

    目录的权限值和文件有所不同

    r:可以列出该目录中的文件

    w:可以在目录下创建或者删除文件

    x:可以搜索或进入该目录

    如果我对目录用户设置--x,那么我无法列出目录中的文件,但是我只要知道路径和文件名,仍然可以执行里面的文件。

    suid/guid

    这个权限比较特殊,系统提供商可能会不允许实现这一位或忽略这一位。

    这个权限会导致euid/egid 被 suid/guid覆盖,从而使任何进程都将拥有程序属主的权限

    这个权限可以通过符号方式设置,或者设置权限数字的前面加上一个4设置suid,加上2设置guid,6设置两个

    chown && chgrp

    把文件的所有权交给另一个/etc/passwd文件中存在的合法用户

    chown

    chown命令的一般形式为:

    chown -R -h owner file
    

    -h指不改变该链接指向的目标文件

    -R意味着对子目录下的文件执行同样的操作

    例子:myfile的权限从bin转给了root

    [root@iZ2ze5p0lt0ld1jussmap7Z ~]# ls -l
    total 0
    -rwxr--r-- 1 bin root 0 Oct  9 11:19 myfile
    [root@iZ2ze5p0lt0ld1jussmap7Z ~]# chown root myfile
    [root@iZ2ze5p0lt0ld1jussmap7Z ~]# ls -l
    total 0
    -rwxr--r-- 1 root root 0 Oct  9 11:19 myfile
    

    chrgp

    同理,是转移用户组,命令只是把chown换为chrgp,不再测试

    找出组的命令

    1. groups 找出当前用户的属于组
    2. id 查询uid,gid,groups
    3. groups 找出这个username 用户所在组

    缺省值

    umask:每个用户的unmask确定了创建文件的缺省权限,防止非同组用户对你有不希望的权限

    符号链接(软链接)

    ln [-s] source_path target_path

    例子:创建myfile的符号链接

    [root@iZ2ze5p0lt0ld1jussmap7Z ~]# ls
    myfile
    [root@iZ2ze5p0lt0ld1jussmap7Z ~]# ln -s myfile temp
    [root@iZ2ze5p0lt0ld1jussmap7Z ~]# ls -l
    total 0
    -rwxr--r-- 1 root root 0 Oct  9 11:19 myfile
    lrwxrwxrwx 1 root root 6 Oct 12 17:37 temp -> myfile
    
    

    其实他就是一种指向文件的指针

    还有一种连接是硬链接,暂时不表

    链接目录权限会是777 但是实际权限并未改变

    %1
  • 相关阅读:
    机器学习之——正规方程法
    机器学习之——学习率
    机器学习之梯度下降法
    机器学习之线性回归算法
    集体智慧编程学习笔记——第一讲
    机器学习之归一化和标准化总结
    推荐系统实战-学习笔记第一章
    洛谷P1396 营救 题解
    洛谷P3905 道路重建
    洛谷P2384 最短路 题解
  • 原文地址:https://www.cnblogs.com/JethroYu/p/13804232.html
Copyright © 2011-2022 走看看