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

Linux学习之十五-Linux文件特殊权限和附加权限的更多相关文章

  1. Linux学习(十五)LVM

    一.前言 LVM,逻辑卷管理工具,它的作用是提供一种灵活的磁盘管理办法.通常我们的某个分区用完了,想要扩容,很麻烦.但是用lvm就可以很方便的扩容,收缩. 看它的原理图: 它的原理大致是:首先将磁盘做 ...

  2. Linux学习之十四-Linux文件和目录权限

    Linux文件和目录权限 在Linux中的每一个文件或目录都包含有访问权限,这些访问权限决定了谁能访问和如何访问这些文件和目录. 通过设定权限可以从以下三种访问方式限制访问权限:只允许用户自己访问:允 ...

  3. 攻城狮在路上(叁)Linux(十五)--- 文件与目录的默认权限与隐藏权限

    一.文件默认权限:umask <==需要被减去的权限. 1.umask指的是当前用户在新建文件或者目录时的默认权限,如0022; 2.默认情况下,用户创建文件的最大权限为666; 创建目录的最大 ...

  4. linux 学习第十五天(vsftpd配置)

    一.vstapd配置 vsftpd 服务(a.匿名公开 b.系统本地账户验证c.虚拟专用用户验证) iptables -F  (清空防火墙) service iptables save  (保存防火墙 ...

  5. Linux学习之十五、基础正规表示法\延伸正规表示法

    原文地址: http://vbird.dic.ksu.edu.tw/linux_basic/0330regularex_2.php 基础正规表示法 既然正规表示法是处理字串的一种表示方式,那么对字节排 ...

  6. Linux学习之十六、文件的格式化与相关处理

    原文地址:http://vbird.dic.ksu.edu.tw/linux_basic/0330regularex_4.php 文件的格式化与相关处理 接下来让我们来将文件进行一些简单的编排吧!底下 ...

  7. linux学习第十五天 (Linux就该这么学) 找到一本不错的Linux电子书,附《Linux就该这么学》章节目录

    今天收尾DNS内容复习了,还有分享解析配置,都没有记,主要访问同一个域名,就近访问,

  8. Linux学习之十九-Linux磁盘管理

    Linux磁盘管理 1.相关知识 磁盘,是计算机硬件中不可或缺的部分磁盘,是计算机的外部存储器中类似磁带的装置,将圆形的磁性盘片装在一个方的密封盒子里,这样做的目的是为了防止磁盘表面划伤,导致数据丢失 ...

  9. Linux学习之十六-Linux用户管理

    Linux用户管理 Linux系统跟Windows系统一样,可以创建不同的用户,不同的用户组.在不同用户下使用系统具有相应的权限 创建一个普通用户时,会修改几个文件,拷贝一些初始文件到用户家目录中 修 ...

随机推荐

  1. gym101532 2017 JUST Programming Contest 4.0

    台州学院ICPC赛前训练5 人生第一次ak,而且ak得还蛮快的,感谢队友带我飞 A 直接用claris的模板啊,他模板确实比较强大,其实就是因为更新的很快 #include<bits/stdc+ ...

  2. server.xml属性概念

    # system Processers为系统可用的线程数,一般和CPU核心线程数相同 BufferPool 是由BufferChunk组成. BufferPool的总大小为BufferChunkSiz ...

  3. Unity --yield return

    1.yield return null; //暂停协同程序,下一帧再继续往下执行 yield new WaitForFixedUpdate (); //暂停协同程序,等到下一次调用FixedUpdat ...

  4. 【bzoj3771】Triple FFT+容斥原理

    题目描述 樵夫的每一把斧头都有一个价值,不同斧头的价值不同.总损失就是丢掉的斧头价值和. 他想对于每个可能的总损失,计算有几种可能的方案. 注意:如果水神拿走了两把斧头a和b,(a,b)和(b,a)视 ...

  5. HDU 5687 Problem C(Trie+坑)

    Problem C Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others) Tota ...

  6. transform总结

    1. 用jquery的css方法获取transform得到的是矩阵matrix,不利于获取translate的值, 优先使用dom.style.webKitTransform进行transform的读 ...

  7. 'NoneType' object has no attribute '__getitem__'

    报错 'NoneType' object has no attribute '__getitem__' 你 result 返回的是 None ,所以 result [0] 取不了值

  8. MySQL服务器端&客户端常见错误

    目录(?)[+] 客户端 服务器端 客户端 1.ERROR 2013 (HY000) at line 1: Lost connection to MySQL server during query 使 ...

  9. 星际转移(cogs 736)

    «问题描述: 由于人类对自然资源的消耗,人们意识到大约在2300 年之后,地球就不能再居住了.于是在月球上建立了新的绿地,以便在需要时移民.令人意想不到的是,2177 年冬由于未知的原因,地球环境发生 ...

  10. LOJ#2083. 「NOI2016」优秀的拆分

    $n \leq 30000$的字符串,问其所有子串的所有AABB形式的拆分有多少种.$t \leq 10$组询问. $n^3$过80,$n^2$过95,鬼去写正解.. $n^2$:先枚举一次算每个位置 ...