Software

chmod Permission Settings Manual

Unix file permission basics and chmod command usage. Numeric specification cheat sheet.

chmod Permission Settings Manual

What are Permissions?

Unix-based OS uses permissions to control user and group access to files and directories. Incorrect settings can lead to security risks.


Permission Basics

File Permissions

PermissionSymbolMeaning
ReadrPermission to read file
WritewPermission to write data to/delete file
ExecutexPermission to execute file (programs, scripts)
None-

Directory Permissions

PermissionSymbolMeaning
ReadrPermission to read file name list in directory
WritewPermission to create/delete files in directory
ExecutexPermission to access files and subdirectories

⚠️ Without execute permission on a directory, you cannot enter it.


User Classes

ClassDescription
Owner (user)User who created the file
GroupGroup that file creator belongs to
OthersEveryone else

Displaying Permissions

ls -l

Output example:

-rwxr-xr-- 1 user group 12345 Jan 23 12:34 example.txt
ItemMeaning
-rwxr-xr--File permissions
1Number of links
userFile owner
groupFile group
12345File size (bytes)
Jan 23 12:34Last modified
example.txtFile name

Reading Permissions

Each character in -rwxr-xr--:

PositionExampleMeaning
1st char-File type (d=directory, -=file)
2-4th charsrwxOwner permissions (read, write, execute)
5-7th charsr-xGroup permissions (read, execute)
8-10th charsr--Others permissions (read only)

Changing Permissions (chmod)

Use chmod command with 3-digit number to set permissions.

chmod 644 example.txt

Permission Values

PermissionValue
Read4
Write2
Execute1

Each digit is the sum of permission values.

Example: chmod 644

ClassTotalCalculationPermissionsNotation
Owner64+2+0read, writerw-
Group44+0+0read onlyr—
Others44+0+0read onlyr—

Cheat Sheet

Basic Permission Values

ValuePermissionNotation
0None---
1Execute only—x
2Write only-w-
3Write and execute-wx
4Read onlyr—
5Read and executer-x
6Read and writerw-
7Read, write, executerwx

Common chmod Commands

ValueOwnerGroupOthersUse Case
700AllNoneNonePersonal scripts
755AllRead+ExecRead+ExecPublic scripts/directories
644Read+WriteReadReadGeneral files
600Read+WriteNoneNoneSSH keys, .env
666Read+WriteRead+WriteRead+WriteShared files
400ReadNoneNoneRead-only

Practical Examples

SSH Private Key

chmod 600 ~/.ssh/id_rsa

Owner only read/write. Prevents unauthorized use of private key.

Web Server Files

# HTML files
chmod 644 index.html

# Directories
chmod 755 /var/www/html

# Executable scripts
chmod 755 script.sh

Environment Variable Files

chmod 600 .env

Files containing sensitive info should be owner-access only.

Shared Project Directory

chmod 775 /shared/project

Owner and group members can read, write, and execute.

Add Execute Permission to Script

chmod 755 deploy.sh
# or
chmod +x deploy.sh

Important Notes

⚠️ Incorrect permission settings can allow malicious third parties to view or modify your files.

Principle: Grant minimum necessary permissions to reduce security risks.