
Linux中的普通命令如何以管理员身份运行
发布日期:2021-05-09 01:39:54
浏览次数:21
分类:博客文章
本文共 1216 字,大约阅读时间需要 4 分钟。
set uid, gid, sticky bit 权限
一个文件都有一个所有者, 表示该文件是谁创建的。同时, 该文件还有一个组编号, 表示该文件所属的组, 一般为文件所有者所属的组。如果是一个可执行文件, 那么在执行时, 一般该文件只拥有调用该文件的用户具有的权限,而setuid, setgid 可以来改变这种设置。
想到一个通俗的解释说法,类似于Windows里的以管理员身份运行。
set uid
设置使文件在执行阶段具有文件所有者的权限。典型的文件是 /usr/bin/passwd
如果一般用户执行该文件, 则在执行过程中, 该文件可以获得root权限, 从而可以更改用户的密码。
set gid
该权限只对目录有效. 目录被设置该位后, 任何用户在此目录下创建的文件都具有和该目录所属的组相同的组。
sticky bit
该位可以理解为防删除位。一个文件是否可以被某用户删除, 主要取决于该文件所属的组是否对该用户具有写权限。 如果没有写权限, 则这个目录下的所有文件都不能被删除, 同时也不能添加新的文件. 如果希望用户能够添加文件,但同时不能删除文件, 则可以对文件使用sticky bit位. 设置该位后, 就算用户对目录具有写权限, 也不能删除该文件。
具体的操作方法
操作这些标志与操作文件权限的命令是一样的, 都是 chmod
。有两种方法来操作。
$ chmod u+s temp #为temp文件加上setuid标志. (setuid 只对文件有效)$ chmod g+s tempdir #为tempdir目录加上setgid标志 (setgid 只对目录有效)$ chmod o+t temp #为temp文件加上sticky标志 (sticky只对文件有效)
设置完成后,可以通过ls -l
查看效果。
$ ls -lrwsrw-r-- 1 rousseau staff 85 Sep 22 2017 test1 #表示有setuid标志rwxrwsrw- 1 rousseau staff 85 Sep 22 2017 test2 #表示有setgid标志rwxrw-rwt 1 rousseau staff 85 Sep 22 2017 test3 #表示有sticky标志rwSr--r-- 1 rousseau staff 85 Sep 22 2017 test4
系统是这样规定的, 如果本来在该位上有x, 则这些特殊标志显示为小写字母 (s, s, t). 否则, 显示为大写字母 (S, S, T)
“为了方便普通用户执行一些特权命令,SUID/SGID程序允许普通用户以root身份暂时执行该程序,并在执行结束后再恢复身份。” chmod u+s 就是给某个程序的所有者以suid权限,可以像root用户一样操作。
参考资料
发表评论
最新留言
感谢大佬
[***.8.128.20]2025年05月03日 08时24分38秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
@ControllerAdvice用法
2023-01-23
#VERDI# 关于Verdi使用的几个常用技巧整理
2023-01-23
@Resource注解的使用
2023-01-23
@ResponseBody 和 @RequestBody
2023-01-23
A + B 九度oj
2023-01-23
A20地址线
2023-01-23
abaqus质量缩放系数取值_ABAQUS的质量缩放
2023-01-23
Accessibility
2023-01-23
08-信息收集之端口收集(总结版)
2023-01-23
15种下载文件的方法&文件下载方法汇总&超大文件下载
2023-01-23
anaconda、python卸载后重装以及anaconda--443
2023-01-23
AWVS工具太顶了,漏洞扫描工具AWVS介绍及安装教程
2023-01-23
CentOS 系列:CentOS 7文件系统的组成
2023-01-23
CSDN----Markdown编辑器
2023-01-23
Docker容器进入的4种方式(推荐最后一种)
2023-01-23