chmod — Change File Mode
chmod changes file permissions.
Numeric mode
chmod 755 script.sh # rwxr-xr-x
chmod 644 file.txt # rw-r--r--
chmod 600 private.txt # rw-------
chmod 777 public/ # rwxrwxrwx (dangerous!)
Symbolic mode
Format: [who][operator][permission]
Who: u (user/owner), g (group), o (others), a (all)
Operator: + (add), - (remove), = (set exactly)
chmod +x script.sh # Add execute for all
chmod u+x script.sh # Add execute for owner only
chmod go-w file.txt # Remove write from group and others
chmod a=r file.txt # Set read-only for everyone
chmod u+x,go-x script.sh # Multiple changes
Recursive
chmod -R 755 directory/ # Apply to all files inside
Make a script executable
This is the most common use:
chmod +x myscript.sh
./myscript.sh # Now you can run it!
Special permissions
chmod 4755 file # Setuid bit
chmod 2755 file # Setgid bit
chmod 1755 dir # Sticky bit