Managing users and permissions in Linux is crucial for maintaining security and controlling access to resources. Here's a beginner's guide to get you started:
1. User Management:
- Creating Users: Use the `useradd` command to add new users. For example, to create a user named "john", you would use:
sudo useradd john
- Setting Passwords: After creating a user, set a password using the `passwd` command: sudo passwd john
- Deleting Users: To remove a user and their home directory, use `userdel`:
sudo userdel -r john
- Modifying User Details: The `usermod` command allows you to modify user properties like the username, home directory, or primary group.
2. Group Management:
- Creating Groups: Use `groupadd` to create a new group. For instance: sudo groupadd team
- Adding Users to Groups: To add a user to a group, apply `usermod`:
sudo usermod -aG team john
- Viewing Group Membership: Check group membership with the `groups` command:
groups john
- Deleting Groups: Remove a group using `groupdel`:
sudo groupdel team
3. Permissions:
- Understanding Permissions: Each file and directory in Linux has three sets of permissions for the owner, group, and others: read (`r`), write (`w`), and execute (`x`).
- Viewing Permissions: Use `ls -l` to display permissions:
ls -l /path/to/file
4. Changing Permissions:
- chmod: To change permissions, use the `chmod` command followed by the permission mode and file or directory name. For example:
chmod +x script.sh
This command adds execute permission to the script.sh file.
- chown: To change the owner of a file or directory, employ the `chown` command:
sudo chown john:team file.txt
This changes the owner to user "john" and the group to "team".
5. Default Permissions:
- umask: The `umask` command sets the default permissions for new files and directories created by users. For example:
umask 022
6. Special Permissions:
- Setuid, Setgid, Sticky Bit: These are special permissions that can be set on files and directories to control their behavior. They are represented by `s`, `S`, and `t` respectively.
This guide provides a basic understanding of user and permission management in Linux. As you become more familiar with these concepts, you can explore advanced topics such as ACLs (Access Control Lists) for finer-grained control over file permissions.