​Linux文件和目录特殊权限位介绍及实践​(setuid setgid)


                      

            Linux文件和目录特殊权限位介绍及实践


在Linux中不管是超级用户root还是普通用户都可以使用命令“passwd”命令修改自己的密码,但是了解Linux的人都知道Linux密码是存放在/etc/passwd  /etc/shadow  里面的 


ls -l /etc/passwd  /etc/shadow 查看一下权限

[root@localhost ~]# ls -l /etc/passwd /etc/shadow
-rw-r--r--. 1 root root 1497 3月  16 21:15 /etc/passwd
----------. 1 root root  984 3月  16 21:15 /etc/shadow

里面普通用户并没有写入权限怎么能修改密码呢

重点在于passwd这个命令里面   查看一下passwd命令的权限

[root@localhost ~]# which passwd
/usr/bin/passwd
[root@localhost ~]# ls -l /usr/bin/passwd 
-rwsr-xr-x. 1 root root 25980 2月  22 2012 /usr/bin/passwd

里面有一个  s  说明这个命令有setuid权限

如果我们root执行

[root@localhost ~]# chmod 644 /usr/bin/passwd

然后切换到 su - admin 用户修改密码

[admin@localhost ~]$ passwd
-bash: /usr/bin/passwd: 权限不够

再把setuid权限给分回来  属主  4

[root@localhost ~]# chmod 4755 /usr/bin/passwd

[admin@localhost ~]$ passwd 
更改用户 admin 的密码 。
为 admin 更改 STRESS 密码。
(当前)UNIX 密码:

现在可以更改密码了

给组账户添加权限  2

[root@localhost ~]# ls -l /usr/bin/passwd 
-rwsr-xr-x. 1 root root 25980 2月  22 2012 /usr/bin/passwd
[root@localhost ~]# chmod 2755 /usr/bin/passwd 
[root@localhost ~]# ls -l /usr/bin/passwd 
-rwxr-sr-x. 1 root root 25980 2月  22 2012 /usr/bin/passwd

把权限去掉就是  0

[root@localhost ~]# chmod 0755 /usr/bin/passwd
[root@localhost ~]# ls -l /usr/bin/passwd 
-rwxr-xr-x. 1 root root 25980 2月  22 2012 /usr/bin/passwd


本文出自 “棒棒不是糖” 博客,转载请与作者联系!

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。