比如你的当前用户名是:zl
你想改变你的password,可以用passwd命令来改变当前用户的密码。
先看一下passwd可执行文件的属性:
ls /usr/bin/passwd -l
-rwsr-xr-x root
而passwd命令直接修改的是/etc/passwd文件,此文件的属性:
ls /etc/passwd -l
-rw-r--r--
说明,我们zl用户其实没权利修改这个文件的。那么,为什么我们还是可以修改password呢?
那是因为,passwd命令是就有”设置用户ID位“的。当zl用户执行passwd命令时,我们的有效用户就变为/usr/bin/passwd的拥有者的ID,即root。所以我们就可以修改/etc/passwd文件了。