zoukankan      html  css  js  c++  java
  • Linux学习之十五-Linux文件特殊权限和附加权限

    Linux文件特殊权限和附加权限

    1、特殊权限suid

    范围:只能针对二进制命令文件

    作用:让普通用户拥有二进制命令文件所有者的权限

    举例1:普通用户使用passwd命令修改密码

    cat /etc/shadow 存放密码的文件,用sha512加密方式加密

    echo 123456|passwd --stdin a 非交互式设置密码

    [root@localhost ~]# ls -l /usr/bin/passwd

    -rwsr-xr-x. 1 root root 30768 Nov 24 2015 /usr/bin/passwd

    [root@localhost ~]# ll /etc/shadow

    ---------- 1 root root 977 Apr 3 14:11 /etc/shadow

    可见,passwd具有s权限,具有root用户权限,才能修改密码,普通用户具有执行权限但不一定拥有以root身份执行时的权限,添加s权限后就具有了root用户的执行权限

    举例2:netstat命令通过修改s权限可以使普通用户具有root身份

    在root用户下使用netstat命令

    [root@localhost ~]# netstat -lntup

    Active Internet connections (only servers)

    Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name

    tcp 0 0 0.0.0.0:52113 0.0.0.0:* LISTEN 1186/sshd

    tcp 0 0 :::52113 :::* LISTEN 1186/sshd

    udp 0 0 0.0.0.0:68 0.0.0.0:* 1109/dhclient

    在普通用户下使用netstat命令

    [test@localhost ~]$ netstat -lntup

    (No info could be read for "-p": geteuid()=502 but you should be root.)

    Active Internet connections (only servers)

    Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name

    tcp 0 0 0.0.0.0:52113 0.0.0.0:* LISTEN -

    tcp 0 0 :::52113 :::* LISTEN -

    udp 0 0 0.0.0.0:68 0.0.0.0:* -

    在root用户下查看netstat命令的权限

    [root@localhost ~]# ll /bin/netstat

    -rwxr-xr-x 1 root root 128216 Mar 22 2017 /bin/netstat

    在普通用户下使用stat命令查看命令详细属性,当前的权限为0755

    [test@localhost ~]$ stat /bin/netstat

    File: `/bin/netstat'

    Size: 128216     Blocks: 256 IO Block: 4096 regular file

    Device: 802h/2050d    Inode: 788614 Links: 1

    Access: (0755/-rwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)

    Access: 2018-04-03 14:46:08.529638732 +0800

    Modify: 2017-03-22 07:52:14.000000000 +0800

    Change: 2018-04-03 14:48:07.523615430 +0800

    在root用户下修改权限u+s

    [root@localhost ~]# chmod u+s /bin/netstat

    [root@localhost ~]# ll /bin/netstat

    -rwsr-xr-x 1 root root 128216 Mar 22 2017 /bin/netstat

    在普通用户下使用stat命令再次查看命令详细属性,当前的权限为4755

    [test@localhost ~]$ stat /bin/netstat

    File: `/bin/netstat'

    Size: 128216     Blocks: 256 IO Block: 4096 regular file

    Device: 802h/2050d    Inode: 788614 Links: 1

    Access: (4755/-rwsr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)

    Access: 2018-04-03 14:46:08.529638732 +0800

    Modify: 2017-03-22 07:52:14.000000000 +0800

    Change: 2018-04-03 14:46:46.432625876 +0800

    在普通用户下重新使用netstat命令,发现具有了root身份,即和在root用户下执行的结果一样

    [test@localhost ~]$ netstat -lntup

    Active Internet connections (only servers)

    Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name

    tcp 0 0 0.0.0.0:52113 0.0.0.0:* LISTEN 1186/sshd

    tcp 0 0 :::52113 :::* LISTEN 1186/sshd

    udp 0 0 0.0.0.0:68 0.0.0.0:* 1109/dhclient

    使用u-x命令(没有执行权限)

    [root@localhost ~]# chmod u-x /bin/netstat

    [root@localhost ~]# ll /bin/netstat

    -rwSr-xr-x 1 root root 128216 Mar 22 2017 /bin/netstat

     

    2、特殊权限sgid    

    作用:和SUID一样,只是SGID是获得该程序所属用户组的权限

    举例:locate 查找文件原理:把系统中所有文件名存储在一个数据库中并建立索引

    所以查找起来locate比find要快很多

    updatedb 更新locate命令数据库内容的命令

    [root@localhost ~]# chmod g+s /usr/bin/locate

    [root@localhost ~]# ll /usr/bin/locate

    -rwx--s--x 1 root slocate 38464 Mar 12 2015 /usr/bin/locate

    [root@localhost ~]# chmod g-x /usr/bin/locate

    [root@localhost ~]# ll /usr/bin/locate

    -rwx--S--x 1 root slocate 38464 Mar 12 2015 /usr/bin/locate

    [root@localhost ~]# stat /usr/bin/locate

    File: `/usr/bin/locate'

    Size: 38464     Blocks: 80 IO Block: 4096 regular file

    Device: 802h/2050d    Inode: 658161 Links: 1

    Access: (2701/-rwx--S--x) Uid: ( 0/ root) Gid: ( 21/ slocate)

    Access: 2018-04-02 15:23:19.000000000 +0800

    Modify: 2015-03-12 17:21:21.000000000 +0800

    Change: 2018-04-03 15:19:24.432622176 +0800

    [root@localhost ~]# chmod g+x /usr/bin/locate

    [root@localhost ~]# stat /usr/bin/locate

    File: `/usr/bin/locate'

    Size: 38464     Blocks: 80 IO Block: 4096 regular file

    Device: 802h/2050d    Inode: 658161 Links: 1

    Access: (2711/-rwx--s--x) Uid: ( 0/ root) Gid: ( 21/ slocate)

    Access: 2018-04-02 15:23:19.000000000 +0800

    Modify: 2015-03-12 17:21:21.000000000 +0800

    Change: 2018-04-03 15:20:09.750626919 +0800

     

    3、特殊权限sbit

    Sticky Bit 粘滞位

    作用:只针对目录有效,对于目录的作用是:当用户在该目录下建立文件或目录时,仅有自己与 root才有权力删除

    最具有代表的就是/tmp目录,任何人都可以在/tmp内增加、修改文件(因为权限全是rwx),但仅有该文件/目录建立者与 root能够删除自己的目录或文件

    [root@localhost ~]# stat /tmp/

    File: `/tmp/'

    Size: 4096     Blocks: 8 IO Block: 4096 directory

    Device: 802h/2050d    Inode: 1048577 Links: 3

    Access: (1777/drwxrwxrwt) Uid: ( 0/ root) Gid: ( 0/ root)

    Access: 2018-04-03 13:49:59.000000000 +0800

    Modify: 2018-04-03 14:14:02.000000000 +0800

    Change: 2018-04-03 14:14:09.311623966 +0800

    [root@localhost ~]# chmod o-x /tmp/

    [root@localhost ~]# stat /tmp/

    File: `/tmp/'

    Size: 4096     Blocks: 8 IO Block: 4096 directory

    Device: 802h/2050d    Inode: 1048577 Links: 3

    Access: (1776/drwxrwxrwT) Uid: ( 0/ root) Gid: ( 0/ root)

    Access: 2018-04-03 13:49:59.000000000 +0800

    Modify: 2018-04-03 14:14:02.000000000 +0800

    Change: 2018-04-03 15:21:02.341604692 +0800

     

    4、附加权限

    又叫做扩展权限

    命令格式

    chattr [+-=] 选项 文件或目录名

    +增加权限

    - 删除权限

    = 等于某权限

    chattr                change attributes改变附加权限

    The letters 'acdeijstuADST' select the new attributes for the files: append only (a), com-pressed (c), no dump (d), extent format (e), immutable (i), data journalling (j), secure dele-tion (s), no tail-merging (t), undeletable (u), no atime updates (A), synchronous directory updates (D), synchronous updates (S), and top of directory hierarchy (T).

    部分常用参数说明:

    +a append (可读,如果有执行权限可执行,可追加,但是不能删除)

    +i immutable(可读,如果有执行权限可执行,不能追加,不能删除)

    用途:给系统的关键文件加把锁

    +s secure dele-tion(安全删除。若误删除,数据无法恢复)

    +A no atime updates(访问时不更新访问时间)

    用途:超大并发的情况下,关闭更新访问时间来降低服务器压力

    +c com-pressed(压缩)

    +d no dump(不备份)

    用途:不希望被恢复的文件,linux 找回误删除的文件

    +t no tail-merging(尾部合并)

     

    lsattr test.txt    list attributes查看附加权限位

    说明:可根据实际需要对某些文件添加附加权限

     

    参考来源:

    https://www.cnblogs.com/dyh004/p/6378456.html

    https://www.cnblogs.com/Q--T/p/7864795.html

  • 相关阅读:
    MySql基础命令行操作
    highcharts API 中文
    MAUI Installation on Redhat Linux EL 5.4
    Fortran GOTO
    Oracle 9i Release 2 Download
    Linux下重置Oracle管理員密碼
    解决:ERROR: ld.so: object ‘/lib/libcwait.so’ from /etc/ld.so.preload cannot be preloaded: ignored.
    Linux Tips
    sqlplus中的时间格式
    [转]the 1998 acm computing classification system
  • 原文地址:https://www.cnblogs.com/ssgeek/p/9220612.html
Copyright © 2011-2022 走看看