博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
特殊权限(set_uid、set_gid、stick_bit)
阅读量:6230 次
发布时间:2019-06-21

本文共 2198 字,大约阅读时间需要 7 分钟。

特殊权限

set_uid

当我们查询/usr/bin/passwd的权限的时候会发现,出现了一个s权限,这个s权限就是我们所讲述的;

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

由于每个用户都需要使用passwd命令来修改密码,那么就需要所有用户都拥有这个文件的权限,也就是(所有者);

而这个文件的所有者却是ROOT账号与root组;此时我们就会使用一个特殊权限来赋予它,也就是s权限;
set_uid命令:可以使普通用户临时赋予root权限,但是对象必须是可执行的二进制文件;

[user01@shu-test root]$ whoamiuser01[user01@shu-test root]$ ls /root/ls: 无法打开目录/root/: 权限不够[user01@shu-test root]$ ls -ld /root/dr-xr-x---. 8 root root 256 12月 20 21:13 /root/[user01@shu-test root]$

此时我们会发现/root/目录的权限所有者为root,其他用户user01根本无法操作;

那么我们就需要使用root账号给ls命令赋予s权限:
chmod u+s [路径]

[root@shu-test ~]# chmod u+s /usr/bin/ls[root@shu-test ~]# ls -l /usr/bin/ls-rwsr-xr-x. 1 root root 117656 11月  6 2016 /usr/bin/ls[root@shu-test ~]#

再在user01账号下ls下/root/目录,我们会发现可以查看/root/目录了;

[user01@shu-test root]$ ls /root/abc  anaconda-ks.cfg  awk  grep  sed

取消s权限:

格式:

chmod u-s [路径]chmod u-s /usr/bin/ls[root@shu-test ~]# chmod u-s /usr/bin/ls

set_gid

使其临时具备所有组的权限
首先查看权限,普通用户无法ls /root/目录下的文件;

[user01@shu-test root]$ ls -ld /root/dr-xr-x---. 8 root root 256 12月 20 21:13 /root/[user01@shu-test root]$ ls -l /root/ls: 无法打开目录/root/: 权限不够[user01@shu-test root]$

我们通过root账号赋予ls命令拥有所属组来查看

chmod g+s [路径]

[root@shu-test ~]# chmod g+s /usr/bin/ls[root@shu-test ~]# ls -ld /usr/bin/ls-rwxr-sr-x. 1 root root 117656 11月  6 2016 /usr/bin/ls

再切换到普通用户user01来ls /root/看看

[user01@shu-test root]$ ls /root/abc  anaconda-ks.cfg  awk  grep  sed[user01@shu-test root]$

取消权限(在root下取消)

chmod g-s [路径]

[root@shu-test ~]# chmod g-s /usr/bin/ls[root@shu-test ~]# ls -ld /usr/bin/ls-rwxr-xr-x. 1 root root 117656 11月  6 2016 /usr/bin/ls[root@shu-test ~]#

切换到普通用户下查看:

[user01@shu-test root]$ ls /root/ls: 无法打开目录/root/: 权限不够[user01@shu-test root]$

stick_bit

防止其他用户删除文件;

/tmp/ 下可被其他用户编辑,无法删除其他用户的文件;

使用普通用户user01在/tmp/下创建一个文件,给文件777权限;

[user01@shu-test tmp]$ touch 1.txt[user01@shu-test tmp]$ vi 1.txt[user01@shu-test tmp]$ chmod 777 1.txt[user01@shu-test tmp]$ ls -ld 1.txt-rwxrwxrwx. 1 user01 user01 7 12月 21 16:21 1.txt

切换到普通用户user02,此时我们发现可以user02可以编辑1.txt文件,但是无法删除1.txt;

[user02@shu-test tmp]$ rm 1.txtrm: 无法删除"1.txt": 不允许的操作[user02@shu-test tmp]$

转载于:https://blog.51cto.com/shuzonglu/2052988

你可能感兴趣的文章
USB HID 分析
查看>>
驱动属性
查看>>
IOS 学习笔记(6) 控件 文本域(UITextField)的使用方法
查看>>
第一次写JQuery插件--用于显示子菜单
查看>>
Java的几种对象(PO,VO,DAO,BO,POJO)解释
查看>>
Quartz总结(一):Quartz集成Spring的2个方法
查看>>
读取文件,输出单词
查看>>
zabbix常用的python类api
查看>>
Oracle第三章——SQL语言
查看>>
《代码大全》阅读笔记-19-一般控制问题
查看>>
VB编程技巧推荐
查看>>
Django 简介
查看>>
golang array, slice, string笔记
查看>>
java 集合、接口
查看>>
AutoMapper用法
查看>>
维护后面的position + 离线 + 线段树 bzoj 3585
查看>>
StringUtils常用方法+StringUtils详细介绍
查看>>
iOS开发之JSON解析
查看>>
iOS开发之Run Loop
查看>>
PDF 补丁丁 0.5.0.2731 发布(增加去除页面表单和链接水印功能)
查看>>