Bash/Quick
From charlesreid1
Contents
Syntax
Defining functions
function dostuff() {
if [[ -f "${DIR}" ]]; then
echo "${DIR} exists!"
fi
}
dostuff
Usage function
function usage() {
echo ""
echo "Title: A Brief Description"
echo ""
echo "Tell the user how to use the script."
echo "Give them a simple example to copy and paste."
echo ""
exit 1;
}
if (( $# == 0 )); then
echo "Use the default"
elif (( $# == 1 )); then
echo "Use $1"
else
usage
fi
DevOps
Creating a new user
The quick and dirty guide to creating a new user:
Use -s to specify shell
Use -d to specify home directory
Use -G to specify groups
useradd creates the user, usermod modifies the user
USERN="florence" # create new user with specified shell and home dir useradd -s /bin/bash -d /home/$USERN $USERN # add to group1 and group2 usermod -a -G group1,group2 $USERN # add to sudo group usermod -a -G sudo $USERN
Now the user will need to log out and log back in to be able to use sudo command.
To make it passwordless (as on AWS nodes), you can add the following line to a new file in the directory /etc/sudoers.d/, which is sourced by the sudoers file:
echo "${USERN} ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/${USERN}
Finally, if you're on AWS, you are using a public key associated with that AWS node that allows you to connect to it via SSH. You need to include a copy of the private key in the SSH folder of the new user, so that you can use the private key to SSH in as that user.
Copy the contents of ~/.ssh/authorized_keys from the pre-configured ubuntu user into the file ~/.ssh/authorized_keys for the new user.
Once you're able to log in as the new user, associate it with a Github account by adding the public SSH key for the new account to your Github account's list of trusted SSH keys.
cat ~/.ssh/id_rsa.pub
the contents of this file should be copied and pasted into a new key in your Github account's settings.
Patterns
Check if root user
Use $(id -u) to get the UID. the UID will be 0 if the user is root.
if [ "$(id -u)" != "0" ]; then
echo ""
echo ""
echo "This script should be run as root."
echo ""
echo ""
exit 1;
fi
Flags
| GNU/Linux/Unix the concrete that makes the foundations of the internet.
Compiling Software · Upgrading Software Category:Build Tools · Make · Cmake · Gdb Bash Bash · Bash/Quick (Quick Reference) · Bash Math Text Editors Text Manipulation Command Line Utilities Aptitude · Diff · Make · Patch · Subversion · Xargs Security SSH (Secure Shell) · Gpg (Gnu Privacy Guard) · Category:Security Networking Linux/SSH · Linux/Networking · Linux/File Server Web Servers
|