CIS120 Linux Fundamentals by Scott Shaper

id, chmod, and umask

Think of chmod and umask like a security settings panel for your files. Just like how you can adjust who can enter your dorm room or use your computer, these commands let you control exactly who can access and modify your files in Linux.

Quick Reference

Command What It Does Common Use
chmod Changes file/directory permissions Setting who can read/write/execute files
umask Sets default permissions Controlling how new files are created
id Shows user/group information Checking your permissions and groups

When to Use These Commands

The id Command

Think of the id command like checking your ID card - it shows who you are and what groups you belong to in the system.

Practical Examples

# Check your own ID information
id

# Check another user's ID
id username

# See just your user ID
id -u

# See just your group ID
id -g

The chmod Command

Think of chmod like a permission switchboard. You can use it in two ways: with letters (symbolic mode) or numbers (numeric mode).

Symbolic Mode (Using Letters)

This is like using simple words to set permissions:

Part What It Means Example
u (user) File owner You
g (group) Group members Your project team
o (others) Everyone else Other students
a (all) All users Everyone

Symbolic Mode Examples

# Let owner read and write
chmod u+rw file.txt

# Let group read and execute
chmod g+rx script.sh

# Remove write permission from others
chmod o-w document.txt

# Set specific permissions for all
chmod a=rw file.txt

Numeric Mode (Using Numbers)

This is like using a code to set permissions:

Number Permission What It Means
4 Read (r) Can view the file
2 Write (w) Can modify the file
1 Execute (x) Can run the file

Numeric Mode Examples

# Owner: read/write/execute (7)
# Group: read/execute (5)
# Others: read/execute (5)
chmod 755 script.sh

# Owner: read/write (6)
# Group: read (4)
# Others: read (4)
chmod 644 document.txt

# Owner: read/write/execute (7)
# Group: read/execute (5)
# Others: no access (0)
chmod 750 private/

The umask Command

Think of umask like setting default security rules for new files. It's like telling the system "whenever I create a new file, use these permissions by default." The umask value determines what permissions are automatically removed when new files and directories are created.

To understand how umask works:

  1. New files typically start with permissions 666 (rw-rw-rw-)
  2. New directories typically start with permissions 777 (rwxrwxrwx)
  3. The umask value is subtracted from these default permissions
umask Value New File Permissions New Directory Permissions When to Use
022 644 (rw-r--r--) 755 (rwxr-xr-x) Default setting - owner has full access, others can read but not write
027 640 (rw-r-----) 750 (rwxr-x---) More restrictive - owner has full access, group can read, others have no access
077 600 (rw-------) 700 (rwx------) Very private - only owner has access

How umask Calculations Work

# Example: umask 022
# For files (default 666)
666 (rw-rw-rw-)
- 022 (----w--w-)
= 644 (rw-r--r--)

# For directories (default 777)
777 (rwxrwxrwx)
- 022 (----w--w-)
= 755 (rwxr-xr-x)

# Example: umask 027
# For files (default 666)
666 (rw-rw-rw-)
- 027 (----w-rwx)
= 640 (rw-r-----)

# For directories (default 777)
777 (rwxrwxrwx)
- 027 (----w-rwx)
= 750 (rwxr-x---)

umask Examples

# Check current umask
umask

# Set more restrictive umask
umask 027

# Set very private umask
umask 077

# Temporarily use different umask for a single command
(umask 027 && touch newfile.txt)

Tips for Success

Common Mistakes to Avoid

Best Practices

Advanced Techniques

Combining Commands

# Set permissions recursively
chmod -R 755 directory/

# Change permissions for multiple files
chmod 644 *.txt

# Set different permissions for files and directories
find . -type f -exec chmod 644 {} \;
find . -type d -exec chmod 755 {} \;

# Use umask with specific commands
(umask 027 && touch newfile.txt)