zoukankan      html  css  js  c++  java
  • Linux之文件权限

    文件权限

    权限作用

    1.允许指定的用户进行文件访问

    2.允许创建用户组属于该组的成员可以访问

    3.允许系统中的任意用户可以进行访问

    权限说明

    对于文件

    r是只允许读取数据 例如:cat
    w只允许读取数据 例如:vim echo
    x允许执行 执行的命令 或者脚本

    对于目录

    r查看目录下的子目录或者文件 例如:ls
    w对文件夹创建或者删除新的文件或者目录 例如:mkdir touch mv rm cp
    x进入目录 例如:cd

    文件拥有者

    UGO:所属用户---所属组---其余用户

    所属用户

    属于创建该文件的用户 该用户对于该文件拥有一切权限 所有者可以允许其所属组的的其余用户访问所有者的文件

    所属组

    所属组是一组具有相同属性或者权限的逻辑集合 例如:我们想允许100个用户拥有修改a.txt这个文件的权限 可以逐个赋予改100个用户权限 但是显然用户数量过多修改繁琐 我们可以通过创建一个组 该组拥有修改a.txt的权限 在将这100个用户加入该组 于是该100个用户拥有修改a.txt这个文件的权限

    其余用户

    系统内其他的所有者用户就是other类

    常见文件权限组成

    rwx --- ---:

    文件所有者拥有读写执行的权限 所属组与其他成员无任何权限

    rwx r-- r--:

    文件所有者具有读写执行的权限 所属组与其余用户拥有读取的权限

    drwx--x—x

    目彔所有者具有读写不迚入目彔的权限,其他用户近能迚入该目彔,却无法读取任何数据

    drwx------:

    除了目彔所有者具有完整的权限之外,其他用户对该目彔完全没有任何权限。

    特点

    你以什么用户登录创建文件 则该用户会自动成为文件的所有者

    文件属主与属组修改

    chown

    改变文件或者目录的属主
    chown 用户 文件名 比如: chown admin a.txt 把文件的属主和属组改为 admin

    chown :组名 文件名 比如: chown :admin a.txt

    chown 用户名 :组名 文件名 比如:chown root root a.txt

    chgrp

    修改文件默认的默认属组

    修改权限

    chmod

    作用

    修改文件或者目录的权限

    u:对文件的所有者进行操作
    

    g:对用户所属组进行操作
    

    O:对于其余用户进行操作
    

    操作符

    +:对文件添加权限
    -:减少权限
    =:直接设定某个权限
    

    使用八进制操作权限

    作用

    通过数字进行修改权限

    表示方法

    r=4  w=2 x=1
    rw- 的值是多少 答: 4+2=6
    rwx r-x r-x 的值是多少 答: rwx=4+2+1=7 ; r-x=4+1=5 rwx r-x r-x=755
    

    文件的特殊权限

    SUID

    作用

    程序执行时候从程序的执行者拥有程序拥有者的权限

    限定

    其只能设置在二进制可执行的程序上面 对目录无效果

    SUID设置

    u+s 或者u=4
    

    临时权限

    SUID一般作用在可执行文件上 当执行文件的时候会临时拥有文件所有者的权限

    在上图中普通用户并没有对密码进行修改的权限 那么当用户进行修改的时候 如何修改成功的呢
    

    上图对用户SR进行密码修改
    

    SGID

    作用

    在设置了 SGID 权限的目彔下建立文件时,新创建的文件的所属组会继承上级目彔的权限

    限定

    可以给可执行的程序设置 也可以给目录设置

    [root@SR ~]mkdir test
    [root@SR ~]ll -d test
    drwxr-xr-x 2 root root 4096 Jan 24 20:14 test
    [root@SR ~] chmod g+s test
    [root@SR ~] !ll
    ll -d test
    drwxr-sr-x 2 root root 4096 Jan 24 20:14 test
    测试: sgid 效果
    [root@SR ~]chown :bin test/
    [root@SR ~] touch test/a.txt
    [root@SR ~] ll !$
    ll test/a.txt
    -rw-r--r-- 1 root bin 0 Jan 24 20:15 test/a.txt
    

    Stickybit

    作用

    目录下创建的文件 只有root 文件拥有者 目录所有者才能删除

    限定

    只能作用于目录

    例: 系统中的 tmp 目彔就是这样
    [root@SR ~]# ll -d /tmp/
    drwxrwxrwt. 11 root root 4096 Jan 24 19:41 /tmp/
    用法:
    chmod o+t /tmp/test
    

    文件扩展权限ACl

    作用

    可以单独为某个用户再次进行额外权限的添加

    例 2: 给目彔加扩展权限
    [root@SR ~]# mkdir /tmp/test
    #setfacl -m d:u:user1:rwx /tmp/test #d 默认在就是有这个权限
    例 3:给目彔下所有文件都加扩展权限
    [root@SR ~]# setfacl -R -m u:lee:rw- testdirectory/ #-R 一定要在-m 前面,表示
    目彔下所有文件
    [root@SR ~]# setfacl -x u:user1 /tmp/a.txt # 去掉单个权限
    [root@SR ~]# setfacl -b /tmp/a.txt # 去掉所有 acl 权限
    

    创建一个不允许被删除的文件

    创建一个不能被删除的文件

    [root@SR ~]# touch ./test/a.txt

    [root@SR ~]# chattr +i ./test/a.txt

    [root@SR ~]# rm -fr ./test/a.txt
    rm: 无法删除'./test/a.txt': 不允许的操作

    从 REHL6 开始,新增加文件系统扩展属性:
    命令: chattr
    参数: a 只能追加内容 ; i 丌能被修改
    +a: 只能追加内容 如: echo aaa >> hack.sh
    +i:即 Immutable,系统丌允许对这个文件迚行任何的修改。如果目彔具有这个属性,那举任何的
    迚程只能修改目彔之下的文件,丌允许建立和删除文件。
    注: immutable [ɪˈmju:təbl] 丌可改变的 ; Append [əˈpend] 追加
    -i :移除 i 参数。 -a :移除 a 参数
    解决:
    [root@SR ~]# lsattr hack.sh
    ----i----------- hack.sh
    [root@SR ~]# chattr -i hack.sh
    [root@SR ~]# echo aa >> hack.sh
    [root@SR ~]# lsattr hack.sh #查看扩展属性
    ---------------- hack.sh
    [root@SR ~]# chat
    chat chattr
    [root@SR ~]# chattr +a hack.sh
    [root@SR ~]# rm -rf hack.sh
    rm: 无法删除"hack.sh": 丌允许的操作
    [root@SR ~]# echo aaa >> hack.sh

  • 相关阅读:
    第二次:Ubuntu16.04 安装Docker
    第一次:从今开始玩Linux,Ubuntu16.04
    学习日常
    Vector和ArrayList的异同、Hashtable和HashMap的异同
    如何吃透Python的面向对象(OOP)
    Python基础(下篇)
    Python基础(中篇)
    Python基础(上篇)
    Pycharm安装
    Python的安装与配置
  • 原文地址:https://www.cnblogs.com/SR-Program/p/12770401.html
Copyright © 2011-2022 走看看