0
0
Linux CLIscripting~10 mins

Special permissions (setuid, setgid, sticky bit) in Linux CLI - Step-by-Step Execution

Choose your learning style9 modes available
Concept Flow - Special permissions (setuid, setgid, sticky bit)
Start
Check file permissions
Is setuid bit set?
YesRun file with owner's permissions
Execute normally
Is setgid bit set?
YesRun file with group's permissions
Execute normally
Is sticky bit set?
YesRestrict deletion in directory
Normal deletion rules
End
This flow shows how Linux checks special permission bits on files or directories and changes behavior accordingly.
Execution Sample
Linux CLI
ls -l /usr/bin/passwd
chmod u+s /usr/bin/passwd
ls -l /usr/bin/passwd
Shows the setuid bit on the passwd command, then sets it and shows the change.
Execution Table
StepCommandActionOutput ExampleEffect
1ls -l /usr/bin/passwdCheck current permissions-rwxr-xr-x 1 root root 54256 Apr 10 12:00 /usr/bin/passwdNo special bits set
2chmod u+s /usr/bin/passwdSet setuid bitSetuid bit added
3ls -l /usr/bin/passwdCheck permissions again-rwsr-xr-x 1 root root 54256 Apr 10 12:00 /usr/bin/passwds in user execute means setuid active
4Run /usr/bin/passwd as normal userExecute fileRuns with root permissionsUser temporarily has root rights for this program
5chmod g+s /some/dirSet setgid bit on directoryNew files inherit group ownership
6chmod +t /tmpSet sticky bit on directoryOnly owner can delete files inside
7ls -ld /tmpCheck sticky bitdrwxrwxrwt 10 root root 4096 Apr 10 12:00 /tmpt at end means sticky bit set
8Try deleting file owned by another user in /tmpAttempt deletionPermission deniedSticky bit prevents deletion by others
9ExitEnd of demonstration
💡 Demonstration ends after showing effects of setuid, setgid, and sticky bit.
Variable Tracker
VariableStartAfter Step 2After Step 3After Step 5After Step 6
/usr/bin/passwd permissions-rwxr-xr-x-rwsr-xr-x-rwsr-xr-x-rwsr-xr-x-rwsr-xr-x
/some/dir permissionsdrwxr-xr-xdrwxr-xr-xdrwxr-xr-xdrwxr-sr-xdrwxr-sr-x
/tmp permissionsdrwxrwxrwxdrwxrwxrwxdrwxrwxrwxdrwxrwxrwxdrwxrwxrwt
Key Moments - 3 Insights
Why does the 's' appear in the user execute position after setting setuid?
The 's' replaces the 'x' in the user execute position to show setuid is active, as seen in execution_table step 3.
How does the sticky bit prevent file deletion in a directory?
Sticky bit restricts deletion to file owners or root, so others cannot delete files even if they have write permission on the directory, shown in step 8.
What effect does setgid have on a directory?
Setgid on a directory makes new files inherit the directory's group ownership, as shown in step 5.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution table at step 3, what does the 's' in '-rwsr-xr-x' mean?
ASticky bit is set, file cannot be deleted
BSetuid bit is set, file runs with owner's permissions
CSetgid bit is set, file runs with group's permissions
DNo special permissions are set
💡 Hint
Check the 'Action' and 'Effect' columns in step 3 of the execution_table.
At which step does the sticky bit get set on the /tmp directory?
AStep 2
BStep 5
CStep 6
DStep 8
💡 Hint
Look for the command 'chmod +t /tmp' in the execution_table.
If you remove the setgid bit from /some/dir, what changes in the variable_tracker?
AThe group permissions on /some/dir change to 'drwxr-xr-x'
BThe user permissions on /usr/bin/passwd change
CThe sticky bit on /tmp is removed
DNothing changes
💡 Hint
Check the '/some/dir permissions' row in variable_tracker after step 5.
Concept Snapshot
Special permissions in Linux modify file or directory behavior:
- setuid (user execute 's'): runs file as owner
- setgid (group execute 's'): runs file as group or sets group on new files in dir
- sticky bit ('t' on dir): restricts file deletion to owners
Use chmod u+s, g+s, +t to set these bits.
Check with ls -l (look for s or t in permissions).
Full Transcript
This lesson shows how Linux special permissions setuid, setgid, and sticky bit work. First, we check a file's permissions with ls -l. Then we set the setuid bit using chmod u+s, which changes the user execute permission to 's'. This means when the file runs, it runs with the file owner's permissions, not the user's. Next, we set the setgid bit on a directory with chmod g+s, so new files inherit the directory's group. Finally, we set the sticky bit on a directory with chmod +t, which prevents users from deleting files they do not own inside that directory. We verify these changes with ls -l and test effects like permission denied on deletion. The visual tables track permission changes step-by-step and explain how these bits affect file and directory behavior.