📖 Scenario: You are a system administrator who needs to update a user's password on a Linux system. You will practice using the passwd command to change the password for a specific user.
🎯 Goal: Learn how to change a user's password using the passwd command in Linux CLI by specifying the username and setting a new password.
📋 What You'll Learn
Use the passwd command to change a user's password
Specify the username whose password you want to change
Set a new password for the user
💡 Why This Matters
🌍 Real World
System administrators often need to update user passwords quickly and securely using scripts.
💼 Career
Knowing how to automate password changes is useful for managing multiple users in Linux server environments.
Progress0 / 4 steps
1
Identify the user to change password for
Create a variable called username and set it to the exact string student1 to represent the user whose password you want to change.
Linux CLI
Hint
Use simple assignment like username='student1'.
2
Prepare the new password variable
Create a variable called new_password and set it to the exact string SecurePass123 which will be the new password for the user.
Linux CLI
Hint
Assign the password string exactly as shown.
3
Use passwd command to change the password
Write a command using echo and passwd to change the password for the user stored in username. Use the syntax echo -e "new_password\nnew_password" | passwd username --stdin to set the password non-interactively.
Linux CLI
Hint
Use echo -e "$new_password\n$new_password" | passwd $username --stdin to change password.
4
Display confirmation message
Write a echo command to print the exact message Password changed successfully for user student1 to confirm the password change.
Linux CLI
Hint
Use echo "Password changed successfully for user student1" to print the message.
Practice
(1/5)
1. What does the passwd command do in Linux?
easy
A. It changes the password of a user securely.
B. It lists all users on the system.
C. It creates a new user account.
D. It deletes a user account.
Solution
Step 1: Understand the purpose of passwd
The passwd command is designed to change user passwords securely on Linux systems.
Step 2: Compare options with command function
Options B, C, and D relate to user management but not password changes. Only It changes the password of a user securely. correctly describes passwd.
Final Answer:
It changes the password of a user securely. -> Option A
Quick Check:
passwd changes passwords = A [OK]
Hint: Remember: passwd is for changing passwords only [OK]
Common Mistakes:
Confusing passwd with user creation commands
Thinking passwd lists users
Assuming passwd deletes accounts
2. Which of the following is the correct syntax to change the password for user alice as root?
easy
A. passwd -p alice
B. passwd -u alice
C. passwd --change alice
D. passwd alice
Solution
Step 1: Recall root usage of passwd
Root can change any user's password by running passwd username.
Step 2: Analyze options for correct syntax
Only passwd alice uses the correct syntax. Options A, B, and C use invalid or non-existent flags.
Final Answer:
passwd alice -> Option D
Quick Check:
Root changes user password with passwd username = D [OK]
Hint: Use passwd username as root to change others' passwords [OK]
Common Mistakes:
Adding wrong flags like -u or -p
Using --change which is not a valid option
Trying to change password without specifying username as root
3. What will happen if a normal user runs the command passwd root?
medium
A. The root password will be changed immediately.
B. The user will be prompted to enter the current root password.
C. The command will fail with a permission error.
D. The user's own password will be changed instead.
Solution
Step 1: Understand user permissions for passwd
Only root can change other users' passwords. Normal users cannot change root's password.
Step 2: Predict command behavior for normal user
When a normal user tries passwd root, the system denies permission and shows an error.
Final Answer:
The command will fail with a permission error. -> Option C
Quick Check:
Normal user cannot change root password = A [OK]
Hint: Only root can change other users' passwords; others get permission error [OK]
Common Mistakes:
Assuming normal user can change root password
Thinking user will be asked root's current password
Believing user's own password changes instead
4. You run passwd alice as root but get the error: passwd: Authentication token manipulation error. What is the most likely cause?
medium
A. The password entered does not meet complexity rules.
B. You forgot to run the command with sudo or as root.
C. The user alice does not exist.
D. The passwd command is not installed.
Solution
Step 1: Understand the error meaning
The error usually means insufficient permissions to update password files.
Step 2: Identify cause based on command context
If not run as root or with sudo, passwd cannot change another user's password, causing this error.
Final Answer:
You forgot to run the command with sudo or as root. -> Option B
Quick Check:
Permission error means missing root privileges = C [OK]
Hint: Run passwd with root or sudo to avoid permission errors [OK]
Common Mistakes:
Assuming user does not exist without checking
Thinking password complexity causes this error
Believing passwd is missing from system
5. You want to automate changing passwords for multiple users listed in a file users.txt. Which script snippet correctly changes each user's password to NewPass123 using passwd?
hard
A. for user in $(cat users.txt); do echo -e "NewPass123\nNewPass123" | passwd $user; done
B. while read user; do echo "NewPass123" | passwd --stdin $user; done < users.txt
C. for user in users.txt; do passwd $user NewPass123; done
D. cat users.txt | passwd -p NewPass123
Solution
Step 1: Understand how to feed password to passwd
The passwd command reads password from standard input when piped, requiring password twice (new and confirmation).
Step 2: Analyze each script snippet
while read user; do echo "NewPass123" | passwd --stdin $user; done < users.txt uses --stdin which is not standard on all systems. for user in $(cat users.txt); do echo -e "NewPass123\nNewPass123" | passwd $user; done correctly uses echo -e to send password twice piped to passwd. for user in users.txt; do passwd $user NewPass123; done incorrectly treats file name as user list. cat users.txt | passwd -p NewPass123 misuses passwd with pipe and -p which is invalid.
Final Answer:
for user in $(cat users.txt); do echo -e "NewPass123\nNewPass123" | passwd $user; done -> Option A
Quick Check:
Pipe password twice to passwd in loop = B [OK]
Hint: Pipe password twice with echo -e inside loop to automate [OK]
Common Mistakes:
Using non-standard --stdin option
Not sending password twice for confirmation
Treating filename as username list without reading
Misusing passwd options
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.