zoukankan      html  css  js  c++  java
  • 特殊权限

    特殊权限SUID

    1.让普通用户对可执行的二进制文件,临时拥有二进制文件的所属主权限。
    2.如果设置的二进制文件没有执行权限,那么suid的权限显示就是大S。
    3.特殊权限suid仅对二进制可执行程序有效,其他文件或目录则无效。

    suid授权方法4000 权限字符s(S),用户位置上的x位上设置
    # chmod 4755 passwd
    # chmod  u+s  passwd
    
    

    特殊权限SGID

    1.针对用户组权限位修改,用户创建的目录或文件所属组和该目录的所属组一致。
    2.当某个目录设置了sgid后,在该目录中新建的文件不在是创建该文件的默认所属组
    3.使用sgid可以使得多个用户之间共享一个目录的所有文件变得简单。

    sgid授权方法: 2000权限字符s(S),取决于属组位置上的x
    # chmod 2755  directory 
    # chmod  g+s  directory
    
    
    #1.建立测试目录
    [root@bgx ~]# cd /tmp/ && mkdir dtest
    
    #2.给测试目录赋予SetGID权限,检查SetGID是否生效
    [root@bgx tmp]# chmod g+s dtest/ && ll -d dtest/
    drwxr-sr-x 2 root root 6 Apr 13 05:21 dtest/
    
    #3.给测试目录赋予777权限,让普通用户可以写
    [root@bgx tmp]# chmod 777 dtest/
    
    #4.切换成普通用户lamp,并进入该目录
    [root@bgx tmp]# su - lamp
    [lamp@bgx ~]$ cd /tmp/dtest/
    
    #5.普通用户创建测试文件,检查文件的信息
    [lamp@bgx dtest]$ touch lamp_test
    [lamp@bgx dtest]$ ll
    -rw-rw-r-- 1 lamp root 0 Apr 13 05:21 lamp_test
    

    特殊权限SBIT

    1.让多个用户都具有写权限的目录,并让每个用户只能删自己的文件。
    2.特殊sticky目录表现在others的x位,用小t表示,如果没有执行权限是T
    3.一个目录即使它的权限为”777”如果是设置了粘滞位,除了目录的属主和”root”用户有权限删除,除此之外其他用户都不允许删除该目录。

    sticky授权方法,1000 权限字符t(T),其他用户位的x位上设置
    # chmod 1755  /tmp
    # chmod o+t /tmp
    

    权限属性chattr

    chatrr 只有 root 用户可以使用,用来修改文件系统的权限属性,建立凌驾于 rwx 基础权限之上的授权。
    chatrr 命令格式:[root@bgx ~]# chattr [+-=] [选项] 文件或目录名

    #选项: + 增加权限 -减少权限 =等于某个权限
    # a:让文件或目录仅可追加内容
    # i:不得任意更动文件或目录
    
    #1.创建文件并设置属性
    [root@lqz ~]# touch file_a file_i
    [root@lqz ~]# lsattr file_a file_i
    ---------------- file_a
    ---------------- file_i
    
    #2.使用chattr设置属性,lsattr查看权限限制
    [root@lqz ~]# chattr +a file_a
    [root@lqz ~]# chattr +i file_i
    [root@lqz ~]# lsattr file_a file_i
    -----a---------- file_a
    ----i----------- file_i
    
    #3.a权限,无法写入和删除文件,但可以追加数据,适合/etc/passwd这样的文件
    [root@lqz ~]# echo "aa" > file_a
    bash: file_a: Operation not permitted
    [root@lqz ~]# rm -f file_a
    rm: cannot remove ‘file_a’: Operation not permitted
    [root@lqz ~]# echo "aa" >> file_a
    
    #5.i权限, 无法写入,无法删除,适合不需要更改的重要文件加锁
    [root@lqz ~]# echo "i" > file_i
    bash: file_i: Permission denied
    [root@lqz ~]# echo "i" >> file_i
    bash: file_i: Permission denied
    [root@lqz ~]# rm -f  file_i
    rm: cannot remove ‘file_i’: Operation not permitted
    
    #6.解除限制
    [root@tianyun ~]# chattr -a file100 
    [root@tianyun ~]# chattr -i file200
    

    进程掩码umask

    当我们登录系统之后创建一个文件总是有一个默认权限的,比如: 目录755、文件644、那么这个权限是怎么来的呢?这就是umask干的事情。umask设置了用户创建文件的默认权限。

    系统默认umask为022,那么当我们创建一个目录时,正常情况下目录的权限应该是777,但umask表示要减去的值,所以新目录文件的权限应该是777 - 022 =755。至于文件的权限也依次类推666 - 022 =644。

    umask涉及到的相关文件/etc/bashrc /etc/profile ~/.bashrc ~/.bash_profile
    shell (vim,touch) –umask–> 会影响创建的新文件或目录权限
    vsftpd服务如果修改–umask–> 会影响ftp服务中新创建文件或创建目录权限
    useradd如果修改umask–> 会影响用户HOME家目录权限

    #1.假设umask值为:022(所有位为偶数)
    #文件的起始权限值
    6 6 6  -  0 2 2  = 6 4 4 
    
    #2.假设umask值为:045(其他用户组位为奇数)
    #计算出来的权限。由于umask的最后一位数字是5,所以,在其他用户组位再加1。
    6 6 6  -   0 4 5 = 6 2 1
    
    #3.默认目录权限计算方法
    7 7 7  -  0 2 2 = 7 5 5
     
    #umask所有位全为偶数时
    # umask 044
    # mkdir d044   目录权限为733
    # touch f044   文件权限为622
    
    #umask部分位为奇数时
    # umask 023
    # mkdir d023   目录权限为754
    # touch f023   文件权限为644
    
    #umask值的所有位为奇数时
    # umask 035
    # mkdir d035   目录权限为742
    # touch f035   文件权限为642
    

    在 shell 进程中创建文件

    #查看当前用户的umask权限
    [root@lqz ~]# umask
    0022
    [root@lqz ~]# touch file0022
    [root@lqz ~]# mkdir dir0022
    [root@lqz ~]# ll -d file0022  dir0022/
    drwxr-xr-x 2 root root 6 Jan 24 09:02 dir0022/
    -rw-r--r-- 1 root root 0 Jan 24 09:02 file0022
    
    

    修改 shell umask 值(临时生效)

    [root@lqz ~]# umask 000
    [root@lqz ~]# mkdir dir000
    [root@lqz ~]# touch file000
    [root@lqz ~]# ll -d dir000 file000
    drwxrwxrwx 2 root root 6 Jan 24 09:04 dir000
    -rw-rw-rw- 1 root root 0 Jan 24 09:04 file000
    
    

    通过 umask 决定新建用户 HOME 目录的权限

    [root@lqz ~]# vim /etc/login.defs
    UMASK 077
    [root@lqz ~]# useradd dba
    [root@lqz ~]# ll -d /home/dba/
    drwx------. 4 dba dba 4096 3 月 11 19:50 /home/dba/
    
    [root@tianyun ~]# vim /etc/login.defs
    UMASK 000
    [root@lqz ~]# useradd sa
    [root@lqz ~]# ll -d /home/sa/
    drwxrwxrwx. 4 sa sa 4096 3 月 11 19:53 /home/sa/
    
  • 相关阅读:
    echarts图形的位置布局如何调整
    IDEA在写springboot项目的时候遇见的问题:Caused by: java.lang.NoClassDefFoundError: com/fasterxml/classmate/TypeResol
    【学习总结】linux命令:ps -ef | grep xxxserver | grep -v grep|wc -l
    linux中管道符“|”的作用 find的作用
    linux系统中的管道“|”命令的作用
    JDBC管理事务
    SQL注入的问题&使用PreparedStatement对象防止SQL注入
    JDBC对象详解DriverManager&Connection&Statement
    MySQL安装&使用DataGrip连接数据库
    红黑树(R-B树,对称二叉B树)
  • 原文地址:https://www.cnblogs.com/chenwenyin/p/13544617.html
Copyright © 2011-2022 走看看