# Linux users/groups/permissions cheatsheet ## Add user ``` sudo useradd -m peter sudo passwd peter groupadd myAppUsers sudo usermod -a -G peter myAppUsers ``` `adduser` and `addgroup` are interactive convenience scripts that wrap the `useradd` and `groupadd` commands. ## Get information about a user, including the user's group memberships ``` id id peter ``` ## List groups ``` groups groups peter ``` ## File permissions List files, showing permissions and ownership information ``` ls -l ``` The permission mask is the sum of the permissions (r = 1, w = 2, x = 4) for the user (u), group (g) and others (o). _Add the numbers to get the permission mask, so 7 means all of them (1+2+4=7)._ Permissions are course grained, and set for exactly 3 scopes - u (for user) to set permission for the resource owner. - g for the resource group. - o (for others) to set permissions for everyone else. - a for setting all above scopes at once. ``` chmod u=rwx,g=rwx,o=rwx myFile.txt chmod a=rwx myFile.txt chmod 777 myFile.txt ``` You can add or remove a specific permission for a scope ``` chmod u+x myFile.txt chmod u-x myFile.txt ``` TODO: `setfacl` - for working with ACLs ## Change ownership of a file ``` chown peter myFile.txt chgrp myAppUsers myFile.txt ``` ## Execute a command with elevated rights elevated ``` sudo commandname ``` `su` - switch user