User management
Add new user
- TO DO
Modify existing user: usermod
http://www.tecmint.com/usermod-command-examples/
After creating user accounts, in some scenarios where we need to change the attributes of an existing user such as, change user’s home directory, login name, login shell, password expiry date, etc, where in such case ‘usermod’ command is used.
When we execute ‘usermod‘ command in terminal, the following files are used and affected.
/etc/passwd – User account information.
/etc/shadow – Secure account information.
/etc/group – Group account information.
/etc/gshadow – Secure group account information.
/etc/login.defs – Shadow password suite configuration..
usermod [options] username
- check which groups does user belongs to:
groups <username>
- Find out if user exists or not by searching
/etc/passwd
file
grep username /etc/passwd
- Find out if group exists in
/etc/group
file
grep groupname /etc/group
- use
id
command
id ec2-user
uid=516(tom) gid=516(tom) groups=516(tom)
Linux System Configuration
difference between bash.bashrc and /etc/environment file
http://askubuntu.com/questions/150789/difference-between-bash-bashrc-and-etc-environment-file
Configuration files located in the /etc directory apply to all users on the system. For /etc/bash.bashrc this would mean to all and everything that's using the "Borne Again SHell" aka Bash on that machine. Even if you're the only human using it, there could be "technical users" affected (simply take a look into the /etc/passwd and check how often the term "/bin/bash" is stated there -- or use grep bash /etc/passwd | wc -l, which should give you that number directly (meaning: "grab" all lines containing the string "bash" from the file "/etc/passwd", and send the results ("|") to the command "wc" (word count) to count the lines ("-l").
So for your user, it is much safer to modify ~/.bashrc instead (meaning the file ".bashrc" -- with a leading dot, yes -- in your home-directory, e.g. /home/ankur/.bashrc), which then just affects your user and leaves everything else alone. Files in /etc should only be changed if system-wide changes are really intended.
Besides: Both configurations will be used if they exist. First, the system-wide file (here: /etc/bash.bashrc) is read and "sourced" (it's settings applied to the current session), and then the users /home/username/.bashrc is handled the same, and thus can add to or even change/overwrite settings from the global /etc/bash.bashrc file.
Bash Shell Configuration and Modification
Shell configuration file: /etc/profile, ~/.bash_profile, ~/.profile, ~/.bashrc
To change the environmental variable "permanently" you'll need to consider at least these situations:
- Login/Non-login shell
- Interactive/Non-interactive shell
Bash as login shell will load /etc/profile, ~/.bash_profile, ~/.bash_login, ~/.profile in the order
Bash as non-login interactive shell will load ~/.bashrc
Bash as non-login non-interactive shell will load the configuration specified in environment variable $BASH_ENV
# Example ~/.bash_profile file:
export AWS_ACCESS_KEY_ID=AKIAJSPAPOYLJJUEI6IA
export AWS_SECRET_ACCESS_KEY=ws41Nevf5ihDvOJW4yYRA8xY/gLbSfJVMBNG+gCO
export AWS_DEFAULT_REGION=us-east-1
# added by Anaconda2 2.4.1 installer
export PATH="/Users/abrocod/anaconda/bin:$PATH"
# Setting PATH for Python 3.5
# The orginal version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/3.5/bin:${PATH}"
export PATH
export LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64/lib
Linux System Configuration
For alll user
Use /etc/profile
For single user
Use ~/.bash_profile
~/.bash_profile is a startup script which generally runs once. This particular file is used for commands which run when the normal user logs in. Common uses for .bash_profile are to set environment variables such as PATH, JAVA_HOME, to create aliases for shell commands, and to set the default permissions for newly created files.
The lines within .bash_profile
will look like:
export JAVA_HOME=/usr/java/jdk1.5.0_07/bin/java
export PATH=$PATH:/usr/java/jdk1.5.0_07/bin
export PATH="/Users/user_name/Local/spark-1.6.2-bin-hadoop2.6/bin:$PATH"
Switch between different python environment
# added by Anaconda2 4.0.0 installer
function use_python2() {
export PATH="//anaconda/bin:$PATH"
}
# added by Anaconda3 4.1.1 installer
function use_python3() {
export PATH="/Users/user_name/anaconda3/bin:$PATH"
}
# By default use Python 2
use_python2