文档章节

文件特殊权限suid、sgid、stick_bit、软链接、硬链接

阿dai学长
 阿dai学长
发布于 2017/06/08 19:04
字数 1715
阅读 61
收藏 0

第二章 文件、目录管理

2.18 特殊权限之 suid

SUID的作用就是:让本来没有相应权限的用户运行这个程序时,可以访问没有权限访问的资源。passwd是一个很鲜明的例子。
suid=set uid

# umask
0022

umask的数值0022中第一位代表的就是特殊权限,包括有suid、sgid、sticky_bit。

该权限针对二进制可执行文件(x),是文件在执行阶段具有文件所有者的权限。

[root@adai001 ~]# ls -l /usr/bin/passwd
-rwsr-xr-x. 1 root root 27832 6月  10 2014 /usr/bin/passwd

passwd这个命令就有该权限,当普通用户执行passwd命令时,可以临时获得root权限,从而可以更改密码。
passwd属性找那个显示的是rws,并非传统的rwx,用数字表示为4755。
4是如何计算来的呢?
当有特殊权限时,第一位数字可以是0,1(--t),2(-s-),3(-st),4(s--),5(s-t),6(ss-),7(sst)。passwd是s--,所以数值为4。

  • 自定义一个set uid权限:
[root@adai001 ~]# su - adai  临时切换到用户adai
[adai@adai001 ~]$ ls -l /root/
ls: 无法打开目录/root/: 权限不够   **此时作为普通用户,没有查看(ls)/root/目录的权限所以报错
[adai@adai001 ~]$ exit
登出
[root@adai001 ~]# chmod u+s /bin/ls  给ls命令增加set uid权限
[root@adai001 ~]# ls -l /bin/ls
-rwsr-xr-x. 1 root root 117656 11月  6 2016 /bin/ls
[root@adai001 ~]# su - adai
上一次登录:三 6月  7 21:31:56 CST 2017pts/0 上
[adai@adai001 ~]$ ls -l /root/  ls获得查看root的权限
总用量 4
-rw-------. 1 root root 1422 5月  22 01:30 anaconda-ks.cfg
[adai@adai001 ~]$ exit
登出
[root@adai001 ~]# chmod u-x /bin/ls  去除所有者执行(x)权限
[root@adai001 ~]# ls -l /bin/ls  当所有者没有x权限之后s会变成S
-rwSr-xr-x. 1 root root 117656 11月  6 2016 /bin/ls
[root@adai001 ~]# chmod u-s /bin/ls
[root@adai001 ~]# ls -l /bin/ls
-rwxr-xr-x. 1 root root 117656 11月  6 2016 /bin/ls

注: 普通文件必须有x权限s权限才生效。

2.19 特殊命令之 sgid

sgid=set gid
该权限可以用于文件也可以用于目录。设置于可执行二进制文件时,作用和suid类似,即执行改文件的用户会临时获得改文件所属组的权限。设置在目录时,任何用户在此目录下创建的文件或目录都具有和该目录相同的所属组。
eg:

[root@adai002 ~]# mkdir /tmp/test
[root@adai002 ~]# chmod 777 !$
chmod 777 /tmp/test
[root@adai002 ~]# ls -ld !$
ls -ld /tmp/test
drwxrwxrwx 2 root root 6 6月   8 07:18 /tmp/test
[root@adai002 ~]# chmod g+s !$  给/tmp/test所属组增加s权限
chmod g+s /tmp/test
[root@adai002 ~]# ls -ld /tmp/test
drwxrwsrwx 2 root root 6 6月   8 07:18 /tmp/test
[root@adai002 ~]# useradd user1
[root@adai002 ~]# su - user1  临时切换到user1用户
[user1@adai002 ~]$ cd /tmp/test/  切换至test目录
[user1@adai002 test]$ mkdir adai001  在test目录下创建新目录
[user1@adai002 test]$ touch adai.txt  在test目录下创建新文件
[user1@adai002 test]$ ls -l
总用量 0
drwxrwsr-x 2 user1 root 6 6月   8 07:20 adai001
-rw-rw-r-- 1 user1 root 0 6月   8 07:21 adai.txt
在test目录下新创建的目录或文件均和test有相同的所属组

2.20 特殊权限之 stick_bit

stick_bit可以理解为防删除位,当前只针对目录有效。一个文件是否可以被某用户删除,主要取决于该文件所在目录是否对该用户具有写权限。如果没有写权限,则这个目录下的所有文件都不能被删除,同时也不能添加新文件。如果希望用户能够添加文件但同时不能删除该目录下的其他用户的文件,则可以对其父目录增加该权限。

语法: chmod [o] [+,-] t filename
eg: /tmp/目录就设有该权限

[root@adai002 ~]# useradd user2
[root@adai002 ~]# su - user2
[user2@adai002 ~]$ touch /tmp/user1.txt 在user2用户的/tmp/目录下创建文件user1.txt
[user2@adai002 ~]$ echo "121">!$  向user1.txt写入文件
echo "121">/tmp/user1.txt
[user2@adai002 ~]$ exit
登出
[root@adai002 ~]# useradd user3
[root@adai002 ~]# su - user3  切换到user3用户下
[user3@adai002 ~]$ rm -f /tmp/user1.txt  在user3用户下对user2用户在/tmp/目录下创建的文件实施删除工作
rm: 无法删除"/tmp/user1.txt": 不允许的操作    操作无法完成

说明: 一个文件能否被删除,取决于该文件父目录的权限,/tmp/目录是777,任何人都可以写的,所以理论上任何人都可以删除/tmp/下的所以文件,但是刚才我们做的实验却表明,user3是不可以删除user2的文件的,就是因为/tmp/目录有stick bit权限。

2.21 软链接文件

软链接(soft link)又叫符号链接(symbolic link),这个文件包含了另一个文件的路径名,可以是任意文件或目录,可以链接不同文件系统的文件。软链接文件有类似于Windows的快捷方式,删除源文件后链接会失效。

  • 创建软链接: ln -s [源文件] [目标文件]

2.22 硬链接

硬连接指通过索引节点来进行连接。在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。在Linux中,多个文件名指向同一索引节点是存在的。一般这种连接就是硬连接。硬连接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬连接到重要文件,以防止“误删”的功能。进行硬链接的时候该文件的内容并没有任何变化,只是指定了相同的inode index。

  • 硬链接有两个限制:
    1)不能跨文件系统创建硬链接,因为不同的文件系统有不同的inode index;
    2)目录不能创建硬链接。
  • 创建硬链接: ln [源文件] [目标文件]

软链接和硬链接的区别

1)硬链接就是同一个文件使用了多个别名(他们有共同的 inode)。软链接就是一个普通文件,只是数据块内容有点特殊(文件用户数据块中存放的内容是另一文件的路径名的指向,类似于Windows下的快捷方式)。
2)由于硬链接是有着相同 inode 号仅文件名不同的文件,因此,删除一个硬链接文件并不影响其他有相同 inode 号的文件。删除软链接并不影响被指向的文件,但若被指向的原文件被删除,则相关软连接就变成了死链接。
3)硬链接不能对目录进行创建,只可对文件创建。软链接可对文件或目录创建。

© 著作权归作者所有

阿dai学长
粉丝 73
博文 249
码字总数 326803
作品 0
海淀
运维
私信 提问
2.18-2.20 特殊权限和软硬链接

2.18-2.22特殊权限和软硬链接 2.18-2.20 特殊权限 一、特殊权限之suid set uid权限使普通用户临时拥有root赋予某个命令的特殊权限。即这个命令在普通用户用起来和root用户用起来效果是一样的...

熊猫头先生
2017/12/22
0
0
特殊权限及链接文件

特殊权限 软硬链接文件 特殊权限 SUID 作用:临时赋予用户二进制文档的拥有者的权限(主要用于让普通用户可以使用某些特殊命令) chmod u+s file(增加s权限) chmod u-s file(减去s权限) ...

arvinlinux
2017/06/17
0
0
2.18 特殊权限set_uid 2.19 特殊权限set_gid 2.20 特殊权限stick_b

2.18 特殊权限set_uid 2.19 特殊权限set_gid 2.20 特殊权限stick_bit 2.21 软链接文件 2.22 硬连接文件 2.18 特殊权限set_uid 1、set_uid 特殊权限set_uid S位; passwd支持用户修改自己的密...

wb_rambo123
2017/12/26
0
0
特殊权限set uid、set gid、stick bit和软链接与硬链接

一、特殊权限set uid、set gid、stick bit 1、set uid权限 该权限针对二进制可执行文件,使文件在执行阶段具有文件所有者的权限。典型的文件是 /usr/bin/passwd.。如果一般用户执行该文件, 则...

BatmanLinux
2017/12/21
0
0
特殊权限set_uid、set_gid、stick_bit、软链接、 硬连接

特殊权限set_uid ------set_uid:该权限针对二进制可执行文件,使文件在执行阶段具有文件所有者的权限;通俗一点讲就是,普通用户想要访问一个没有其他用户可执行权限的目录时,暂时借助二进制...

Linux运维一舟
2017/10/27
0
0

没有更多内容

加载失败,请刷新页面

加载更多

NIO基于长度域的报文在Netty下的解码

1, 先复习一下粘包/拆包 1.1, 粘包/拆包的含义 TCP是个“流”协议, 并不了解上层业务数据的具体含义, 它会根据TCP缓冲区的实际情况进行包的划分,所以在业务上认为,一个完整的包可能会被TCP...

老菜鸟0217
今天
8
0
从零开始搭建spring-cloud(2) ----ribbon

在微服务架构中,业务都会被拆分成一个独立的服务,服务与服务的通讯是基于http restful的。Spring cloud有两种服务调用方式,一种是ribbon+restTemplate,另一种是feign。 其实我们已经在上...

Vincent-Duan
今天
19
0
get和post的区别?

doGet:路径传参。效率高,安全性差(get的传送数据量有限制,不能大于2Kb) doPOST:实体传参。效率低,安全性好 建议: 1、get方式的安全性较Post方式要差些,包含机密信息的话,建议用Pos...

花无谢
昨天
4
0
当谈论迭代器时,我谈些什么?

当谈论迭代器时,我谈些什么? 花下猫语:之前说过,我对于编程语言跟其它学科的融合非常感兴趣,但我还说漏了一点,就是我对于 Python 跟其它编程语言的对比学习,也很感兴趣。所以,我一直...

豌豆花下猫
昨天
14
0
10天学Python直接做项目,我做了这5件事

初学者如何尽快上手python? 市面上关于如何学python的资料很多,但是讲的都太复杂。 我就是很简单的几句话,从小白到开发工程师,我只做了五件事。 我觉得任何商业计划书如果不能用几句话讲...

Python派森
昨天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部