
User Permissions
- 54 installs
- 50 repo stars
- Updated March 3, 2026
- chaterm/terminal-skills
Manage Linux users, groups, and file permissions from the terminal.
About
Reference for creating and managing users, groups, and file permission settings on Linux. Used when a developer administers access control on a server.
- User and group management commands
- File permission and access control
User Permissions by the numbers
- 54 all-time installs (skills.sh)
- Ranked #1,278 of 2,203 Security skills by installs in the Skillselion catalog
- Data as of Jul 28, 2026 (Skillselion catalog sync)
npx skills add https://github.com/chaterm/terminal-skills --skill user-permissionsAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 54 |
|---|---|
| repo stars | ★ 50 |
| Last updated | March 3, 2026 |
| Repository | chaterm/terminal-skills ↗ |
What it does
Manage Linux users, groups, and file permissions from the terminal.
Files
User and Permission Management
Overview
Linux user management, group management, sudo configuration, ACL permissions and other skills.
User Management
View Users
# Current user
whoami
id
# User information
id username
finger username
# All users
cat /etc/passwd
getent passwd
# Logged in users
who
w
last # Login historyUser Operations
# Create user
useradd username
useradd -m -s /bin/bash username # Create home directory, specify shell
useradd -G group1,group2 username # Specify supplementary groups
# Modify user
usermod -aG groupname username # Add to group
usermod -s /bin/zsh username # Change shell
usermod -L username # Lock user
usermod -U username # Unlock user
# Delete user
userdel username
userdel -r username # Also delete home directory
# Change password
passwd username
passwd -l username # Lock password
passwd -u username # Unlock password
chage -l username # View password policyGroup Management
View Groups
# User's groups
groups username
id -Gn username
# All groups
cat /etc/group
getent group
# Group members
getent group groupnameGroup Operations
# Create group
groupadd groupname
groupadd -g 1001 groupname # Specify GID
# Modify group
groupmod -n newname oldname # Rename
# Delete group
groupdel groupname
# Manage group members
gpasswd -a username groupname # Add user
gpasswd -d username groupname # Remove user
gpasswd -M user1,user2 groupname # Set member listsudo Configuration
Basic Usage
# Execute as root
sudo command
sudo -i # Switch to root shell
sudo -u username command # Execute as another user
# View permissions
sudo -lsudoers Configuration
# Edit sudoers (recommended method)
visudo
# Or edit files under /etc/sudoers.d/
visudo -f /etc/sudoers.d/usernameCommon Configuration Examples
# /etc/sudoers.d/username
# Full privileges
username ALL=(ALL:ALL) ALL
# No password required
username ALL=(ALL) NOPASSWD: ALL
# Specific commands
username ALL=(ALL) /usr/bin/systemctl restart nginx
# Specific commands without password
username ALL=(ALL) NOPASSWD: /usr/bin/docker
# Group privileges
%groupname ALL=(ALL) ALLACL Permissions
View ACL
getfacl file
getfacl -R dir # Recursive viewSet ACL
# Set user permissions
setfacl -m u:username:rwx file
setfacl -m u:username:rx dir
# Set group permissions
setfacl -m g:groupname:rx file
# Set default ACL (new files inherit)
setfacl -d -m u:username:rwx dir
# Recursive set
setfacl -R -m u:username:rx dir
# Remove ACL
setfacl -x u:username file # Remove specific
setfacl -b file # Remove allSpecial Permissions
SUID/SGID/Sticky
# SUID (4) - Execute as file owner
chmod u+s file
chmod 4755 file
# SGID (2) - Execute as file group/directory inherits group
chmod g+s file
chmod 2755 dir
# Sticky (1) - Only owner can delete
chmod +t dir
chmod 1777 dir
# View
ls -la
# -rwsr-xr-x SUID
# -rwxr-sr-x SGID
# drwxrwxrwt StickyCommon Scenarios
Scenario 1: Create Developer User
# Create user and group
groupadd developers
useradd -m -s /bin/bash -G developers devuser
# Set password
passwd devuser
# Configure sudo
echo "devuser ALL=(ALL) NOPASSWD: /usr/bin/docker, /usr/bin/systemctl" > /etc/sudoers.d/devuser
chmod 440 /etc/sudoers.d/devuserScenario 2: Shared Directory Permissions
# Create shared directory
mkdir /shared
groupadd shared
chown root:shared /shared
chmod 2775 /shared # SGID ensures new files inherit group
# Add users to group
usermod -aG shared user1
usermod -aG shared user2Scenario 3: Restrict User to Specific Commands
# /etc/sudoers.d/limited-user
limited ALL=(ALL) NOPASSWD: /usr/bin/systemctl status *, /usr/bin/journalctlTroubleshooting
| Problem | Solution |
|---|---|
| sudo permission denied | Check /etc/sudoers.d/ configuration |
| User cannot login | Check shell, password lock status |
| Group permissions not working | Re-login or newgrp groupname |
| ACL not working | Check if filesystem supports ACL |