Bird
Raised Fist0
Linux CLIscripting~5 mins

Special permissions (setuid, setgid, sticky bit) in Linux CLI - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What does the setuid permission do on a Linux executable file?
The setuid permission allows a user to run the executable with the file owner's permissions, not the user's own permissions. This is often used to allow normal users to run programs with elevated privileges safely.
Click to reveal answer
intermediate
How does the setgid permission affect files and directories?
For files, setgid makes the program run with the group ID of the file's group. For directories, new files created inside inherit the directory's group instead of the user's primary group.
Click to reveal answer
beginner
What is the purpose of the sticky bit on a directory?
The sticky bit on a directory restricts file deletion inside it. Only the file owner, directory owner, or root can delete or rename files, even if others have write permission on the directory.
Click to reveal answer
beginner
How can you set the setuid permission on a file using chmod?
Use the command: chmod u+s filename. This adds the setuid bit to the file's permissions.
Click to reveal answer
advanced
What does the permission string rwsr-sr-t indicate?
It shows a file with setuid (s in user execute), setgid (s in group execute), and sticky bit (t in others execute) all set. This means the file runs with owner and group privileges, and the sticky bit is active on the directory or file.
Click to reveal answer
What does the setuid bit do when set on an executable file?
AChanges the file's group ownership
BRuns the file with the file owner's permissions
CPrevents the file from being executed
DRuns the file with the user's own permissions
What effect does the sticky bit have on a directory?
AAllows only file owners or root to delete files inside
BPrevents anyone from deleting files inside
CAllows anyone to delete files inside
DChanges the directory's group ownership
How do you set the setgid bit on a directory named 'shared'?
Achmod o+s shared
Bchmod u+s shared
Cchmod +t shared
Dchmod g+s shared
If a directory has setgid set, what happens to new files created inside?
AThey inherit the directory's group ownership
BThey inherit the user's primary group
CThey become read-only
DThey inherit the directory's owner
Which command shows special permissions like setuid, setgid, and sticky bit in the file listing?
Als -lh
Bls -a
Cls -l (with special letters s or t in permissions)
Dls -l
Explain what setuid, setgid, and sticky bit permissions do in Linux and give a real-life example for each.
Think about who can run or delete files and with what permissions.
You got /4 concepts.
    Describe how to set and verify the sticky bit on a directory and why it might be useful.
    Focus on commands and the purpose of sticky bit in shared spaces.
    You got /4 concepts.

      Practice

      (1/5)
      1. What does the setuid permission do on an executable file?
      easy
      A. Runs the program with the file owner's permissions
      B. Allows anyone to delete the file
      C. Makes new files inherit the folder's group
      D. Prevents the file from being executed

      Solution

      1. Step 1: Understand setuid purpose

        The setuid permission allows a program to run with the permissions of the file owner, not the user running it.
      2. Step 2: Compare options with setuid behavior

        Only Runs the program with the file owner's permissions correctly describes this behavior; others describe different permissions or incorrect effects.
      3. Final Answer:

        Runs the program with the file owner's permissions -> Option A
      4. Quick Check:

        setuid = runs as owner [OK]
      Hint: Setuid means run as file owner, not current user [OK]
      Common Mistakes:
      • Confusing setuid with sticky bit
      • Thinking setuid changes file deletion rights
      • Mixing setuid with setgid effects
      2. Which command correctly sets the setgid bit on a directory named shared?
      easy
      A. chmod g+s shared
      B. chmod +s shared
      C. chmod u+s shared
      D. chmod o+s shared

      Solution

      1. Step 1: Identify correct chmod syntax for setgid

        The setgid bit is set using g+s with chmod on directories.
      2. Step 2: Verify options

        chmod g+s shared uses chmod g+s shared, which is correct. Other options use incorrect flags or users.
      3. Final Answer:

        chmod g+s shared -> Option A
      4. Quick Check:

        Setgid = chmod g+s [OK]
      Hint: Setgid uses 'g+s' with chmod on directories [OK]
      Common Mistakes:
      • Using '+s' without user class
      • Confusing setuid (u+s) with setgid
      • Trying to set setgid on files with wrong syntax
      3. Given a directory /tmp/shared with permissions drwxrwxrwt, what does the t at the end signify?
      medium
      A. Setuid bit is set
      B. Sticky bit is set
      C. Setgid bit is set
      D. No special permissions set

      Solution

      1. Step 1: Interpret permission string ending with 't'

        The 't' at the end of directory permissions indicates the sticky bit is set.
      2. Step 2: Match 't' with sticky bit meaning

        The sticky bit prevents users from deleting files they don't own in that directory.
      3. Final Answer:

        Sticky bit is set -> Option B
      4. Quick Check:

        't' at end = sticky bit [OK]
      Hint: 't' at end of permissions means sticky bit set [OK]
      Common Mistakes:
      • Confusing 't' with setuid or setgid
      • Thinking 't' means no special permission
      • Misreading permissions string
      4. You set the setuid bit on a script using chmod u+s script.sh, but it doesn't run with owner permissions. What is the likely problem?
      medium
      A. You need to set the sticky bit instead
      B. The file owner must be root for setuid to work
      C. The script is a shell script and setuid does not work on scripts
      D. You forgot to set execute permission

      Solution

      1. Step 1: Understand setuid behavior on scripts

        Most Linux systems ignore setuid on shell scripts for security reasons.
      2. Step 2: Evaluate other options

        Sticky bit is unrelated, owner need not be root, and execute permission is usually set if script runs.
      3. Final Answer:

        The script is a shell script and setuid does not work on scripts -> Option C
      4. Quick Check:

        Setuid ignored on scripts [OK]
      Hint: Setuid rarely works on scripts, only on binaries [OK]
      Common Mistakes:
      • Assuming setuid works on all files
      • Confusing sticky bit with setuid
      • Not checking execute permission
      5. You want to create a shared directory /data/shared where all files created inside inherit the directory's group and users cannot delete others' files. Which commands set this up correctly?
      hard
      A. chmod 2777 /data/shared && chmod g+s /data/shared
      B. chmod 777 /data/shared && chmod g+s /data/shared
      C. chmod 2777 /data/shared
      D. chmod 2777 /data/shared && chmod +t /data/shared

      Solution

      1. Step 1: Set setgid and sticky bit on directory

        Setgid (2) makes new files inherit group; sticky bit (1) prevents deleting others' files.
      2. Step 2: Analyze commands

        chmod 2777 /data/shared && chmod +t /data/shared sets permissions to 2777 (setgid + rwxrwxrwx) and adds sticky bit with chmod +t. This correctly applies both.
      3. Final Answer:

        chmod 2777 /data/shared && chmod +t /data/shared -> Option D
      4. Quick Check:

        Setgid + sticky bit = chmod 2777 + t [OK]
      Hint: Setgid=2xxx, sticky=1xxx; combine for shared dir [OK]
      Common Mistakes:
      • Using sticky bit without setgid
      • Confusing octal codes for permissions
      • Setting wrong permission order
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard