############
Creating Users
############

useradd—————

create a user with default home directory
useradd -m <username>

Create a user with different home directory
useradd -m -d <directoy> <username>

Create A User With An Expiry Date
useradd -e 2016-02-05 <username>
###note The date must be specified in the format YYYY-MM-DD

How To Create A User And Assign It To A Group
useradd -m <username> -G <group>

Force Creation Of A User Without A Home Folder
useradd -M <username>

Adjusting Login Defaults Within Linux
The file /etc/login.defs is a configuration file which provides the default behavior for login activities.

sudo nano /etc/login.defs

The login.defs file contains the following settings which you might want to change:

PASS_MAX_DAYS – how long before a password expires
PASS_MIN_DAYS – how often can a password be changed
PASS_WARN_AGE – number of days warning before a password expires
LOGIN_RETRIES – number of login attempts before failure
LOGIN_TIMEOUT – how long is it before the login times out.
DEFAULT_HOME – can a user login if no home folder exists
Note that these are the default options and they can be overridden when creating a new user.

groupadd—————–

moduser——————

add user to a group
usermod -aG <group> <username>

############
Files, Directories, and Permissions
############

delete a directory—-

rm -rfR <directory>

Create a directory—-

mkdir <directory>

Folders with limited size——-
https://askubuntu.com/questions/841282/how-to-set-a-file-size-limit-for-a-directory

set folder permissions——-

to give all permissions but limit delete
chmod +t <directory> #### sticky bit so that only file owner can rename or delete the file.
chmod 777 #### set all users read write execute

Recursive folder permission changes
– for directories # find /opt/lampp/htdocs -type d -exec chmod 755 {} \;
– for the folders # find /opt/lampp/htdocs -type f -exec chmod 644 {} \;

The group ownership can be inherited by new files and folders created in your folder /path/to/parent by setting the setgid bit using chmod g+s like this:

# chmod g+s /path/to/parent

Sticky Bit Special Permissions (or limiting delete) ———

The sticky bit can be very useful in shared environment because when it has been assigned to the permissions on a directory it sets it so only file owner can rename or delete the said file.

To set the sticky bit on a directory named dir1 you would issue the command chmod +t dir1.

https://www.linux.com/learn/understanding-linux-file-permissions

Using umask ——–

Octal value : Permission
0 : read, write and execute
1 : read and write
2 : read and execute
3 : read only
4 : write and execute
5 : write only
6 : execute only
7 : no permissions

if umask is set to 077, the permission can be calculated as follows:

Bit Targeted at File permission
0 Owner read, write and execute
7 Group No permissions
7 Others No permissions

Set the default umask in /etc/profile
” non-root users is 0037, while the root user has a UMASK of 0007″

if [ $UID -gt 199 ] && [ “`/usr/bin/id -gn`” = “`/usr/bin/id -un`” ]; then
umask 037 ## <—- this one is for most users
else
umask 007 ## <—- this is for root
fi

###########
Apache
###########

/etc/httpd/conf.d/welcome.conf

https://www.digitalocean.com/community/tutorials/how-to-set-up-apache-virtual-hosts-on-centos-7

https://www.digitalocean.com/community/tutorials/how-to-set-up-apache-virtual-hosts-on-centos-6

adding subdomains———–
http://vikrant_labde.blogspot.com/2005/02/how-to-create-subdomains-by-editing.html

https———
https://wiki.centos.org/HowTos/Https

##########
cronjobs
##########

https://code.tutsplus.com/tutorials/scheduling-tasks-with-cron-jobs–net-8800

#########
IPtables
#########

###########
MySQL
###########

Handy MySQL Commands———
http://g2pc1.bu.edu/~qzpeng/manual/MySQL%20Commands.htm

Reset root password———-

https://www.howtoforge.com/setting-changing-resetting-mysql-root-passwords

change engine——
“Modify the MySQL table employees in the MSJ419 database to use the MyISAM storage engine instead of InnoDB.”
ALTER TABLE my_table ENGINE = MyISAM;

##########
Networking
##########

Wget dl test—-
http://cloudtestfiles.net/
wget <url> -O /dev/null

Flush IPs—

ip addr del 10.22.30.44/16 dev eth0

To remove all addresses (in case you have multiple):

ip addr flush dev eth0

CentOS——

# ifconfig eth0 206.190.152.4 netmask 255.255.255.128

# route add default gw 206.190.152.1

# nano /etc/sysconfig/network

NETWORKING=yes
HOSTNAME=465715.mpdedicated.com
GATEWAY=206.190.135.105

# nano /etc/sysconfig/network-scripts/ifcfg-eth0

IPADDR=206.190.135.108
NETMASK=255.255.255.248
GATEWAY=

# nano /etc/resolv.conf

nameserver 8.8.4.4
nameserver 8.8.8.8

Additional IPs

# nano /etc/sysconfig/network-scripts/ifcfg-eth1-range2

IPADDR_START=’206.190.144.36′
IPADDR_END=’206.190.144.38′
CLONENUM_START=’36’

###################
System Performance and Tuning
###################

Setting the swap space usage (swappiness)———-

To check the current swappiness value
# cat /proc/sys/vm/swappiness

To change the value
# echo 50 > /proc/sys/vm/swappiness

To make the changes affect
# sysctl -p

Verify the new parameter
# sysctl -a | grep swappiness

to set user limits———–

nano /etc/security/limits.conf

example
<username> soft nproc 2047
<username> hard nproc 16384

disable or enable sys cookies———–

nano /etc/sysctl.conf

add the line
net.ipv4.tcp_syncookies = 1 #<—– to enable
net.ipv4.tcp_syncookies = 0 #<—– to disable

then to use new setttings
sysctl -p

Using sysctl command you will see the kernel configurations at runtime. In order to check if tcp_syncookies (net.ipv4.tcp_syncookies) is activated or not, run this coommand:

sysctl -n net.ipv4.tcp_syncookies
1 = on 0 = off

disable ping requests————

nano /etc/sysctl.conf
net.ipv4.icmp_echo_ignore_all = 1

sysctl -p

Core dump——–

nano /etc/security/limits.conf

example
<username> hard core <limit in kb> #<—— see process limits