发布网友 发布时间:2024-10-13 07:19
共2个回答
热心网友 时间:2024-10-14 02:43
解决这个问题得让你重新理解一下linux的安全机制
首先因为 /etc/shadow的文件属性是只读,这个文件的拥有是root,也就是只有root才能进行强制的读写操作
然后请ls -l /bin/passwd,此时你可以看见passwd的属性,你会发现他的属性居然是这样的-rwsr-xr-x,他的中间为什么有个s呢,此时再看,发现passwd这个可执行文件的拥有者是root,而且其他用户的使用权限为r-x,也就是说,别人有执行这个档案的权限,在运行此passwd时会暂时拥有passwd拥有者也就是root的权限,但前提是必须要有passwd的执行权限。这个就是linux中特有的suid机制。
这样你明白了,如果还有问题再call我吧 ^_^ !
热心网友 时间:2024-10-14 02:45
passwd命令调用了系统用户,并不是以root用户的身份修改