📖 Scenario: You are managing files on a Linux system. You want to control who can read, write, or execute your files. This is done by changing file permissions using the chmod command.Understanding how to set permissions is important for keeping your files safe and accessible only to the right users.
🎯 Goal: Learn how to use the chmod command to set file permissions for user, group, and others.You will create a file, then change its permissions step-by-step, and finally check the permissions to see the effect.
📋 What You'll Learn
Create a file named example.txt
Use chmod to set permissions
Check permissions using ls -l
Understand symbolic and numeric permission modes
💡 Why This Matters
🌍 Real World
Changing file permissions is essential for protecting files and controlling access on Linux servers and personal computers.
💼 Career
System administrators, developers, and security professionals regularly use <code>chmod</code> to manage file access and secure systems.
Progress0 / 4 steps
1
Create a file named example.txt
Use the touch command to create an empty file called example.txt in your current directory.
Linux CLI
Hint
The touch command creates an empty file if it does not exist.
2
Set read and write permissions for the user only
Use chmod with symbolic mode to give the user read and write permissions on example.txt, and remove all permissions for group and others. Use chmod u=rw,g=,o= example.txt.
Linux CLI
Hint
Symbolic mode lets you set permissions for user (u), group (g), and others (o) separately.
3
Change permissions to allow user read, write, execute; group read and execute; others no permissions
Use chmod with numeric mode to set permissions on example.txt so that the user has read, write, and execute (7), the group has read and execute (5), and others have no permissions (0). Use chmod 750 example.txt.
Linux CLI
Hint
Numeric mode uses digits to represent permissions: 4 for read, 2 for write, 1 for execute. Add them up for each category.
4
Check the permissions of example.txt
Use the ls -l example.txt command to display the permissions of example.txt. This will show the permission string like -rwxr-x---.
Linux CLI
Hint
The output line starts with a dash, then shows user, group, and others permissions in sets of three letters.
Practice
(1/5)
1. What does the chmod 755 filename command do in Linux?
easy
A. Removes all permissions from everyone
B. Sets read and write for owner; execute for group and others
C. Sets read, write, execute for owner; read and execute for group and others
D. Only changes the file owner
Solution
Step 1: Understand numeric permission 755
The digits 7, 5, 5 represent permissions for owner, group, and others respectively. 7 means read(4)+write(2)+execute(1)=7, 5 means read(4)+execute(1)=5.
Step 2: Apply permissions to file
Owner gets full permissions (rwx), group and others get read and execute (r-x). This matches the description in Sets read, write, execute for owner; read and execute for group and others.
Final Answer:
Sets read, write, execute for owner; read and execute for group and others -> Option C
Quick Check:
chmod 755 = rwxr-xr-x [OK]
Hint: Remember 7=rwx, 5=rx, 6=rw [OK]
Common Mistakes:
Confusing numeric codes with letters
Thinking 755 removes permissions
Assuming chmod changes ownership
2. Which of the following is the correct syntax to add execute permission for the user on a file named script.sh?
easy
A. chmod +x u script.sh
B. chmod script.sh u+x
C. chmod x+u script.sh
D. chmod u+x script.sh
Solution
Step 1: Recall chmod symbolic syntax
The correct format is chmod [who][operator][permission] filename. Here, 'u' means user, '+' adds permission, 'x' is execute.
Step 2: Match syntax to options
chmod u+x script.sh matches the correct syntax: chmod u+x script.sh. Other options have incorrect order or misplaced arguments.
Final Answer:
chmod u+x script.sh -> Option D
Quick Check:
chmod u+x filename adds execute for user [OK]
Hint: Use chmod [u/g/o][+/-][r/w/x] filename [OK]
Common Mistakes:
Placing permissions before user
Putting filename before options
Using spaces inside symbolic mode
3. What will be the output of ls -l file.txt after running chmod 640 file.txt on a file owned by user 'alice' and group 'staff'?
medium
A. -rw-r----- 1 alice staff 0 date file.txt
B. -rwxr-xr-x 1 alice staff 0 date file.txt
C. -rw-rw-r-- 1 alice staff 0 date file.txt
D. -r--r----- 1 alice staff 0 date file.txt
Solution
Step 1: Decode chmod 640 permissions
6 = read(4)+write(2) for owner, 4 = read(4) for group, 0 = no permissions for others.
Step 2: Translate to ls -l format
Owner: rw-, Group: r--, Others: ---. So the permission string is '-rw-r-----'. The rest shows ownership and file info.
Final Answer:
-rw-r----- 1 alice staff 0 date file.txt -> Option A
Quick Check:
chmod 640 = rw-r----- [OK]
Hint: Match digits to rwx: 6=rw-, 4=r--, 0=--- [OK]
Common Mistakes:
Mixing group and others permissions
Assuming execute permission is set
Confusing numeric values
4. You ran chmod 777 myfile but ls -l myfile still shows -rw-r--r--. What is the most likely reason?
medium
A. You forgot to run the command as root or with sudo
B. The file system is mounted as read-only
C. The chmod command syntax is incorrect
D. The file is a directory, not a file
Solution
Step 1: Understand chmod effect and file system state
chmod 777 should set full permissions. If permissions don't change, it may be due to file system restrictions like read-only mount.
Step 2: Evaluate other options
Running as root is not always required for own files. Syntax is correct. File type does not prevent permission changes. Read-only file system blocks changes.
Final Answer:
The file system is mounted as read-only -> Option B
Quick Check:
Read-only FS blocks chmod changes [OK]
Hint: Check if filesystem is read-only if chmod fails [OK]
Common Mistakes:
Assuming sudo always needed
Blaming syntax without checking
Ignoring file system mount options
5. You want to set permissions so that the owner can read and write, the group can only read, and others have no permissions on a file named data.txt. Which command achieves this?
hard
A. chmod 640 data.txt
B. chmod 750 data.txt
C. chmod 664 data.txt
D. chmod 600 data.txt
Solution
Step 1: Translate desired permissions to numeric code
Owner: read+write = 6, Group: read only = 4, Others: no permissions = 0. So numeric code is 640.
Step 2: Match numeric code to options
chmod 640 data.txt is chmod 640 data.txt, which matches the desired permissions exactly.
Final Answer:
chmod 640 data.txt -> Option A
Quick Check:
Owner=rw, Group=r, Others=none = 640 [OK]
Hint: Use chmod 640 for rw-r----- permissions [OK]
Common Mistakes:
Using 750 which gives execute permission
Using 664 which allows others read
Using 600 which denies group read
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.