I wonder what happens what happens when I am changing my password on a Linux sys
ID: 657819 • Letter: I
Question
I wonder what happens what happens when I am changing my password on a Linux system. Basically all passwords are stored in a file called /etc/shadow or /etc/master.passwd in BSD-like systems as I do remember. Both of them are owned by root/wheel with 600 permissions.
So when I change my password using passwd command in terminal it should somehow access this file with root permissions. Then read and write to it.
I am interested in how does it get the root permissions and which process (or processes) are responsible for password change.
Explanation / Answer
Basically it's using the suid bit. If you check the passwd command in your machine:
-rwsr-xr-x 1 root root 43K Feb 15 2011 passwd
SUID (Set owner User ID up on execution) is a special type of file permissions given to a file. Normally in Linux/Unix when a program runs, it inherits access permissions from the logged in user. SUID is defined as giving temporary permissions to a user to run a program/file with the permissions of the file owner rather that the user who runs it. In simple words users will get file owner