• 4.linux权限相关操作


    权限

    1.1 基本权限

    1.什么是权限,为什么要设置?

    在linux系统中,如果对应的用户没有相应的权限就不能做相应的一些操作。

    2.权限有哪些?

    权限对象有:属主(u)属组(g)其他人(o)
    基本权限类型有:
    读(read):r ---->4
    写(write):w ---->2
    执行: x(exec) ----->1
    

    3.案例

    一个文件基本信息
    -rw-r--r--  1 root root         0 Jan 16 04:37 a.txt
    解释:
    第一个-表示他是个文件
    往后3个为一段rw-表所有者权限有r读,w写。
    第二段r--表示用户所在属组的权限,r读。
    第三段r--表示其他人的权限,其他人就是不是文件的所有者又不在文件的所属组中。
    第一个root表示所有者是root
    第二个root表示所属组是root组
    

    4.如何修改

    chown:改变文件或目录的所有者以及所属组

    [root@linux-server ~]# chown user1.hr file1.txt  #修改属主、属组
    [root@linux-server ~]# chown user2  file1.txt   #修改属主
    [root@linux-server ~]# chown .it file1.txt    #只改属组
    [root@linux-server ~]# chown -R user3.hr dir1 #递归修改针对目录,连同里面的文件权限一起修改
    

    chmod:为文件或目录设置访问权限

    [root@linux-server ~]# chmod u+x file1.txt   #所属组增加执行权限
    [root@linux-server ~]# chmod a=rwx file1.txt #所有人等于读写执行权限
    [root@linux-server ~]# chmod a=- file1.txt   #所有人都没有权限
    [root@linux-server ~]# chmod ug=rw,o=r file1.txt #属主属组等于读写,其他人只读
    
    使用数字的方式 r=4 w=2 x=1
    #所有者拥有读写,所属组拥有读,其让人也是只读
    [root@linux-server ~]# chmod 644 file1.txt 
    [root@linux-server ~]# chmod 521 file1.txt
    

    1.2 用户掩码

    1.用户掩码是啥,有什么作用?

    用户掩码(umask)就是:控制用户创建文件或目录的默认权限

    目录在创建之前默认的权限是777,文件是666
    用默认权限减去创建用户的umask码 得出创建后的权限
    root用户默认umask码是 0022
    普通用户默认umask码是  0002
    查看umask
    [root@linux-server ~]# umask
    修改umask
    [root@linux-server ~]# umask 0111
    通过计算得出root用户创建目录和文件的权限为
    

    1.3 权限对文件和目录的意义

    对文件:
    r == cat
    w == vi、vim
    x == bash /dir/file
    对目录:
    r == ls 
    w == touch、rm
    x == cd
    
    总结:
    对目录有w权限,可以在目录中创建新文件,可以删除目录中的文件(跟文件权限无关)
    注意事项:
    文件: x 权限小心给予
    目录: w 权限小心给予
    

    1.4 高级权限

    1.产生的问题?

    [root@linux-server ~]# ll /root/file.txt
    -rw-r--r--. 1 root root 0 Nov 1 15:30 /root/file.txt
    [root@linux-server ~]# su - alice
    [alice@linux-server ~]$ cat /root/file.txt
    cat: /root/file.txt: Permission denied
    
    为什么会cat不了file.txt ?
    答:alice虽然有查看的权限,但是没有执行的权限就进不了root目录。
    如果要让alice能查看到文件,那就要去放开root目录的权限,太麻烦了,因此这时候就要用到高级权限。
    

    2.高级权限的类型

    suid ==== 4 提权 (对命令提权 提权后所有人可用提权命令)(比较危险)
    sgid ==== 2 组权限继承 (只能对目录设置,在此组下创建的目录和文件,继承,提权组的属主)
    sticky == 1 (t权限)  权限控制(在此权限下只有root用户和自己能删除自己创建的文件)
    

    3.设置特殊权限

    添加权限:
    chmod u+s cat        加命令          提权
    chmod g+s /opt       加目录路径       继承
    chmod o+t /opt       目录路径         仅root和自己可删除
    
    数字添加权限方式:
    chmod 4777 file
    chmod 2770 dir
    chmod 1770 dir
    
    取消权限:
    chmod u-s cat        加命令          提权
    chmod g-s /opt       加目录路径       继承
    chmod o-t /opt       目录路径         仅root和自己可删除
    

    1.5 两种给普通用户提权手段

    sudo: 有针对性,例如针对某个用户以能够以root的身份执行某些命令。

    suid: 基本针对所有用户,任何用户在执行有suid权限的程序时(例如/usr/bin/rm),都是以 root 身份在执行。

    1.放开所有命令使用权

    配置解释:
    root表示用户名
    第一个 ALL=(ALL) 指示允许从任何主机登陆执行任何命令。
    第二个 ALL 执行的时候不需要输入密码执行所有命令。
    
    [root@linux-server ~]# visudo #打开配置文件
    90 ##
    91 ## Allow root to run any commands anywhere
    92 root ALL=(ALL) ALL
    93 jack ALL=(ALL) NOPASSWD: ALL #添加内容
    94 ## Allows members of the 'sys' group to run networking, software
    

    2.放开个别命令使用权

    [root@linux-server ~]# visudo
    91 ## Allow root to run any commands anywhere
    92 root ALL=(ALL) ALL
    93 jack ALL=(ALL) NOPASSWD:ALL
    94 alice ALL=(ALL) NOPASSWD:/usr/bin/mkdir, /usr/bin/rm,
    /usr/bin/touch
    95
    96 ## Allows members of the 'sys' group to run networking, software
    

    1.6 隐藏权限

    文件权限管理之: 隐藏权限防止root误删除

    查看文件隐藏权限
    lsattr 文件名
    
    查看目录隐藏权限
    lsattr -d 目录名
    
    设置权限
    chattr +i file #只允许查看
    chattr +a file #不允许修改,只允许追加,和查看
    chattr +A file #告诉系统不要修改对这个文件的最后访问时间
    
  • 相关阅读:
    iOS开发-UIScrollView原理
    关于tableView点击状态栏列表回到顶部的说明
    实用技术之bugly
    KVO你所不知道的"坑"
    iOS iPhone SDK 包含哪些东西?
    NSTime的全面认识
    四 数据结构与算法总结(一)
    三 数据结构 --数和二叉树
    二 线性表
    一 数据结构的概念,时间复杂度和空间复杂度
  • 原文地址:https://www.cnblogs.com/eba001/p/14286211.html
Copyright © 2020-2023  润新知