# EX-200 - Red Hat Certified System Administrator

# Setup

home vms

192.168.50.164

192.168.50.105

work vms

192.168.17.185

192.168.17.208

Hyper V

Disable secureboot

Proxmox (host) (wget command from red hat site) &gt; download &gt; f12 &gt; network &gt; copy cURL &gt; trim it

curl -L \\   
<span> </span>-H "Cookie: rh\_user\_id=59291558; rh\_sso\_session=1" \\

<span> </span>-o /var/lib/vz/template/iso/rhel-9.8-x86\_64-dvd.iso \\  
"[https://access.cdn.redhat.com/content/origin/files/sha256/c0/c0dd53b73406b85b40d6168d1748e605d71361b2992d282c408b7d7d2e1d2c80/rhel-9.8-x86\_64-dvd.iso?\_auth\_=1782441220\_ea8eb57265125e48f98b84775988df3d](https://access.cdn.redhat.com/content/origin/files/sha256/c0/c0dd53b73406b85b40d6168d1748e605d71361b2992d282c408b7d7d2e1d2c80/rhel-9.8-x86_64-dvd.iso?_auth_=1782441220_ea8eb57265125e48f98b84775988df3d)"

<span> </span>

<div id="bkmrk-64gb-disk-2048mb-mem" style="direction:ltr;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:15.0638in;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:15.0638in;">- <span style="font-family:Consolas;font-size:10pt;">64gb disk</span>
- <span style="font-family:Consolas;font-size:10pt;">2048mb memory</span>
- <span style="font-family:Consolas;font-size:10pt;">1 socket 2 cores cpu</span>
- <span style="font-family:Consolas;font-size:10pt;">Disable screen timeout</span>

</div></div></div>RHC Connect (needed package commands)

rhc connect

username: nicksotelo95

password: RHELsolomon5!!

Set Hostname

<div id="bkmrk-hostnamectl-set-host" style="direction:ltr;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:15.0638in;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:15.0638in;"><div style="direction:ltr;"><table style="direction:ltr;border-collapse:collapse;border:1pt solid #A3A3A3;" title=""><tbody><tr><td style="vertical-align:top;width:2.9013in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">hostnamectl set-hostname &lt;hostname&gt;

</td><td style="vertical-align:top;width:1.0625in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">set hostname

</td></tr></tbody></table>

</div></div></div></div>Set Time Zone

<div id="bkmrk-timedatectl-show-tim" style="direction:ltr;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:15.0638in;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:15.0638in;"><div style="direction:ltr;"><table style="direction:ltr;border-collapse:collapse;border:1pt solid #A3A3A3;" title=""><tbody><tr><td style="vertical-align:top;width:3.3402in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">timedatectl

</td><td style="vertical-align:top;width:2.9222in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">show timedate info

</td></tr><tr><td style="vertical-align:top;width:3.3402in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">timedatectl list-timezones

</td><td style="vertical-align:top;width:2.9222in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">list all timezones

</td></tr><tr><td style="vertical-align:top;width:3.3597in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">timedatectl set-timezone Australia/Sydney

</td><td style="vertical-align:top;width:2.9027in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">set timezone to Sydney

</td></tr><tr><td style="vertical-align:top;width:3.3402in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">timedatectl set-ntp true

</td><td style="vertical-align:top;width:2.9222in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;"></td></tr><tr><td style="vertical-align:top;width:3.3402in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">chronyd

</td><td style="vertical-align:top;width:2.9909in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">service used for time synchronisation

</td></tr><tr><td style="vertical-align:top;width:3.3402in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">/etc/chronyd.conf

</td><td style="vertical-align:top;width:2.9222in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">config file

</td></tr><tr><td style="vertical-align:top;width:3.3402in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">/var/log/chrony

</td><td style="vertical-align:top;width:2.9222in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">log file

</td></tr><tr><td style="vertical-align:top;width:3.3402in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">systemctl start/restart chronyd

</td><td style="vertical-align:top;width:2.9222in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">start/restart chronyd service

</td></tr><tr><td style="vertical-align:top;width:3.3402in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">chronyc

</td><td style="vertical-align:top;width:2.9222in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">program command

</td></tr><tr><td style="vertical-align:top;width:3.3402in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">rpm -qa | grep chrony

</td><td style="vertical-align:top;width:2.9222in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">verify it is installed

</td></tr><tr><td style="vertical-align:top;width:3.3402in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">ps -ef | grep chrony

</td><td style="vertical-align:top;width:2.9222in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">verify it is running

</td></tr><tr><td style="vertical-align:top;width:3.3402in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">yum install chrony

</td><td style="vertical-align:top;width:2.9222in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">if it is not installed

</td></tr></tbody></table>

</div></div></div></div>Subscription Manager Repositories

<div id="bkmrk-sudo-dnf-repolist-ch" style="direction:ltr;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:15.0638in;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:15.0638in;"><div style="direction:ltr;"><table style="direction:ltr;border-collapse:collapse;border:1pt solid #A3A3A3;" title=""><tbody><tr><td style="vertical-align:top;width:9.5409in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">sudo dnf repolist

</td><td style="vertical-align:top;width:4.1208in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">check which repositories are installed

</td></tr><tr><td style="vertical-align:top;width:9.5409in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">subscription-manager repos --enable codeready-builder-for-rhel-10-x86\_64-rpms

</td><td style="vertical-align:top;width:4.1208in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">enable codeready linux builder repository

</td></tr><tr><td style="vertical-align:top;width:9.5409in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">dnf install [https://dl.fedoraproject.org/pub/epel/epel-release-latest-10.noarch.rpm](https://dl.fedoraproject.org/pub/epel/epel-release-latest-10.noarch.rpm)

</td><td style="vertical-align:top;width:4.1208in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">[install EPEL](https://www.redhat.com/en/blog/install-epel-linux)

</td></tr><tr><td style="vertical-align:top;width:9.5409in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">sudo dnf install --nogpgcheck [https://mirrors.rpmfusion.org/free/el/rpmfusion-free-release-$(rpm](https://mirrors.rpmfusion.org/free/el/rpmfusion-free-release-%24(rpm) -E %rhel).noarch.rpm [https://mirrors.rpmfusion.org/nonfree/el/rpmfusion-nonfree-release-$(rpm](https://mirrors.rpmfusion.org/nonfree/el/rpmfusion-nonfree-release-%24(rpm) -E %rhel).noarch.rpm

</td><td style="vertical-align:top;width:4.1208in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">[install rpmfusion](https://rpmfusion.org/Configuration)

</td></tr></tbody></table>

</div></div></div></div>Remote access without password (SSH keys)

<div id="bkmrk-needed-for-repetitiv" style="direction:ltr;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:15.0638in;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:15.0638in;">- <span style="font-family:Consolas;font-size:10pt;color:#0070c0;">Needed for repetitive logins or automation via scripts</span>
- <span style="font-family:Consolas;font-size:10pt;color:#0070c0;">Keys are generated at the user level (nsotelo, root)</span>
- <span style="font-family:Consolas;font-size:10pt;color:#0070c0;">Install Git Bash for ssh-copy-id to work</span>
- <span style="font-family:Consolas;font-size:10pt;color:#0070c0;">Powershell will then connect without password</span>

</div></div></div><div id="bkmrk-ssh-keygen-generate-" style="direction:ltr;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:15.0638in;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:15.0638in;"><div style="direction:ltr;"><table style="direction:ltr;border-collapse:collapse;border:1pt solid rgb(163,163,163);width:34.2988%;height:120.333px;" title=""><tbody><tr style="height:25.5333px;"><td style="vertical-align:top;width:0%;padding:2pt 3pt;border:1pt solid rgb(163,163,163);height:25.5333px;">ssh-keygen

</td><td style="vertical-align:top;width:0%;padding:2pt 3pt;border:1pt solid rgb(163,163,163);height:25.5333px;">generate the key

</td></tr><tr style="height:44.7333px;"><td style="vertical-align:top;width:0%;padding:2pt 3pt;border:1pt solid rgb(163,163,163);height:44.7333px;">ssh-copy-id root@192.168.1.X

</td><td style="vertical-align:top;width:0%;padding:2pt 3pt;border:1pt solid rgb(163,163,163);height:44.7333px;">copy the key to the host

</td></tr><tr style="height:24.5333px;"><td style="vertical-align:top;width:0%;padding:2pt 3pt;border:1pt solid rgb(163,163,163);height:24.5333px;">ssh root @192.168.1.X

</td><td rowspan="2" style="vertical-align:top;width:0%;padding:2pt 3pt;border:1pt solid rgb(163,163,163);height:50.0666px;">login to remote host

</td></tr><tr style="height:25.5333px;"><td style="vertical-align:top;width:0%;padding:2pt 3pt;border:1pt solid rgb(163,163,163);height:25.5333px;">ssh -1 root 192.168.1.X

</td></tr></tbody></table>

</div></div></div></div>

# File Management

<div id="bkmrk-linux-filesystems%3Aex" style="direction:ltr;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:11.293in;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:11.293in;"><div style="direction:ltr;"><table style="direction:ltr;border-collapse:collapse;border:1pt solid #A3A3A3;" title=""><tbody><tr><td style="vertical-align:top;width:1.6187in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">Linux Filesystems:  
ext3

ext4

xfs

</td><td style="vertical-align:top;width:1.7034in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">Windows Filesystems:  
NTFS  
FAT

</td></tr></tbody></table>

</div></div></div></div>Basic Commands

<div id="bkmrk-pwd-print-working-di" style="direction:ltr;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:11.293in;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:11.293in;"><div style="direction:ltr;"><table style="direction:ltr;border-collapse:collapse;border:1pt solid #A3A3A3;" title=""><tbody><tr><td style="vertical-align:top;width:0.9729in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">pwd

</td><td style="vertical-align:top;width:3.1506in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">print working directory

</td></tr><tr><td style="vertical-align:top;width:0.9729in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">cd

</td><td rowspan="2" style="vertical-align:top;width:3.2201in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">home directory (/home/username) or /root

</td></tr><tr><td style="vertical-align:top;width:0.7041in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">~

</td></tr><tr><td style="vertical-align:top;width:0.9729in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">/

</td><td style="vertical-align:top;width:3.1506in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">root directory (absolute)

</td></tr><tr><td style="vertical-align:top;width:0.9729in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">~

</td><td style="vertical-align:top;width:3.1506in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">user directory (/home/username)

</td></tr><tr><td style="vertical-align:top;width:0.9729in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">.

</td><td style="vertical-align:top;width:3.1506in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">current directory (relative)

</td></tr><tr><td style="vertical-align:top;width:0.9729in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">..

</td><td style="vertical-align:top;width:3.1506in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">parent directory (relative)

</td></tr><tr><td style="vertical-align:top;width:0.9729in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">ls

</td><td style="vertical-align:top;width:3.1506in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">show directory contents

</td></tr><tr><td style="vertical-align:top;width:0.9729in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">ls -l

</td><td style="vertical-align:top;width:3.1506in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">show directory contents (list view)

</td></tr><tr><td style="vertical-align:top;width:0.9923in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">ls -ltriah

</td><td style="vertical-align:top;width:3.1319in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">show directory contents (list view)

-l long

-t time sorted (-S for size sorted)

-r reverse

-i inode

-a show hidden files

-h human readable file sizes

</td></tr></tbody></table>

</div><div style="direction:ltr;"><table style="direction:ltr;border-collapse:collapse;border:1pt solid #A3A3A3;" title=""><tbody><tr><td style="vertical-align:top;width:0.9729in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">Type

</td><td style="vertical-align:top;width:0.9923in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">\# of Links

</td><td style="vertical-align:top;width:0.9923in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">User Owner

</td><td style="vertical-align:top;width:1.0687in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">Group Owner

</td><td style="vertical-align:top;width:0.6673in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">Size

</td><td style="vertical-align:top;width:0.6673in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">Month

</td><td style="vertical-align:top;width:0.6673in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">Day

</td><td style="vertical-align:top;width:0.6673in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">Time

</td><td style="vertical-align:top;width:1.2145in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">Namedrwxr-xr-x

</td></tr><tr><td style="vertical-align:top;width:0.9923in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">drwxr-xr-x

</td><td style="vertical-align:top;width:0.9729in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">21

</td><td style="vertical-align:top;width:0.9729in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">root

</td><td style="vertical-align:top;width:1.0493in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">root

</td><td style="vertical-align:top;width:0.6673in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">4096

</td><td style="vertical-align:top;width:0.6673in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">Feb

</td><td style="vertical-align:top;width:0.6673in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">27

</td><td style="vertical-align:top;width:0.6673in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">13:33

</td><td style="vertical-align:top;width:0.7805in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">var

</td></tr><tr><td style="vertical-align:top;width:0.9923in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">lrwxrwxrwx

</td><td style="vertical-align:top;width:0.9729in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">1

</td><td style="vertical-align:top;width:0.9729in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">root

</td><td style="vertical-align:top;width:1.0493in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">root

</td><td style="vertical-align:top;width:0.6673in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">7

</td><td style="vertical-align:top;width:0.6673in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">Feb

</td><td style="vertical-align:top;width:0.6673in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">27

</td><td style="vertical-align:top;width:0.6673in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">13:15

</td><td style="vertical-align:top;width:0.7805in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">bin

</td></tr><tr><td style="vertical-align:top;width:0.9923in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">-rw-r--r--

</td><td style="vertical-align:top;width:0.9729in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">1

</td><td style="vertical-align:top;width:0.9729in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">root

</td><td style="vertical-align:top;width:1.0493in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">root

</td><td style="vertical-align:top;width:0.6673in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">0

</td><td style="vertical-align:top;width:0.6673in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">Mar

</td><td style="vertical-align:top;width:0.6673in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">2

</td><td style="vertical-align:top;width:0.6673in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">11:15

</td><td style="vertical-align:top;width:1.1104in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">testfile

</td></tr></tbody></table>

</div><div style="direction:ltr;"><table style="direction:ltr;border-collapse:collapse;border:1pt solid #A3A3A3;" title=""><tbody><tr><td style="vertical-align:top;width:0.7659in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">d

</td><td style="vertical-align:top;width:0.8527in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">directory

</td></tr><tr><td style="vertical-align:top;width:0.7659in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">l

</td><td style="vertical-align:top;width:0.784in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">link

</td></tr><tr><td style="vertical-align:top;width:0.8437in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">- -

</td><td style="vertical-align:top;width:0.7284in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">file

</td></tr></tbody></table>

</div></div></div></div>Creating Files and Directories

<div id="bkmrk-touch-filename-creat" style="direction:ltr;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:11.293in;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:11.293in;"><div style="direction:ltr;"><table style="direction:ltr;border-collapse:collapse;border:1pt solid #A3A3A3;" title=""><tbody><tr><td style="vertical-align:top;width:2.8819in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">touch filename

</td><td style="vertical-align:top;width:3.227in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">create file

</td></tr><tr><td style="vertical-align:top;width:2.8819in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">rm filename

</td><td style="vertical-align:top;width:3.227in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">remove file

</td></tr><tr><td style="vertical-align:top;width:2.8819in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">cp filename newfilename

</td><td style="vertical-align:top;width:3.227in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">copy file and name it

</td></tr><tr><td style="vertical-align:top;width:2.8819in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">cp filename /tmp

</td><td style="vertical-align:top;width:3.227in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">copy file to /tmp

</td></tr><tr><td style="vertical-align:top;width:2.8819in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">mv filename newfilename

</td><td style="vertical-align:top;width:3.227in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">renames the file

</td></tr><tr><td style="vertical-align:top;width:2.8819in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">mv filename /tmp

</td><td style="vertical-align:top;width:3.227in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">move file to /tmp

</td></tr><tr><td style="vertical-align:top;width:2.8819in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">mkdir dirname

</td><td style="vertical-align:top;width:3.227in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">create directory

</td></tr><tr><td style="vertical-align:top;width:2.8819in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">rmdir dirname

</td><td style="vertical-align:top;width:3.227in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">remove directory

</td></tr><tr><td style="vertical-align:top;width:2.8819in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">rm -r dirname

</td><td style="vertical-align:top;width:3.227in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">remove directory

</td></tr><tr><td style="vertical-align:top;width:2.8819in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">chgrp groupowner filename

</td><td style="vertical-align:top;width:3.227in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">change the group owner of a file

</td></tr><tr><td style="vertical-align:top;width:2.8819in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">chown userowner filename

</td><td style="vertical-align:top;width:3.227in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">change the user owner of a file

</td></tr><tr><td style="vertical-align:top;width:2.9013in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">chown userowner:groupowner filename

</td><td style="vertical-align:top;width:3.277in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">change the user and group owner of a file

</td></tr><tr><td style="vertical-align:top;width:2.8819in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">echo "text" &gt; filename

</td><td style="vertical-align:top;width:3.227in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">insert the text into the file

</td></tr><tr><td style="vertical-align:top;width:2.8819in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">cat filename

</td><td style="vertical-align:top;width:3.227in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">display the text inside a file

</td></tr><tr><td style="vertical-align:top;width:2.8819in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">rm -rf

</td><td style="vertical-align:top;width:3.227in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">remove directory (recursive) (force)

</td></tr></tbody></table>

</div></div></div></div>Searching Files and Directories

<div id="bkmrk-nsotelo%40rhel-pc%3A%7E%24-f" style="direction:ltr;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:11.293in;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:11.293in;"><div style="direction:ltr;"><table style="direction:ltr;border-collapse:collapse;border:1pt solid #A3A3A3;" title=""><tbody><tr><td style="vertical-align:top;width:4.5048in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">nsotelo@rhel-pc:~$ find / -name "\*ksh\*.rpm" 2&gt; /dev/null

</td><td style="vertical-align:top;width:6.3319in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">search file or directory names for items containing name ksh and ending with .rpm

stderr to /dev/null

</td></tr><tr><td style="vertical-align:top;width:4.4854in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">grep -ri error /var/log/ 2&gt; /dev/null | wc -l

</td><td style="vertical-align:top;width:6.2819in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">search file contents for key words

-c count

-r recursive

-i ignore case sensitive

-n display matched lines and their line numbers

-v all except specified

wc -l word count lines only

</td></tr><tr><td style="vertical-align:top;width:4.4854in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">egrep -i "keyword|keyword2" /var/log

</td><td style="vertical-align:top;width:6.2819in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">search file contents for two key words

</td></tr><tr><td style="vertical-align:top;width:4.4854in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">find /etc -name "\*.conf\*" | xargs grep "localhost"

</td><td style="vertical-align:top;width:6.2819in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">combination of above commands (output of find translated and input to grep

</td></tr></tbody></table>

</div></div></div></div>Soft and Hard Links

<div id="bkmrk-inode---pointer-of-n" style="direction:ltr;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:11.293in;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:11.293in;">- <span style="font-family:Consolas;font-size:10pt;">inode - pointer of number of a file on the disk</span>
- <span style="font-family:Consolas;font-size:10pt;">soft link - link will be removed if the file is removed or renamed</span>
- <span style="font-family:Consolas;font-size:10pt;">hard link - deleting, renaming or moving the original file will not affect the hard link</span>

<div style="direction:ltr;"><table style="direction:ltr;border-collapse:collapse;border:1pt solid #A3A3A3;" title=""><tbody><tr><td style="vertical-align:top;width:1.7368in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">ln /location/file

</td><td style="vertical-align:top;width:2.3805in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">creates a hard link to a file

</td></tr><tr><td style="vertical-align:top;width:1.7555in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">ln -s /location/file

</td><td style="vertical-align:top;width:2.3611in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">creates a soft link to a file

</td></tr></tbody></table>

</div></div></div></div>Soft Link Example (Hard link may return an error has both directories must be on the same partition)

touch hulk

cd /tmp

/tmp $ ln -s /home/nsotelo/hulk

Input and Output Redirects (3 Redirects)

<div id="bkmrk-standard-input-%28stdi" style="direction:ltr;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:11.293in;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:11.293in;"><div style="direction:ltr;"><table style="direction:ltr;border-collapse:collapse;border:1pt solid #A3A3A3;" title=""><tbody><tr><td style="vertical-align:top;width:3.7979in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">standard input (stdin) with file descriptor 0

</td><td style="vertical-align:top;width:4.1034in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">ls &gt;&gt; listings

</td><td style="vertical-align:top;width:3.2763in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">appends the output of ls to listings file

</td></tr><tr><td style="vertical-align:top;width:3.8173in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">standard output (stdout) with file descriptor 1

</td><td style="vertical-align:top;width:4.1034in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">cat &lt; listings

</td><td style="vertical-align:top;width:3.1243in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">feeds file contents to a file

</td></tr><tr><td style="vertical-align:top;width:3.8173in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">standard output (stdout) with file descriptor 1

</td><td style="vertical-align:top;width:4.1229in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">mail -s "office memo" allusers@abc.com &lt; memoletter

</td><td style="vertical-align:top;width:3.1055in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">feeds file contents to a file

</td></tr><tr><td style="vertical-align:top;width:3.7979in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">standard error (stderr) with file descriptor 2

</td><td style="vertical-align:top;width:4.1034in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">ls -l /root 2&gt; errorfile

</td><td style="vertical-align:top;width:3.1722in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">outputs the error message to errorfile

</td></tr></tbody></table>

</div></div></div></div>Pipes

Connects the output of one command directly to the input of another command

ls -ltr | more

ll | tail -l

# File Editor

Text Editors

<div id="bkmrk-ed-%281969%29-original%2C-" style="direction:ltr;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:7.2527in;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:7.2527in;"><div style="direction:ltr;"><table style="direction:ltr;border-collapse:collapse;border:1pt solid #A3A3A3;" title=""><tbody><tr><td style="vertical-align:top;width:1.1256in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">ed (1969)

</td><td style="vertical-align:top;width:5.9638in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">original, line oriented standard for<span> </span>Unix

</td></tr><tr><td style="vertical-align:top;width:1.1256in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">ex (1976)

</td><td style="vertical-align:top;width:6.0333in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">extended, more powerful version of ed, introduced visual mode for full screen editing

</td></tr><tr><td style="vertical-align:top;width:1.1256in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">vi (1976)

</td><td style="vertical-align:top;width:5.9638in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">classic, efficient, visual full-screen editor built on top of ex

</td></tr><tr><td style="vertical-align:top;width:1.1451in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">emacs (1976)

</td><td style="vertical-align:top;width:5.9444in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">extensible, feature-rich ecosystem known for customisation

</td></tr><tr><td style="vertical-align:top;width:1.1256in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">pico (1992)

</td><td style="vertical-align:top;width:5.9638in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">simple, menu-driven, for non-technical users

</td></tr><tr><td style="vertical-align:top;width:1.1256in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">vim (1991)

</td><td style="vertical-align:top;width:5.9638in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">improved and advanced version of vi, with modern features

</td></tr><tr><td style="vertical-align:top;width:1.1256in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">nano (1999)

</td><td style="vertical-align:top;width:5.9638in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">free open source clone of pico

</td></tr></tbody></table>

</div></div></div></div><div id="bkmrk-echo-%27export-editor%3D" style="direction:ltr;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:7.2527in;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:7.2527in;"><div style="direction:ltr;"><table style="direction:ltr;border-collapse:collapse;border:1pt solid #A3A3A3;" title=""><tbody><tr><td style="vertical-align:top;width:3.1305in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">echo 'export EDITOR=nano' &gt;&gt; ~/.bashrc

</td><td style="vertical-align:top;width:2.5138in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">set nano as default text editor

</td></tr></tbody></table>

</div></div></div></div>vi commands

<div id="bkmrk-mode-command-functio" style="direction:ltr;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:7.2527in;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:7.2527in;"><div style="direction:ltr;"><table style="direction:ltr;border-collapse:collapse;border:1pt solid #A3A3A3;" title=""><tbody><tr><td style="vertical-align:top;width:0.6673in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">mode

</td><td style="vertical-align:top;width:0.7631in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">command

</td><td style="vertical-align:top;width:1.75in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">function

</td></tr><tr><td style="vertical-align:top;width:0.6673in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">esc

</td><td style="vertical-align:top;width:0.7437in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">up

down

left

right

</td><td style="vertical-align:top;width:1.7694in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">move around

</td></tr><tr><td style="vertical-align:top;width:0.6673in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">esc

</td><td style="vertical-align:top;width:0.7631in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">shift g

</td><td style="vertical-align:top;width:1.75in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">move to end

</td></tr><tr><td style="vertical-align:top;width:0.6673in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">esc

</td><td style="vertical-align:top;width:0.7437in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;"><span style="font-weight:bold;">i</span>

</td><td style="vertical-align:top;width:1.7694in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;"><span style="font-weight:bold;">insert</span>

</td></tr><tr><td style="vertical-align:top;width:0.6868in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">insert

</td><td style="vertical-align:top;width:0.7437in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">a

</td><td style="vertical-align:top;width:1.9013in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">move right (and insert)

</td></tr><tr><td style="vertical-align:top;width:0.6868in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">insert

</td><td style="vertical-align:top;width:0.7437in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">o

</td><td style="vertical-align:top;width:1.9013in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">line break (and insert)

</td></tr><tr><td style="vertical-align:top;width:0.6868in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">insert

</td><td style="vertical-align:top;width:0.7437in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;"><span style="font-weight:bold;">esc</span>

</td><td style="vertical-align:top;width:1.7979in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;"><span style="font-weight:bold;">escape current mode</span>

</td></tr><tr><td style="vertical-align:top;width:0.6673in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">esc

</td><td style="vertical-align:top;width:0.7437in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">x

</td><td style="vertical-align:top;width:1.7736in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">remove character

</td></tr><tr><td style="vertical-align:top;width:0.6673in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">esc

</td><td style="vertical-align:top;width:0.7437in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">r

</td><td style="vertical-align:top;width:1.7979in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">replace character

</td></tr><tr><td style="vertical-align:top;width:0.6673in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">esc

</td><td style="vertical-align:top;width:0.7437in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">d

</td><td style="vertical-align:top;width:1.7694in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">delete line

</td></tr><tr><td style="vertical-align:top;width:0.6673in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">esc

</td><td style="vertical-align:top;width:0.7437in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">u

</td><td style="vertical-align:top;width:1.7694in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">bring line back

</td></tr><tr><td style="vertical-align:top;width:0.6673in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">esc

</td><td style="vertical-align:top;width:0.7437in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">:q!

</td><td style="vertical-align:top;width:1.7694in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">quit

</td></tr><tr><td style="vertical-align:top;width:0.6673in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">esc

</td><td style="vertical-align:top;width:0.7437in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">:wq!

</td><td style="vertical-align:top;width:1.7694in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">save and quit

</td></tr></tbody></table>

</div></div></div></div>nano commands

<div id="bkmrk-ctrl-o-save-current-" style="direction:ltr;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:7.2527in;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:7.2527in;"><div style="direction:ltr;"><table style="direction:ltr;border-collapse:collapse;border:1pt solid #A3A3A3;" title=""><tbody><tr><td style="vertical-align:top;width:0.6868in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">ctrl o

</td><td style="vertical-align:top;width:2.7847in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">save current file (write out)

</td></tr><tr><td style="vertical-align:top;width:0.6868in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">ctrl s

</td><td style="vertical-align:top;width:2.8541in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">save current file (newer versions)

</td></tr><tr><td style="vertical-align:top;width:0.6868in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">ctrl x

</td><td style="vertical-align:top;width:2.7847in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">exit

</td></tr><tr><td style="vertical-align:top;width:0.6868in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">ctrl w

</td><td style="vertical-align:top;width:2.7847in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">search for specific text

</td></tr><tr><td style="vertical-align:top;width:0.6868in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">ctrl \\

</td><td style="vertical-align:top;width:2.7847in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">find and replace

</td></tr><tr><td style="vertical-align:top;width:0.6868in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">ctrl k

</td><td style="vertical-align:top;width:2.7847in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">cut line

</td></tr><tr><td style="vertical-align:top;width:0.6868in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">ctrl u

</td><td style="vertical-align:top;width:2.7847in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">paste line

</td></tr><tr><td style="vertical-align:top;width:0.6673in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">alt 6

</td><td style="vertical-align:top;width:2.8041in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">copy line

</td></tr><tr><td style="vertical-align:top;width:0.6673in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">alt n

</td><td style="vertical-align:top;width:2.8041in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">toggle line numbers

</td></tr><tr><td style="vertical-align:top;width:0.6673in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">alt u

</td><td style="vertical-align:top;width:2.8041in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">undo

</td></tr><tr><td style="vertical-align:top;width:0.6673in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">alt e

</td><td style="vertical-align:top;width:2.8041in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">re-do

</td></tr></tbody></table>

</div></div></div></div>

# Shell Scripting

Basic Commands

<div id="bkmrk-echo-%240-display-curr" style="direction:ltr;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:8.4451in;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:8.4451in;"><div style="direction:ltr;"><table style="direction:ltr;border-collapse:collapse;border:1pt solid #A3A3A3;" title=""><tbody><tr><td style="vertical-align:top;width:2.118in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">echo $0

</td><td style="vertical-align:top;width:2.693in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">display current shell

</td></tr><tr><td style="vertical-align:top;width:2.118in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">cat /etc/shells

</td><td style="vertical-align:top;width:2.693in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">display available shells

</td></tr><tr><td style="vertical-align:top;width:2.118in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">cat /etc/passwd

</td><td style="vertical-align:top;width:2.7625in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">shows user's shell e.g. /bin/bash)

</td></tr><tr><td style="vertical-align:top;width:2.118in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">chmod a+x scriptname

</td><td style="vertical-align:top;width:2.693in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">allow execute permission for all

</td></tr><tr><td style="vertical-align:top;width:2.118in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">./script.bash

</td><td style="vertical-align:top;width:2.693in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">execute from current location

</td></tr><tr><td style="vertical-align:top;width:2.1375in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">/home/userdir/script.bash

</td><td style="vertical-align:top;width:2.6736in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">execute from absolute location

</td></tr></tbody></table>

</div></div></div></div>Script Components

<div id="bkmrk-%23%21%2Fbin%2Fbash-shell-%23-" style="direction:ltr;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:8.4451in;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:8.4451in;"><div style="direction:ltr;"><table style="direction:ltr;border-collapse:collapse;border:1pt solid #A3A3A3;" title=""><tbody><tr><td style="vertical-align:top;width:1.7368in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">\#!/bin/bash

</td><td style="vertical-align:top;width:0.784in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">Shell

</td></tr><tr><td style="vertical-align:top;width:1.7555in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">\# This script does X

</td><td style="vertical-align:top;width:0.7645in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">Comment

</td></tr><tr><td style="vertical-align:top;width:1.7368in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">echo/cp/grep

</td><td style="vertical-align:top;width:0.784in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">Command

</td></tr><tr><td style="vertical-align:top;width:1.7368in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">if/while/for

</td><td style="vertical-align:top;width:0.8527in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">Statement

</td></tr></tbody></table>

</div></div></div></div>Basic Scripts

nano output-screen

<div id="bkmrk-%23%21%2Fbin%2Fbash-%23-made-b" style="direction:ltr;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:8.4451in;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:8.4451in;"><div style="direction:ltr;"><table style="direction:ltr;border-collapse:collapse;border:1pt solid #A3A3A3;" title=""><tbody><tr><td style="vertical-align:top;width:2.0256in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">\#!/bin/bash

\# made by Nicolas Sotelo

whoami

echo

pwd

echo

hostname

echo

ls -ltr

echo

</td><td style="vertical-align:top;width:0.6812in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">shell

comment

command

space

</td></tr></tbody></table>

</div></div></div></div>Variables

nano variable-command

<div id="bkmrk-%23%21%2Fbin%2Fbash-a%3Dnicola" style="direction:ltr;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:8.4451in;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:8.4451in;"><div style="direction:ltr;"><table style="direction:ltr;border-collapse:collapse;border:1pt solid #A3A3A3;" title=""><tbody><tr><td style="vertical-align:top;width:2.2138in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">\#!/bin/bash

a=Nicolas

b=Sotelo

c="Linux Class"

echo "My first name is $a"

echo "My surname is $b"

echo "My class is $c"

</td><td style="vertical-align:top;width:3.0562in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">  
set variable  
  
  
echo variable

</td></tr></tbody></table>

</div></div></div></div>Input / Output

<div id="bkmrk-%23%21%2Fbin%2Fbashecho-hell" style="direction:ltr;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:8.4451in;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:8.4451in;"><div style="direction:ltr;"><table style="direction:ltr;border-collapse:collapse;border:1pt solid #A3A3A3;" title=""><tbody><tr><td style="vertical-align:top;width:3.0694in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">\#!/bin/bash  
echo Hello, my name is Nicolas Sotelo

echo

echo What is your name?

read namevar

echo

echo Hello $namevar

echo

</td><td style="vertical-align:top;width:3.0777in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">  
  
  
  
read sets variable to the user's input  
  
echo variable

</td></tr><tr><td style="vertical-align:top;width:3.0694in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">\#!/bin/bash  
hnvar=`hostname`  
echo Hello, my hostname is $hnvar  
echo

echo What is your name?

read namevar

echo

echo Hello $namevar

echo

</td><td style="vertical-align:top;width:3.0326in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">  
set variable as a `command`  
echo the output

</td></tr></tbody></table>

</div></div></div></div>If-then scripts

<div id="bkmrk-%23%21%2Fbin%2Fbashcount%3D100" style="direction:ltr;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:8.4451in;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:8.4451in;"><div style="direction:ltr;"><table style="direction:ltr;border-collapse:collapse;border:1pt solid #A3A3A3;" title=""><tbody><tr><td style="vertical-align:top;width:3.493in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">\#!/bin/bash  
count=100

if \[ $count -eq 100 \]

then

echo Count is 100

else

echo Count is not 100

fi

</td><td style="vertical-align:top;width:1.3979in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">  
  
  
  
  
  
  
end if statement

</td></tr><tr><td style="vertical-align:top;width:3.493in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">\#!/bin/bash

clear

if \[ -e /home/nsotelo/error.txt \]

then

echo "File exists"

else

echo "File does not exist"

fi

</td><td style="vertical-align:top;width:1.3527in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;"></td></tr><tr><td style="vertical-align:top;width:3.5118in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">\#!/bin/bash

clear

echo

echo "What is your name?"

echo

read namevar

echo

echo Hello $namevar sir

echo

echo "Do you like working in IT? (y/n)"

read Like

echo

if \[ "$Like" == "y" \]

then

echo "You are cool"

elif \[ "$Like" == "n" \]

then

echo "You should try IT, it's a good field"

echo

fi

</td><td style="vertical-align:top;width:1.3333in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;"></td></tr></tbody></table>

</div></div></div></div>For Loops

<div id="bkmrk-runs-repeatedly-unti" style="direction:ltr;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:8.4451in;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:8.4451in;">- <span style="font-family:Consolas;font-size:10pt;">Runs repeatedly until specified number of variables is met</span>

<div style="direction:ltr;"><table style="direction:ltr;border-collapse:collapse;border:1pt solid #A3A3A3;" title=""><tbody><tr><td style="vertical-align:top;width:4.027in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">\#!/bin/bash  
for numv in 1 2 3 4 5

do

echo "Welcome $numv times"

done

</td><td style="vertical-align:top;width:4.3in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">assign 1 2 3 4 5 to numv  
  
repeatedly display for each of the specified variables

</td></tr><tr><td style="vertical-align:top;width:4.027in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">\#!/bin/bash

for actionv in eat run jump play

do

echo "See Nick $actionv"

done

</td><td style="vertical-align:top;width:4.3in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">  
assign eat run jump play to actionv  
  
repeatedly display for each of the specified variables

</td></tr><tr><td style="vertical-align:top;width:4.027in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">\#!/bin/bash

for filev in {1..5}

do

touch $filev

done

</td><td style="vertical-align:top;width:4.2548in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">for loop to create 5 files named 1-5

</td></tr><tr><td style="vertical-align:top;width:4.027in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">\#!/bin/bash

for filev in {1..5}

do

rm $filev

done

</td><td style="vertical-align:top;width:4.2548in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">for loop to delete 5 files named 1-5

</td></tr><tr><td style="vertical-align:top;width:4.027in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">\#!/bin/bash

i=1

for day in Mon Tue Wed Thu Fri

do

echo "Weekday $((i++)): $day"

done

</td><td style="vertical-align:top;width:4.2548in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">specify days in for loop

</td></tr><tr><td style="vertical-align:top;width:4.0465in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">\#!/bin/bash

a=1

for username in `awk -F: '{print $1}' /etc/passwd`

do

echo "Username $((a++)) : $username"

done

</td><td style="vertical-align:top;width:4.2354in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">list all users one by one from /etc/passwd file

</td></tr></tbody></table>

</div></div></div></div>

# Scheduled Tasks

Scheduled Tasks

<div id="bkmrk-crontab--e-scheduled" style="direction:ltr;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:7.8972in;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:7.8972in;"><div style="direction:ltr;"><table style="direction:ltr;border-collapse:collapse;border:1pt solid #A3A3A3;" title=""><tbody><tr><td style="vertical-align:top;width:2.4611in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">crontab -e

</td><td style="vertical-align:top;width:5.2729in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">scheduled jobs  
-e edit

</td></tr><tr><td style="vertical-align:top;width:2.4611in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">at.

</td><td style="vertical-align:top;width:5.2729in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">scheduled one-off jobs

</td></tr><tr><td style="vertical-align:top;width:2.4611in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">\* \* \* \* \*

</td><td style="vertical-align:top;width:5.2729in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">minute<span> </span>(0-59), hour (0-23), day (1-31), month (1-12), week day (0-6)

</td></tr><tr><td style="vertical-align:top;width:2.4611in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">0 \* \* \* \* /home/user/script

</td><td style="vertical-align:top;width:5.2729in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">run every hour (at minute 0)

</td></tr><tr><td style="vertical-align:top;width:2.4611in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">0 0 \* \* \* /home/user/script

</td><td style="vertical-align:top;width:5.2729in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">run every day (at midnight)

</td></tr><tr><td style="vertical-align:top;width:2.4611in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">30 4 \* \* 1 /home/user/script

</td><td style="vertical-align:top;width:5.2729in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">run every Monday at 4:30 AM

</td></tr></tbody></table>

</div></div></div></div>

# Access Control

File Permissions

<div id="bkmrk-files-that-are-not-s" style="direction:ltr;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:6.9576in;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:6.9576in;">- <span style="font-family:Consolas;font-size:10pt;">Files that are not scripts do not have x</span>
- <span style="font-family:Consolas;font-size:10pt;">Directories have x because users can cd into them</span>

<div style="direction:ltr;"><table style="direction:ltr;border-collapse:collapse;border:1pt solid #A3A3A3;" title=""><tbody><tr><td style="vertical-align:top;width:0.6673in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">d

</td><td style="vertical-align:top;width:0.6673in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">r

</td><td style="vertical-align:top;width:0.6673in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">w

</td><td style="vertical-align:top;width:0.7437in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">x

</td><td style="vertical-align:top;width:0.6673in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">r

</td><td style="vertical-align:top;width:0.6673in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">w

</td><td style="vertical-align:top;width:0.7437in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">x

</td><td style="vertical-align:top;width:0.6673in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">r

</td><td style="vertical-align:top;width:0.6673in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">w

</td><td style="vertical-align:top;width:0.5756in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">x

</td></tr><tr><td style="vertical-align:top;width:0.6673in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">file

type

</td><td style="vertical-align:top;width:0.6673in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">user

read

</td><td style="vertical-align:top;width:0.6673in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">user

write

</td><td style="vertical-align:top;width:0.7631in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">user

execute

</td><td style="vertical-align:top;width:0.6673in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">group

read

</td><td style="vertical-align:top;width:0.6673in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">group

write

</td><td style="vertical-align:top;width:0.7631in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">group

execute

</td><td style="vertical-align:top;width:0.6868in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">others

read

</td><td style="vertical-align:top;width:0.6868in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">others

write

</td><td style="vertical-align:top;width:0.6798in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">others

execute

</td></tr></tbody></table>

</div></div></div></div>Numerical Permissions

<div id="bkmrk-7-%3D-rwx-6-%3D-rw-5-%3D-r" style="direction:ltr;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:6.9576in;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:6.9576in;">- <span style="font-family:Consolas;font-size:10pt;">7 = rwx</span>
- <span style="font-family:Consolas;font-size:10pt;">6 = rw</span>
- <span style="font-family:Consolas;font-size:10pt;">5 = rx</span>
- <span style="font-family:Consolas;font-size:10pt;">4 = r</span>
- <span style="font-family:Consolas;font-size:10pt;">2 = w</span>
- <span style="font-family:Consolas;font-size:10pt;">1 = x</span>
- <span style="font-family:Consolas;font-size:10pt;">0 = -</span>

</div></div></div>Owner of parent directory can still delete a file or subdirectory

<div id="bkmrk-chmod-u%2Brw-filename-" style="direction:ltr;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:6.9576in;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:6.9576in;"><div style="direction:ltr;"><table style="direction:ltr;border-collapse:collapse;border:1pt solid #A3A3A3;" title=""><tbody><tr><td style="vertical-align:top;width:1.6791in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">chmod u+rw filename

</td><td style="vertical-align:top;width:2.1736in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">user owner add rw

</td></tr><tr><td style="vertical-align:top;width:1.6604in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">chomd g-w filename

</td><td style="vertical-align:top;width:2.193in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">group owner remove w

</td></tr><tr><td style="vertical-align:top;width:1.6604in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">chmod o+r filename

</td><td style="vertical-align:top;width:2.193in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">others owner add r

</td></tr><tr><td style="vertical-align:top;width:1.6604in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">chmod a-r filename

</td><td style="vertical-align:top;width:2.193in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">all owners remove r

</td></tr><tr><td style="vertical-align:top;width:1.6604in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">chmod 755 filename

</td><td style="vertical-align:top;width:2.193in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">set to rwxr-xr-x

</td></tr><tr><td style="vertical-align:top;width:1.6604in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">chmod 644 filename

</td><td style="vertical-align:top;width:2.193in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">set to rw-r--r--

</td></tr><tr><td style="vertical-align:top;width:1.6604in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">chmod 777 filename

</td><td style="vertical-align:top;width:2.193in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">set to rwxrwxrwx

</td></tr><tr><td style="vertical-align:top;width:1.6791in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">chown root filename

</td><td style="vertical-align:top;width:2.1736in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">change user owner to root

</td></tr><tr><td style="vertical-align:top;width:1.6791in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">chgrp root filename

</td><td style="vertical-align:top;width:2.243in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">change group owner to root

</td></tr></tbody></table>

</div></div></div></div>Access Control Lists (ACLs)

ACLs are used to grant rwx to a specific user, separate from the file owners

<div id="bkmrk-as-you-assign-acl-to" style="direction:ltr;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:6.9576in;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:6.9576in;">- <span style="font-family:Consolas;font-size:10pt;">As you assign ACL to a file/directory it adds + to the permissions</span>
- <span style="font-family:Consolas;font-size:10pt;">w permission does not include delete (owner only)</span>

<div style="direction:ltr;"><table style="direction:ltr;border-collapse:collapse;border:1pt solid #A3A3A3;" title=""><tbody><tr><td style="vertical-align:top;width:2.5763in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">getfacl

</td><td style="vertical-align:top;width:2.3458in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">get file acl

</td></tr><tr><td style="vertical-align:top;width:2.5763in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">setfacl -m u:user:rwx filename

</td><td style="vertical-align:top;width:2.3458in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">add permissions for user

</td></tr><tr><td style="vertical-align:top;width:2.5763in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">setfacl -m g:group:rw filename

</td><td style="vertical-align:top;width:2.3458in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">add permissions for group

</td></tr><tr><td style="vertical-align:top;width:2.5958in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">setfacl -rm<span> </span>u:user:rwx dirname

</td><td style="vertical-align:top;width:2.3715in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">add permissions for directory  
-r recursive

</td></tr><tr><td style="vertical-align:top;width:2.5763in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">setfacl -x u:user filename

</td><td style="vertical-align:top;width:2.3458in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">remove entry for user

</td></tr><tr><td style="vertical-align:top;width:2.5763in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">setfacl -b filename

</td><td style="vertical-align:top;width:2.3458in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">remove all entries

</td></tr></tbody></table>

</div></div></div></div>

# SELinux

[![image.png](http://192.168.50.66/uploads/images/gallery/2026-07/scaled-1680-/image.png)](http://192.168.50.66/uploads/images/gallery/2026-07/image.png)

# User Management

<div id="bkmrk-useradd-username-cre" style="direction:ltr;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:7.3472in;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:7.3472in;"><div style="direction:ltr;"><table style="direction:ltr;border-collapse:collapse;border:1pt solid #A3A3A3;" title=""><tbody><tr><td style="vertical-align:top;width:1.584in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">useradd username

</td><td style="vertical-align:top;width:1.1687in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">create a user

</td></tr><tr><td style="vertical-align:top;width:1.6027in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">groupadd groupname

</td><td style="vertical-align:top;width:1.2152in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">create a group

</td></tr><tr><td style="vertical-align:top;width:1.584in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">userdel username

</td><td style="vertical-align:top;width:1.1652in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">delete user

</td></tr><tr><td style="vertical-align:top;width:1.6027in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">groupdel groupname

</td><td style="vertical-align:top;width:1.1465in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">delete group

</td></tr><tr><td style="vertical-align:top;width:1.584in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">usermod username

</td><td style="vertical-align:top;width:1.1652in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">modify user

</td></tr></tbody></table>

</div></div></div></div>Important files

/etc/passwd

/etc/group

/etc/shadow

Examples

useradd -g superheros -s /bin/bash -c "User Description" -m -d /home/spiderman spiderman

(Creates spiderman in group superheros)

usermod -G superheros spiderman

(adds spiderman to superheros group)

chgrp -R superheros spiderman

(change the group owner of user to superheros)

<div id="bkmrk-cat-%2Fetc%2Fpasswd-disp" style="direction:ltr;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:7.3472in;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:7.3472in;"><div style="direction:ltr;"><table style="direction:ltr;border-collapse:collapse;border:1pt solid #A3A3A3;" title=""><tbody><tr><td style="vertical-align:top;width:1.3743in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">cat /etc/passwd

</td><td style="vertical-align:top;width:4.8048in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">display users, passwords (x=encrypted), UserID, GroupID, etc.

</td></tr></tbody></table>

</div></div></div></div>defaults file located in /etc/login.defs

Example:

chage -m 5 -M 90 -W 10 -I 3 -E 20656 babubutt

<div id="bkmrk--d-%28lastchanged%29-day" style="direction:ltr;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:7.3472in;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:7.3472in;"><div style="direction:ltr;"><table style="direction:ltr;border-collapse:collapse;border:1pt solid #A3A3A3;" title=""><tbody><tr><td style="vertical-align:top;width:0.6673in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">-d

</td><td style="vertical-align:top;width:5.2055in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">(lastchanged) days since 01/01/1970 that password was last changed

</td></tr><tr><td style="vertical-align:top;width:0.6673in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">-m

</td><td style="vertical-align:top;width:5.1361in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">minimum number of days between password changes

</td></tr><tr><td style="vertical-align:top;width:0.6673in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">-M

</td><td style="vertical-align:top;width:5.1361in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">maximum number of days before user must change password

</td></tr><tr><td style="vertical-align:top;width:0.6673in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">-W

</td><td style="vertical-align:top;width:5.1395in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">number of days before password is to expire before user is warned

</td></tr><tr><td style="vertical-align:top;width:0.6673in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">-I

</td><td style="vertical-align:top;width:5.1361in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">number of days after password expires that account is disabled

</td></tr><tr><td style="vertical-align:top;width:0.6673in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">-E

</td><td style="vertical-align:top;width:5.1395in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">days since 01/01/1970 that account is disabled (account end date)

</td></tr></tbody></table>

</div></div></div></div>grep babu /etc/shadow

babubutt:!:20626:5:90:10:3:20656:

Switching users and sudo access

<div id="bkmrk-su---switch-to-root-" style="direction:ltr;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:7.3472in;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:7.3472in;"><div style="direction:ltr;"><table style="direction:ltr;border-collapse:collapse;border:1pt solid #A3A3A3;" title=""><tbody><tr><td style="vertical-align:top;width:1.202in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">su -

</td><td style="vertical-align:top;width:2.2347in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">switch to root

</td></tr><tr><td style="vertical-align:top;width:1.2215in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">su - username

</td><td style="vertical-align:top;width:2.2152in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">switch user

</td></tr><tr><td style="vertical-align:top;width:1.202in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">sudo

</td><td style="vertical-align:top;width:2.3041in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">perform action as super user

</td></tr><tr><td style="vertical-align:top;width:1.202in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">visudo

</td><td style="vertical-align:top;width:2.2347in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;"></td></tr></tbody></table>

</div></div></div></div>Add user to sudoers

<div id="bkmrk-su---switch-to-root--1" style="direction:ltr;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:7.3472in;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:7.3472in;"><div style="direction:ltr;"><table style="direction:ltr;border-collapse:collapse;border:1pt solid #A3A3A3;" title=""><tbody><tr><td style="vertical-align:top;width:2.118in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">su -

</td><td style="vertical-align:top;width:2.693in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">switch to root

</td></tr><tr><td style="vertical-align:top;width:2.1375in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">usermod -aG wheel nsotelo

</td><td style="vertical-align:top;width:2.6736in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">adds nsotelo to wheel group

</td></tr><tr><td style="vertical-align:top;width:2.118in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">grep wheel /etc/group

</td><td style="vertical-align:top;width:2.693in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">verify

</td></tr><tr><td style="vertical-align:top;width:2.118in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">su - nsotelo

</td><td style="vertical-align:top;width:2.693in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">switch back to nsotelo

</td></tr><tr><td style="vertical-align:top;width:2.118in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">sudo fdisk -l

</td><td style="vertical-align:top;width:2.7625in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">run sudo command to confirm access

</td></tr></tbody></table>

</div></div></div></div>

# Processes & Services

Basic Definitions

<div id="bkmrk-application-script-p" style="direction:ltr;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:10.7215in;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:10.7215in;">- <span style="font-family:Consolas;font-size:10pt;">Application</span>
- <span style="font-family:Consolas;font-size:10pt;">Script</span>
- <span style="font-family:Consolas;font-size:10pt;">Process</span>
- <span style="font-family:Consolas;font-size:10pt;">Daemon</span>
- <span style="font-family:Consolas;font-size:10pt;">Thread</span>
- <span style="font-family:Consolas;font-size:10pt;">Job</span>

</div></div></div>Monitoring and Management

<div id="bkmrk-command-example-func" style="direction:ltr;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:10.7215in;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:10.7215in;"><div style="direction:ltr;"><table style="direction:ltr;border-collapse:collapse;border:1pt solid #A3A3A3;" title=""><tbody><tr><td style="vertical-align:top;width:0.7631in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">command

</td><td style="vertical-align:top;width:1.3548in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">example

</td><td style="vertical-align:top;width:4.8812in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">function

</td></tr><tr><td style="vertical-align:top;width:0.7437in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">fdisk

</td><td style="vertical-align:top;width:1.3548in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">fdisk -l

</td><td style="vertical-align:top;width:4.9in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">disk partitioner

-l list disks

</td></tr><tr><td style="vertical-align:top;width:0.7437in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">df

</td><td style="vertical-align:top;width:1.3548in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">df -h

</td><td style="vertical-align:top;width:4.9in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">filesystem capacity

</td></tr><tr><td style="vertical-align:top;width:0.7437in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">du

</td><td style="vertical-align:top;width:1.3743in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">du -sh /var/log

</td><td style="vertical-align:top;width:4.8812in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">size of each item in directory

</td></tr><tr><td style="vertical-align:top;width:0.7437in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">uptime

</td><td style="vertical-align:top;width:1.3548in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">uptime -p

</td><td style="vertical-align:top;width:5.0326in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">shows urrent time, uptime and load usage % past 1, 5, 15 minutes

</td></tr><tr><td style="vertical-align:top;width:0.7437in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">top

</td><td style="vertical-align:top;width:1.3548in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">top -h

</td><td style="vertical-align:top;width:4.9in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">display linux processes (human readable)

</td></tr><tr><td style="vertical-align:top;width:0.7437in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">free

</td><td style="vertical-align:top;width:1.3548in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">free -h

</td><td style="vertical-align:top;width:4.9284in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">display amount of free and used system memory (human readable)

</td></tr><tr><td style="vertical-align:top;width:0.7437in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">lsof

</td><td style="vertical-align:top;width:1.3548in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">lsof -I :80

</td><td style="vertical-align:top;width:4.9in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">list open files (using port 80)

</td></tr><tr><td style="vertical-align:top;width:0.7631in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">tcpdump

</td><td style="vertical-align:top;width:1.3743in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">tcpdump -i eth0

</td><td style="vertical-align:top;width:4.8618in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">capture packets flowing through interface eth0

</td></tr><tr><td style="vertical-align:top;width:0.7437in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">ps

</td><td style="vertical-align:top;width:1.3743in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">ps -ef --forest

</td><td style="vertical-align:top;width:4.8812in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">current processes snapshot (tree diagram)

</td></tr><tr><td style="vertical-align:top;width:0.7437in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">kill

</td><td style="vertical-align:top;width:1.3548in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">kill 34448

</td><td style="vertical-align:top;width:4.9in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">terminates a process (PID)

</td></tr></tbody></table>

</div></div></div></div>top

<div id="bkmrk-pid-user-pr-ni-virt-" style="direction:ltr;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:10.7215in;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:10.7215in;"><div style="direction:ltr;"><table style="direction:ltr;border-collapse:collapse;border:1pt solid #A3A3A3;" title=""><tbody><tr><td style="vertical-align:top;width:0.6673in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">PID

</td><td style="vertical-align:top;width:0.6673in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">USER

</td><td style="vertical-align:top;width:0.6673in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">PR

</td><td style="vertical-align:top;width:0.6673in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">NI

</td><td style="vertical-align:top;width:0.6673in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">VIRT

</td><td style="vertical-align:top;width:0.6673in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">RES

</td><td style="vertical-align:top;width:0.6673in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">SHR

</td><td style="vertical-align:top;width:0.6673in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">S

</td><td style="vertical-align:top;width:0.6673in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">%CPU

</td><td style="vertical-align:top;width:0.6673in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">%MEM

</td><td style="vertical-align:top;width:0.6673in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">TIME+

</td><td style="vertical-align:top;width:0.6798in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">COMMAND

</td></tr></tbody></table>

</div></div></div></div>top columns

<div id="bkmrk-pid-id-user-owner-pr" style="direction:ltr;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:10.7215in;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:10.7215in;"><div style="direction:ltr;"><table style="direction:ltr;border-collapse:collapse;border:1pt solid #A3A3A3;" title=""><tbody><tr><td style="vertical-align:top;width:0.7437in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">PID

</td><td style="vertical-align:top;width:3.4562in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">id

</td></tr><tr><td style="vertical-align:top;width:0.7437in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">USER

</td><td style="vertical-align:top;width:3.4562in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">owner

</td></tr><tr><td style="vertical-align:top;width:0.7437in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">PR

</td><td style="vertical-align:top;width:3.4562in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">focus priority

</td></tr><tr><td style="vertical-align:top;width:0.7437in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">NI

</td><td style="vertical-align:top;width:3.4562in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">the nice value

</td></tr><tr><td style="vertical-align:top;width:0.7437in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">VIRT

</td><td style="vertical-align:top;width:3.4562in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">amount of virtual memory in use

</td></tr><tr><td style="vertical-align:top;width:0.7437in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">RES

</td><td style="vertical-align:top;width:3.4562in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">amount of resident memory in use

</td></tr><tr><td style="vertical-align:top;width:0.7437in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">SHR

</td><td style="vertical-align:top;width:3.4562in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">amount of shared memory in use

</td></tr><tr><td style="vertical-align:top;width:0.7437in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">S

</td><td style="vertical-align:top;width:3.4562in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">status of the process

</td></tr><tr><td style="vertical-align:top;width:0.7437in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">%CPU

</td><td style="vertical-align:top;width:3.4562in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">share of CPU time since last update

</td></tr><tr><td style="vertical-align:top;width:0.7437in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">%MEM

</td><td style="vertical-align:top;width:3.4562in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">share of physical memory in use

</td></tr><tr><td style="vertical-align:top;width:0.7437in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">TIME+

</td><td style="vertical-align:top;width:3.5256in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">total cpu time used (hundredths of a second)

</td></tr><tr><td style="vertical-align:top;width:0.7631in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">COMMAND

</td><td style="vertical-align:top;width:3.4368in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">name of the command or process

</td></tr></tbody></table>

</div></div></div></div>Services &amp; Daemons

<div id="bkmrk-systemctl---version-" style="direction:ltr;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:10.7215in;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:10.7215in;"><div style="direction:ltr;"><table style="direction:ltr;border-collapse:collapse;border:1pt solid #A3A3A3;" title=""><tbody><tr><td style="vertical-align:top;width:4.409in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">systemctl --version

</td><td style="vertical-align:top;width:3.9145in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">Check if systemd is installed

</td></tr><tr><td style="vertical-align:top;width:4.409in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">ps -ef | grep system

</td><td style="vertical-align:top;width:3.9145in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">check if systemd is running

</td></tr><tr><td style="vertical-align:top;width:4.409in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">systemctl --all

</td><td style="vertical-align:top;width:3.9145in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">check all running services

</td></tr><tr><td style="vertical-align:top;width:4.4284in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">systemctl status/stop/start/restart application.service

</td><td style="vertical-align:top;width:3.8951in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">status/start/stop/restart application.service

</td></tr><tr><td style="vertical-align:top;width:4.409in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">systemctl reload application.service

</td><td style="vertical-align:top;width:3.9145in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">reload the config of a service

</td></tr><tr><td style="vertical-align:top;width:4.409in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">systemctl enable/disable application.service

</td><td style="vertical-align:top;width:3.9145in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">enable or disable at boot

</td></tr><tr><td style="vertical-align:top;width:4.409in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">systemctl mask/unmask application.service

</td><td style="vertical-align:top;width:3.984in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">enable or disable completely (ignore dependencies)

</td></tr></tbody></table>

</div></div></div></div>Logs

<div id="bkmrk-%2Fvar%2Flog-log-directo" style="direction:ltr;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:10.7215in;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:10.7215in;"><div style="direction:ltr;"><table style="direction:ltr;border-collapse:collapse;border:1pt solid #A3A3A3;" title=""><tbody><tr><td style="vertical-align:top;width:0.8395in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">/var/log

</td><td style="vertical-align:top;width:1.1388in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">log directory

</td></tr></tbody></table>

</div></div></div></div>Log Examples

<div id="bkmrk-boot-%28overwrites-upo" style="direction:ltr;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:10.7215in;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:10.7215in;">- <span style="font-family:Consolas;font-size:10pt;">boot (overwrites upon boot)</span>
- <span style="font-family:Consolas;font-size:10pt;">chonyd / ntp</span>
- <span style="font-family:Consolas;font-size:10pt;">cron</span>
- <span style="font-family:Consolas;font-size:10pt;">maillog</span>
- <span style="font-family:Consolas;font-size:10pt;">secure</span>
- <span style="font-family:Consolas;font-size:10pt;">messages</span>
- <span style="font-family:Consolas;font-size:10pt;">httpd</span>

</div></div></div>Technical Support and Analyse Server

<div id="bkmrk-sos-report-collect-l" style="direction:ltr;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:10.7215in;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:10.7215in;"><div style="direction:ltr;"><table style="direction:ltr;border-collapse:collapse;border:1pt solid #A3A3A3;" title=""><tbody><tr><td style="vertical-align:top;width:3.6625in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">sos report

</td><td style="vertical-align:top;width:6.9645in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">collect logs and configuration file then transfer to Redhat support server  
enter case ID   
compressed archive saved to /var/tmp/sosreport-hostname-caseid-yyyy-mm-dd-filename.tar.xz

</td></tr><tr><td style="vertical-align:top;width:3.5847in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">cockpit

</td><td style="vertical-align:top;width:6.9736in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;"><span style="font-family:Consolas;font-size:10pt;">web based server administration tool sponsored by Red Hat</span>

<span style="font-family:Consolas;font-size:10pt;">can monitor system resources, add/remove accounts, shutdown system and perform other tasks</span>

<span style="font-family:Consolas;font-size:10pt;">also available centos redhat ubuntu fedora</span>

</td></tr><tr><td style="vertical-align:top;width:3.6625in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">ping [www.google.com](http://www.google.com)

</td><td style="vertical-align:top;width:6.8951in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">verify internet connectivity

</td></tr><tr><td style="vertical-align:top;width:3.6625in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">rpm -qa | grep cockpit

</td><td style="vertical-align:top;width:6.8951in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">verify cockpit package is installed

</td></tr><tr><td style="vertical-align:top;width:3.6625in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">yum/dnf install cockpit -y

</td><td style="vertical-align:top;width:6.8951in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">install cockpit (Red Hat, CentOS)

</td></tr><tr><td style="vertical-align:top;width:3.6625in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">apt-get install cockpit

</td><td style="vertical-align:top;width:6.8951in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">install cockpit (Debian, Ubuntu)

</td></tr><tr><td style="vertical-align:top;width:3.6625in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">systemctl start/enable cockpit.socket

</td><td style="vertical-align:top;width:6.9645in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">relies on socket activation to start  
enable socket listener which watches port 9090 and wakes Cockpit up when someone tries to connect

</td></tr><tr><td style="vertical-align:top;width:3.6625in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">systemctl status cockpit

</td><td style="vertical-align:top;width:6.8951in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">verify

</td></tr><tr><td style="vertical-align:top;width:3.6625in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">systemctl status cockpit.socket

</td><td style="vertical-align:top;width:6.8951in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">verify

</td></tr><tr><td style="vertical-align:top;width:3.5847in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">[https://192.168.50.164:9090](https://192.168.50.164:9090)

</td><td style="vertical-align:top;width:6.9736in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;"><span style="font-family:Consolas;font-size:10pt;">firewall may need to be disabled (safe for labs) or rule created  
access the web-interface</span>

<span style="font-family:Consolas;font-size:10pt;">log in with root or system user</span>

<span style="font-family:Consolas;font-size:10pt;">can be used to manage everything including terminal access</span>

</td></tr></tbody></table>

</div></div></div></div>

# System Performance

Tuned - dynamic system duning daemon

<div id="bkmrk-rpm--qa-%7C-grep-tuned" style="direction:ltr;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:6.3479in;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:6.3479in;"><div style="direction:ltr;"><table style="direction:ltr;border-collapse:collapse;border:1pt solid #A3A3A3;" title=""><tbody><tr><td style="vertical-align:top;width:3.0222in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">rpm -qa | grep tuned

</td><td style="vertical-align:top;width:3.0611in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">check if tuned package is installed

</td></tr><tr><td style="vertical-align:top;width:3.0222in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">yum install tuned

</td><td style="vertical-align:top;width:3.0611in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">install tuned

</td></tr><tr><td style="vertical-align:top;width:3.0416in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">systemctl status/enable/disable tuned

</td><td style="vertical-align:top;width:3.0416in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">check tuned status

</td></tr><tr><td style="vertical-align:top;width:3.0222in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">tuned --version

</td><td style="vertical-align:top;width:3.0611in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">check tuned version

</td></tr><tr><td style="vertical-align:top;width:3.0222in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">tuned-adm

</td><td style="vertical-align:top;width:3.0611in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">change setting for tuned daemon

</td></tr><tr><td style="vertical-align:top;width:3.0222in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">tuned-adm active

</td><td style="vertical-align:top;width:3.0611in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">check which profile is active

</td></tr><tr><td style="vertical-align:top;width:3.0222in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">tuned-adm list

</td><td style="vertical-align:top;width:3.0611in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">list available profiles

</td></tr><tr><td style="vertical-align:top;width:3.0222in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">tuned-adm profile profile-name

</td><td style="vertical-align:top;width:3.0611in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">change profile

</td></tr><tr><td style="vertical-align:top;width:3.0222in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">tuned-adm recommend

</td><td style="vertical-align:top;width:3.0611in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">recommended profile

</td></tr><tr><td style="vertical-align:top;width:3.0222in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">tuned-adm off

</td><td style="vertical-align:top;width:3.0611in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">turn off tuned daemon

</td></tr><tr><td style="vertical-align:top;width:3.0222in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">[https://192.168.X.X:9090](https://192.168.X.X:9090)

</td><td style="vertical-align:top;width:3.1305in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">change via web console (check firewall)

</td></tr></tbody></table>

</div></div></div></div>nice and renice

<div id="bkmrk-prioritise-cpu-tasks" style="direction:ltr;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:6.3479in;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:6.3479in;">- <span style="font-family:Consolas;font-size:10pt;">Prioritise CPU tasks</span>
- <span style="font-family:Consolas;font-size:10pt;">Range from -20 (highest priority) to 19 (lowest priority), 0 = default</span>
- <span style="font-family:Consolas;font-size:10pt;">System priorities range 0-139, (0-99 real time), (100-139 users)</span>

<div style="direction:ltr;"><table style="direction:ltr;border-collapse:collapse;border:1pt solid #A3A3A3;" title=""><tbody><tr><td style="vertical-align:top;width:3.0451in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">top

</td><td style="vertical-align:top;width:2.7798in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">check active process priority  
PR = System priority (-99 to 39)  
NI = nice value (-20 to 19)

</td></tr><tr><td style="vertical-align:top;width:3.0645in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">ps axo pid,comm,nice,cls --sort=-nice

</td><td style="vertical-align:top;width:2.8298in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">show active processes nice, by nice

</td></tr><tr><td style="vertical-align:top;width:3.0451in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">nice -n # process-name

</td><td style="vertical-align:top;width:2.7798in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">set process value

</td></tr><tr><td style="vertical-align:top;width:3.0451in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">nice -n -12 top

</td><td style="vertical-align:top;width:2.7798in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">set top nice to -12

</td></tr><tr><td style="vertical-align:top;width:3.0451in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">renice -n -15 &lt;PID&gt;

</td><td style="vertical-align:top;width:2.7798in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">change active PID nice to -15   
(open 2nd terminal to check)

</td></tr></tbody></table>

</div></div></div></div>

# Networking

Basic Commands

<div id="bkmrk-ip-a-display-network" style="direction:ltr;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:9.4854in;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:9.4854in;"><div style="direction:ltr;"><table style="direction:ltr;border-collapse:collapse;border:1pt solid #A3A3A3;" title=""><tbody><tr><td style="vertical-align:top;width:2.8819in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">ip a

</td><td rowspan="3" style="vertical-align:top;width:2.9909in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">Display network inerfaces and details

</td></tr><tr><td style="vertical-align:top;width:1.1694in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">ip addr

</td></tr><tr><td style="vertical-align:top;width:1.2458in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">ifconfig

</td></tr><tr><td style="vertical-align:top;width:2.9013in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">hostnamectl set-hostname &lt;hostname&gt;

</td><td style="vertical-align:top;width:2.9027in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">set hostname

</td></tr></tbody></table>

</div></div></div></div>NetworkManager

<div id="bkmrk-systemctl-status-net" style="direction:ltr;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:9.4854in;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:9.4854in;"><div style="direction:ltr;"><table style="direction:ltr;border-collapse:collapse;border:1pt solid #A3A3A3;" title=""><tbody><tr><td style="vertical-align:top;width:2.5958in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">systemctl status NetworkManager

</td><td style="vertical-align:top;width:2.2916in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">NetworkManager status

</td></tr><tr><td style="vertical-align:top;width:2.5763in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">ps -ef | grep NetworkManager

</td><td style="vertical-align:top;width:2.3805in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">verify the process is running

</td></tr></tbody></table>

</div></div></div></div>Network Configuration Methods

<div id="bkmrk-nmcli-network-manage" style="direction:ltr;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:9.4854in;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:9.4854in;"><div style="direction:ltr;"><table style="direction:ltr;border-collapse:collapse;border:1pt solid #A3A3A3;" title=""><tbody><tr><td style="vertical-align:top;width:1.7368in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">nmcli

</td><td style="vertical-align:top;width:4.1368in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">network manager cli (non gui) can be used in scripts

</td></tr><tr><td style="vertical-align:top;width:1.7368in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">nmtui

</td><td style="vertical-align:top;width:4.0673in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">text user interface

</td></tr><tr><td style="vertical-align:top;width:1.7555in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">nm-connection-editor

</td><td style="vertical-align:top;width:4.0479in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">full gui (via desktop/console)

</td></tr><tr><td style="vertical-align:top;width:1.7368in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">GNOME Settings

</td><td style="vertical-align:top;width:4.0673in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;"></td></tr></tbody></table>

</div></div></div></div><span style="color:rgb(35,111,161);">Creating a New Connection Profile</span>

nmcli con add type ethernet ifname enp0s3 con-name myprofile1

Use nmcli to set a static ip address

<div id="bkmrk-nmcli-connection-con" style="direction:ltr;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:9.4854in;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:9.4854in;"><div style="direction:ltr;"><table style="direction:ltr;border-collapse:collapse;border:1pt solid #A3A3A3;" title=""><tbody><tr><td style="vertical-align:top;width:4.7145in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">nmcli connection

</td><td style="vertical-align:top;width:2.7694in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">connected interface UUIDs

</td></tr><tr><td style="vertical-align:top;width:4.7145in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">nmcli device

</td><td style="vertical-align:top;width:2.7694in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">connected interface status

</td></tr><tr><td style="vertical-align:top;width:4.734in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">nmcli connection modify eth0 ipv4.addresses 192.168.50.X/24

</td><td style="vertical-align:top;width:2.8194in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">set static ip address &amp; subnet mask

</td></tr><tr><td style="vertical-align:top;width:4.7145in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">nmcli connection modify eth0 ipp4.gateway 192.168.50.1

</td><td style="vertical-align:top;width:2.7694in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">set gateway

</td></tr><tr><td style="vertical-align:top;width:4.7145in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">nmcli connection modify eth0 ipv4.method manual

</td><td style="vertical-align:top;width:2.7694in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">configure eth0 to use static IP

</td></tr><tr><td style="vertical-align:top;width:4.7145in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">nmcli connection modify eth0 ipv4.dns 8.8.8.8

</td><td style="vertical-align:top;width:2.7694in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">set dns to google.com

</td></tr><tr><td style="vertical-align:top;width:4.7145in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">nmcli connection down eth0 &amp;&amp; nmcli connection up eth0

</td><td style="vertical-align:top;width:2.7694in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">restart nmcli connection

</td></tr><tr><td style="vertical-align:top;width:4.7145in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">ip address show eth0

</td><td style="vertical-align:top;width:2.7694in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;"></td></tr></tbody></table>

</div></div></div></div>Use nmcli to configure a secondary static ip address

<div id="bkmrk-nmcli-device-status-" style="direction:ltr;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:9.4854in;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:9.4854in;"><div style="direction:ltr;"><table style="direction:ltr;border-collapse:collapse;border:1pt solid #A3A3A3;" title=""><tbody><tr><td style="vertical-align:top;width:4.7909in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">nmcli device status

</td><td style="vertical-align:top;width:3.5326in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;"></td></tr><tr><td style="vertical-align:top;width:4.7909in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">nmcli connection show --active

</td><td style="vertical-align:top;width:3.5326in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;"></td></tr><tr><td style="vertical-align:top;width:4.7909in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">ifconfig

</td><td style="vertical-align:top;width:3.5326in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;"></td></tr><tr><td style="vertical-align:top;width:4.8104in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">nmcli connection modify eth0 +ipv4.addresses 192.168.50.X/24

</td><td style="vertical-align:top;width:3.5826in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">set secondary static ip address &amp; subnet mask

</td></tr><tr><td style="vertical-align:top;width:4.7909in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">nmcli connection reload

</td><td style="vertical-align:top;width:3.5326in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;"></td></tr><tr><td style="vertical-align:top;width:4.7909in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">systemctl reboot

</td><td style="vertical-align:top;width:3.5326in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;"></td></tr><tr><td style="vertical-align:top;width:4.7909in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">ip address show

</td><td style="vertical-align:top;width:3.5326in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;"></td></tr></tbody></table>

</div></div></div></div>nmtui (as root), nm-connection-editor or GNOME settings can also be used to activate a connection or change hostname

Network Files and Basic Commands

<div id="bkmrk-%2Fetc%2Fsysconfig%2Fnetwo" style="direction:ltr;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:9.4854in;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:9.4854in;"><div style="direction:ltr;"><table style="direction:ltr;border-collapse:collapse;border:1pt solid #A3A3A3;" title=""><tbody><tr><td style="vertical-align:top;width:2.5194in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">/etc/sysconfig/network-scripts

</td><td style="vertical-align:top;width:6.3388in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;"></td></tr><tr><td style="vertical-align:top;width:2.5in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">/etc/hosts

</td><td style="vertical-align:top;width:6.3583in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;"></td></tr><tr><td style="vertical-align:top;width:2.5in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">/etc/hostname

</td><td style="vertical-align:top;width:6.3583in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;"></td></tr><tr><td style="vertical-align:top;width:2.5in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">/etc/resolv.conf

</td><td style="vertical-align:top;width:6.3583in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">DNS

</td></tr><tr><td style="vertical-align:top;width:2.5in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">/etc/nsswitch.conf

</td><td style="vertical-align:top;width:6.3583in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">Set to use Files or DNS first (per command/request)

</td></tr><tr><td style="vertical-align:top;width:2.5in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">ping

</td><td style="vertical-align:top;width:6.3583in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">verify network connectivity to a host

</td></tr><tr><td style="vertical-align:top;width:2.5in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">ifconfig

</td><td rowspan="3" style="vertical-align:top;width:6.3583in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">Display network interfaces and IP addresses

</td></tr><tr><td style="vertical-align:top;width:1.1694in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">ip addr

</td></tr><tr><td style="vertical-align:top;width:0.9402in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">ip a

</td></tr><tr><td style="vertical-align:top;width:2.5in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">ifup

</td><td style="vertical-align:top;width:6.3583in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">brings up a specific network interface

</td></tr><tr><td style="vertical-align:top;width:2.5in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">ifdown

</td><td style="vertical-align:top;width:6.3583in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">takes down a specific network interface

</td></tr><tr><td style="vertical-align:top;width:2.5in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">traceroute

</td><td style="vertical-align:top;width:6.4277in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">track and display path (router/hops) that packets take to reach a destination host

</td></tr><tr><td style="vertical-align:top;width:2.5in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">tcpdump -i eth0

</td><td style="vertical-align:top;width:6.3583in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">capture and monitor live network traffic flowing through eth0

</td></tr><tr><td style="vertical-align:top;width:2.5in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">nslookup

</td><td rowspan="2" style="vertical-align:top;width:6.3583in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">queries DNS servers to find ip adddress of a domain or vice versa

</td></tr><tr><td style="vertical-align:top;width:0.8638in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">dig

</td></tr><tr><td style="vertical-align:top;width:2.5in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">ethtool eth0

</td><td style="vertical-align:top;width:6.3618in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">display and modify physical hardware settings of eth0 such as link speed &amp; duplex

</td></tr></tbody></table>

</div></div></div></div>

# Network Firewall

Software Firewall (Runs on operating system)

Hardware Firewall (Dedicated network appliance)

Modern Linux uses firewalld as front-end &amp; nftables under the hood

<div id="bkmrk-organises-rules-by-%22" style="direction:ltr;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:10.2881in;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:10.2881in;">- <span style="font-family:Consolas;font-size:10pt;">organises rules by "zones" (like public, home, work)</span>
- <span style="font-family:Consolas;font-size:10pt;">exposes "services" (ssh, http, samba, nfs, etc.)</span>

</div></div></div><div id="bkmrk-temporary-changes-ar" style="direction:ltr;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:10.2881in;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:10.2881in;">- <span style="font-family:Consolas;font-size:10pt;">temporary changes are active immediately but vanish on reload</span>
- <span style="font-family:Consolas;font-size:10pt;">permanent changes are written to disk and take effect after reload</span>

</div></div></div><div id="bkmrk-unspecified-zone-wil" style="direction:ltr;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:10.2881in;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:10.2881in;">- <span style="font-family:Consolas;font-size:10pt;">unspecified zone will be applied to the default (public) zone</span>
- <span style="font-family:Consolas;font-size:10pt;">services not on --list-all can be enabled by opening specific ports</span>

</div></div></div>Examples

<div id="bkmrk-allow-ssh-from-jump-" style="direction:ltr;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:10.2881in;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:10.2881in;">- <span style="font-family:Consolas;font-size:10pt;">allow SSH from jump hosts</span>
- <span style="font-family:Consolas;font-size:10pt;">open http/https on a web server</span>
- <span style="font-family:Consolas;font-size:10pt;">open NFS only to specific subnets</span>

</div></div></div>Exam

<div id="bkmrk-start%2Fenable-firewal" style="direction:ltr;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:10.2881in;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:10.2881in;">- <span style="font-family:Consolas;font-size:10pt;">start/enable firewall, list zones, see active zone</span>
- <span style="font-family:Consolas;font-size:10pt;">add/remove a service, open/close a port, make changes permanent</span>
- <span style="font-family:Consolas;font-size:10pt;">reload, create, or use a custom XML service file</span>
- <span style="font-family:Consolas;font-size:10pt;">basic rich rules for blocking a specific source IP</span>
- <span style="font-family:Consolas;font-size:10pt;">temporary vs permanent</span>

</div></div></div>Basic Commands

<div id="bkmrk-dnf-install-firewall" style="direction:ltr;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:10.2881in;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:10.2881in;"><div style="direction:ltr;"><table style="direction:ltr;border-collapse:collapse;border:1pt solid #A3A3A3;" title=""><tbody><tr><td style="vertical-align:top;width:2.6631in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">dnf install firewalld

</td><td style="vertical-align:top;width:3.359in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">install firewalld

</td></tr><tr><td style="vertical-align:top;width:2.6826in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">systemctl enable --now firewalld

</td><td style="vertical-align:top;width:3.3395in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">enable now

</td></tr><tr><td style="vertical-align:top;width:2.6631in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">systemctl status firewalld

</td><td style="vertical-align:top;width:3.359in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">details &amp; uptime

</td></tr><tr><td style="vertical-align:top;width:2.6631in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">firewall-cmd --state

</td><td style="vertical-align:top;width:3.359in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">status

</td></tr><tr><td style="vertical-align:top;width:2.6631in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">firewall-cmd --get-active-zones

</td><td style="vertical-align:top;width:3.359in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;"></td></tr><tr><td style="vertical-align:top;width:2.5854in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">firewall-cmd --get-zones

</td><td style="vertical-align:top;width:3.5062in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">list predefined zone profiles

- <span style="font-family:Consolas;font-size:10pt;">public - locked down default</span>
- <span style="font-family:Consolas;font-size:10pt;">home/work - more relaxed (known networks)</span>
- <span style="font-family:Consolas;font-size:10pt;">trusted - allow all</span>
- <span style="font-family:Consolas;font-size:10pt;">dmz/external - edge scenarios</span>

</td></tr><tr><td style="vertical-align:top;width:2.6631in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">firewall-cmd --list-all

</td><td style="vertical-align:top;width:3.359in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">shows all zones, rules, services, etc.  
(only a few enabled by default)

</td></tr><tr><td style="vertical-align:top;width:2.6631in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">firewall-cmd --get-services

</td><td style="vertical-align:top;width:3.359in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">list of all services that can be allowed

</td></tr><tr><td style="vertical-align:top;width:2.6631in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">firewall-cmd --reload

</td><td style="vertical-align:top;width:3.3833in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">write permanent and custom rules to memory

</td></tr></tbody></table>

</div></div></div></div>Adding and Removing Temporary and Permanent Rules

<div id="bkmrk-firewall-cmd---add-s" style="direction:ltr;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:10.2881in;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:10.2881in;"><div style="direction:ltr;"><table style="direction:ltr;border-collapse:collapse;border:1pt solid #A3A3A3;" title=""><tbody><tr><td style="vertical-align:top;width:7.0159in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">firewall-cmd --add-service=http

</td><td style="vertical-align:top;width:3.109in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">add http (temporary)

</td></tr><tr><td style="vertical-align:top;width:7.0159in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">firewall-cmd --permenent --add-service=http

</td><td style="vertical-align:top;width:3.109in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">add http (permanent)

</td></tr><tr><td style="vertical-align:top;width:7.0159in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">firewall-cmd --remove-service=http

</td><td style="vertical-align:top;width:3.109in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">remove http (temporary)

</td></tr><tr><td style="vertical-align:top;width:7.0159in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">firewall-cmd --permanent --remove-service=http

</td><td style="vertical-align:top;width:3.109in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">remove http (permanent)

</td></tr><tr><td style="vertical-align:top;width:7.0159in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">firewall-cmd --add-port=1110/tcp

</td><td style="vertical-align:top;width:3.109in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">add TCP 1110 (temporary)

</td></tr><tr><td style="vertical-align:top;width:7.0159in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">firewall-cmd --permanent --add-port=1110/tcp

</td><td style="vertical-align:top;width:3.109in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">add TCP 1110 (permanent)

</td></tr><tr><td style="vertical-align:top;width:7.0159in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">firewall-cmd --remove-port=1110/tcp

</td><td style="vertical-align:top;width:3.109in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">remove TCP 1110 (temporary)

</td></tr><tr><td style="vertical-align:top;width:7.0159in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">firewall-cmd --permanent --remove-port=1110/tcp

</td><td style="vertical-align:top;width:3.109in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">remove TCP 1110 (permanent)

</td></tr><tr><td style="vertical-align:top;width:7.0159in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">firewall-cmd --add-rich-rule='rule family="ipv4" source address="192.168.0.25" reject'

</td><td style="vertical-align:top;width:3.1541in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">block incoming packets from specific IP

</td></tr><tr><td style="vertical-align:top;width:7.0354in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">firewall-cmd --remove-rich-rule='rule family="ipv4" source address="192.168.0.25" reject'

</td><td style="vertical-align:top;width:3.0902in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">remove

</td></tr><tr><td style="vertical-align:top;width:7.0159in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">firewall-cmd --add-icmp-block=echo-request

</td><td style="vertical-align:top;width:3.109in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">block icmp (ping) requests

</td></tr><tr><td style="vertical-align:top;width:7.0159in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">firewall-cmd --remove-icmp-block=echo-request

</td><td style="vertical-align:top;width:3.109in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">remove

</td></tr><tr><td style="vertical-align:top;width:7.0159in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">firewall-cmd --direct --add-rule ipv4 filter OUTPUT 0 -d 203.0.113.10 -j DROP

</td><td style="vertical-align:top;width:3.1541in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">block outgoing packets to IP (priority)

</td></tr><tr><td style="vertical-align:top;width:7.0159in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">firewall-cmd --direct --remove-rule ipv4 filter OUTPUT 0 -d 203.0.113.10 -j DROP

</td><td style="vertical-align:top;width:3.109in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">remove

</td></tr><tr><td style="vertical-align:top;width:7.0159in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">nano /etc/firewalld/services/sap.xml

xml version="1.0" encoding="utf-8"  
&lt;service version=1.0"&gt;  
<span> </span>&lt;short&gt;SAP&lt;/short&gt;

<span> </span>&lt;description&gt;Third-party application service&lt;/description&gt;

<span> </span>&lt;port protocol="tcp" port="3200"/&gt;

<span> </span>&lt;/service&gt;

</td><td style="vertical-align:top;width:3.1541in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">add a custom service definition for SAP  
  
xml header for firewalld

</td></tr><tr><td style="vertical-align:top;width:7.0159in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">firewall-cmd --get-services | grep -i sap

</td><td style="vertical-align:top;width:3.109in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">verify

</td></tr><tr><td style="vertical-align:top;width:7.0159in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">firewall-cmd --add-service=sap

</td><td style="vertical-align:top;width:3.109in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">add the custom rule (temporary)

</td></tr><tr><td style="vertical-align:top;width:7.0159in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">firewall-cmd --permanent --add-service=sap

</td><td style="vertical-align:top;width:3.109in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">add the custom rule (permanent)

</td></tr></tbody></table>

</div></div></div></div><div id="bkmrk-dnf-install--y-httpd" style="direction:ltr;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:10.2881in;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:10.2881in;"><div style="direction:ltr;"><table style="direction:ltr;border-collapse:collapse;border:1pt solid #A3A3A3;" title=""><tbody><tr><td style="vertical-align:top;width:2.5104in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">dnf install -y httpd

</td><td style="vertical-align:top;width:2.95in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">install apache web service

</td></tr><tr><td style="vertical-align:top;width:2.5104in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">systemctl enable --now httpd

</td><td style="vertical-align:top;width:2.95in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;"></td></tr><tr><td style="vertical-align:top;width:2.5104in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">curl -I [http://localhost](http://localhost)

</td><td style="vertical-align:top;width:2.95in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">verify (403 Forbidden)

</td></tr><tr><td style="vertical-align:top;width:2.5298in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">curl -I [http://192.168.50.164/](http://192.168.50.164/)

</td><td style="vertical-align:top;width:2.9305in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">verify (403 Forbidden)

</td></tr></tbody></table>

</div></div></div></div>

# Archive & FTP

Archive and Compress Files

<div id="bkmrk-tar-cvf-nsotelo.tar-" style="direction:ltr;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:8.1402in;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:8.1402in;"><div style="direction:ltr;"><table style="direction:ltr;border-collapse:collapse;border:1pt solid #A3A3A3;" title=""><tbody><tr><td style="vertical-align:top;width:2.7486in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">tar cvf nsotelo.tar /home/nsotelo

</td><td style="vertical-align:top;width:2.8958in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">archive all folders in /home/nsotelo

</td></tr><tr><td style="vertical-align:top;width:2.7291in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">mkdir new

</td><td style="vertical-align:top;width:2.8458in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">create a directory 'new'

</td></tr><tr><td style="vertical-align:top;width:2.7291in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">mv nsotelo.tar new

</td><td style="vertical-align:top;width:2.8458in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">move archive to 'new'

</td></tr><tr><td style="vertical-align:top;width:2.7291in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">cd new

</td><td style="vertical-align:top;width:2.8458in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">change to 'new' directory

</td></tr><tr><td style="vertical-align:top;width:2.7291in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">gzip nsotelo.tar

</td><td style="vertical-align:top;width:2.8458in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">compress nsotelo.tar

</td></tr><tr><td style="vertical-align:top;width:2.7291in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">gzip -d nsotelo.tar.gz

</td><td style="vertical-align:top;width:2.8458in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">uncompress nsotelo.tar.gz

</td></tr><tr><td style="vertical-align:top;width:2.7291in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">tar xvf nsotelo.tar

</td><td style="vertical-align:top;width:2.8458in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">extract archive

</td></tr></tbody></table>

</div></div></div></div>File Transfer Protocol

remote host:

<div id="bkmrk-rpm--qa-%7C-grep-ftp-c" style="direction:ltr;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:8.1402in;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:8.1402in;"><div style="direction:ltr;"><table style="direction:ltr;border-collapse:collapse;border:1pt solid #A3A3A3;" title=""><tbody><tr><td style="vertical-align:top;width:2.2708in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">rpm -qa | grep ftp

</td><td style="vertical-align:top;width:3.609in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">check if the required package is installed

</td></tr><tr><td style="vertical-align:top;width:2.2708in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">ping [www.google.com](http://www.google.com)

</td><td style="vertical-align:top;width:3.609in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">verify internet connection

</td></tr><tr><td style="vertical-align:top;width:2.2708in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">yum install vsftpd

</td><td style="vertical-align:top;width:3.609in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">install the remote package

</td></tr><tr><td style="vertical-align:top;width:2.2708in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">nano /etc/vsftpd

</td><td style="vertical-align:top;width:3.6784in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">disable anonymous login

uncomment ascii\_upload\_enable=YES

uncomment ascii\_download\_enable=YES

ftpd\_banner=Welcome to blah FTP sevice

add to the end of the file "use\_localtime=YES"

save &amp; exit

</td></tr><tr><td style="vertical-align:top;width:2.2708in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">systemctl start vsftpd

</td><td style="vertical-align:top;width:3.609in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;"></td></tr><tr><td style="vertical-align:top;width:2.2708in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">systemctl enable vsftpd

</td><td style="vertical-align:top;width:3.609in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;"></td></tr><tr><td style="vertical-align:top;width:2.2708in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">systemctl stop firewalld

</td><td style="vertical-align:top;width:3.609in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;"></td></tr><tr><td style="vertical-align:top;width:2.2902in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">systemctl disable firewalld

</td><td style="vertical-align:top;width:3.5895in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;"></td></tr></tbody></table>

</div></div></div></div>client host:

<div id="bkmrk-yum-install-ftp-inst" style="direction:ltr;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:8.1402in;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:8.1402in;"><div style="direction:ltr;"><table style="direction:ltr;border-collapse:collapse;border:1pt solid #A3A3A3;" title=""><tbody><tr><td style="vertical-align:top;width:1.584in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">yum install ftp

</td><td style="vertical-align:top;width:4.6784in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">install the client package

</td></tr><tr><td style="vertical-align:top;width:1.6027in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">ftp 192.168.50.105

</td><td style="vertical-align:top;width:4.7284in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">log in to the remote host via ftp

enter username and password of an active remote host account

</td></tr><tr><td style="vertical-align:top;width:1.584in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">bi

</td><td style="vertical-align:top;width:4.6784in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">switch to binary mode (data integrity)

</td></tr><tr><td style="vertical-align:top;width:1.584in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">hash

</td><td style="vertical-align:top;width:4.6784in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">display progress visually

</td></tr><tr><td style="vertical-align:top;width:1.584in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">put filename

</td><td style="vertical-align:top;width:4.6784in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">transfer a file

</td></tr><tr><td style="vertical-align:top;width:1.584in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">bye

</td><td style="vertical-align:top;width:4.6784in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">exit ftp

</td></tr></tbody></table>

</div></div></div></div>Secure Copy Protocol (Better security and authentication)

<div id="bkmrk-uses-port-22-%28same-a" style="direction:ltr;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:8.1402in;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:8.1402in;">- <span style="font-family:Consolas;font-size:10pt;">Uses Port 22 (same as SSH)</span>

</div></div></div>client host:

<div id="bkmrk-touch-filename-creat" style="direction:ltr;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:8.1402in;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:8.1402in;"><div style="direction:ltr;"><table style="direction:ltr;border-collapse:collapse;border:1pt solid #A3A3A3;" title=""><tbody><tr><td style="vertical-align:top;width:3.7979in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">touch filename

</td><td style="vertical-align:top;width:4.1784in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">create a file

</td></tr><tr><td style="vertical-align:top;width:3.8173in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">scp filename jsmith@192.168.50.105:/home/jsmith

</td><td style="vertical-align:top;width:4.2041in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">securely copy the file to /home/jsmith on remote host  
enter jsmith password

</td></tr></tbody></table>

</div></div></div></div>

# Software & Packages

RHC Connect (needed for package commands)

<div id="bkmrk-rhc-connect--u-usern" style="direction:ltr;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:14.2902in;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:14.2902in;"><div style="direction:ltr;"><table style="direction:ltr;border-collapse:collapse;border:1pt solid #A3A3A3;" title=""><tbody><tr><td style="vertical-align:top;width:2.9013in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">rhc connect -u username -p password

</td><td style="vertical-align:top;width:3.2006in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">connects to red hat subscription manager

</td></tr></tbody></table>

</div></div></div></div>username: nicksotelo95

password: RHELsolomon5!!

Packages are Collections of Files

<div id="bkmrk-rpm-%3D-red-hat-packag" style="direction:ltr;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:14.2902in;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:14.2902in;">- <span style="font-family:Consolas;font-size:10pt;">RPM = Red Hat Package Manager tool</span>
- <span style="font-family:Consolas;font-size:10pt;">CentOS &amp; RHEL packages are in .rpm format</span>

<div style="direction:ltr;"><table style="direction:ltr;border-collapse:collapse;border:1pt solid #A3A3A3;" title=""><tbody><tr><td style="vertical-align:top;width:1.9652in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">dnf

</td><td style="vertical-align:top;width:3.6125in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">install CentOS &amp; RHEL packages (formerly yum)

</td></tr><tr><td style="vertical-align:top;width:1.9652in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">dnf install chrony -y

</td><td style="vertical-align:top;width:3.609in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">install time sync manager (yes to prompts)

</td></tr><tr><td style="vertical-align:top;width:1.9652in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">dnf install httpd -y

</td><td style="vertical-align:top;width:3.609in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">install apache web server

</td></tr><tr><td style="vertical-align:top;width:1.9652in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">rpm -qa | wc -l

</td><td style="vertical-align:top;width:3.609in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">count how many packages are installed  
-q query  
-a all

wc word count

-l lines

</td></tr><tr><td style="vertical-align:top;width:1.9652in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">dnf install bind

</td><td style="vertical-align:top;width:3.6784in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">installs Berkeley Internet Name Domain package

</td></tr><tr><td style="vertical-align:top;width:1.9847in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">cat /etc/redhat-release

</td><td style="vertical-align:top;width:3.5895in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">check RHEL version

</td></tr><tr><td style="vertical-align:top;width:1.9652in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">dnf update -y

</td><td style="vertical-align:top;width:3.609in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">update all packages to latest version

</td></tr><tr><td style="vertical-align:top;width:1.9652in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">dnf install ksh -y

</td><td style="vertical-align:top;width:3.609in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">install kornshell package

</td></tr><tr><td style="vertical-align:top;width:1.9652in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">dnf remove ksh -y

</td><td style="vertical-align:top;width:3.609in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">remove kornshell package

</td></tr></tbody></table>

</div></div></div></div>Manual Package Installations

<div id="bkmrk-wget-%3Cdownload-link-" style="direction:ltr;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:14.2902in;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:14.2902in;"><div style="direction:ltr;"><table style="direction:ltr;border-collapse:collapse;border:1pt solid #A3A3A3;" title=""><tbody><tr><td style="vertical-align:top;width:3.493in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">wget &lt;download link address&gt;

</td><td style="vertical-align:top;width:2.1583in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">rpmfind.net

</td></tr><tr><td style="vertical-align:top;width:3.493in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">find / -name \*ksh\*.rpm 2&gt;/dev/null

</td><td style="vertical-align:top;width:2.2277in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">verifies downloaded package

</td></tr><tr><td style="vertical-align:top;width:3.493in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">rpm -ihv ksh\*.rpm

</td><td style="vertical-align:top;width:2.1583in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">KSH… package

-i install

-h progress bar

-v verbose

</td></tr><tr><td style="vertical-align:top;width:3.5118in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">wget &lt;download link for chkconfig depdency&gt;

</td><td style="vertical-align:top;width:2.1388in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;"></td></tr><tr><td style="vertical-align:top;width:3.493in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">rpm -ihv chkconfig\*.rpm

</td><td style="vertical-align:top;width:2.1583in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">install depdedency first

</td></tr><tr><td style="vertical-align:top;width:3.493in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">rpm -qa | grep ksh

</td><td style="vertical-align:top;width:2.1583in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">verify installation  
-q query

-a all

</td></tr><tr><td style="vertical-align:top;width:3.493in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">rpm -qi ksh

</td><td style="vertical-align:top;width:2.1583in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">more info on the package

</td></tr><tr><td style="vertical-align:top;width:3.493in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">rpm -e ksh

</td><td style="vertical-align:top;width:2.1583in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">remove it manually

</td></tr></tbody></table>

</div></div></div></div>Offline Package Installation

<div id="bkmrk-building-a-local-rep" style="direction:ltr;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:14.2902in;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:14.2902in;">- <span style="font-family:Consolas;font-size:10pt;">Building a local repository from an iso</span>
- [<span style="font-family:Consolas;font-size:10pt;">https://mirror.stream.centos.org/9-stream/BaseOS/x86\_64/iso/</span>](https://mirror.stream.centos.org/9-stream/BaseOS/x86_64/iso/)

<div style="direction:ltr;"><table style="direction:ltr;border-collapse:collapse;border:1pt solid #A3A3A3;" title=""><tbody><tr><td style="vertical-align:top;width:5.5548in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">wget -O ~/iso-downloads/centos-9.iso &lt;.iso url&gt;

</td><td style="vertical-align:top;width:8.5729in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">download the iso to ~/iso-downloads and name it centos-9.iso

</td></tr><tr><td style="vertical-align:top;width:5.5548in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">mkdir -p /mnt/rhel-dvd

</td><td style="vertical-align:top;width:8.5729in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">create the mount folder

-p create parent if required, suppress errors if already exists

</td></tr><tr><td style="vertical-align:top;width:5.5736in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">mount -t iso9660 -o loop,ro ~/iso-downloads/centos-9.iso /mnt/rhel-dvd

</td><td style="vertical-align:top;width:8.5534in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">mount centos-9.iso as /mnt/rhel-dvd

-t (optional) iso9660 type = standard format for optical disks

-o loop - option to treat the iso as a physical block device

ro read only

</td></tr><tr><td style="vertical-align:top;width:5.5548in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">df -h

</td><td style="vertical-align:top;width:8.5729in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">verify mounted disk file system  
-h human readable

</td></tr><tr><td style="vertical-align:top;width:5.5548in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">mkdir -p /localrepo

</td><td style="vertical-align:top;width:8.5729in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">create a directory for .rpm packages and metadata

</td></tr><tr><td style="vertical-align:top;width:5.5548in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">cp -rv /mnt/rhel-dvd/BaseOS/Packages/\* /localrepo

</td><td style="vertical-align:top;width:8.5729in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">unpack iso BaseOS to localrepo  
-r recursive

-v verbose

</td></tr><tr><td style="vertical-align:top;width:5.5548in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">cp -rv /mnt/rhel-dvd/AppStream/\* /localrepo

</td><td style="vertical-align:top;width:8.5729in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">unpack iso AppStream to localrepo

</td></tr><tr><td style="vertical-align:top;width:5.5548in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">dnf install createrepo\_c -y

</td><td style="vertical-align:top;width:8.5729in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">installs the createrepo\_c utility

</td></tr><tr><td style="vertical-align:top;width:5.5548in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">createrepo /localrepo/

</td><td style="vertical-align:top;width:8.5729in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">scan folder and build the necessary XML metadata in the repository

so dnf/yum can index package names, versions &amp; dependencies

</td></tr><tr><td style="vertical-align:top;width:5.5548in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">cd /etc/yum.repos.d

</td><td style="vertical-align:top;width:8.5729in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">go to the location that dns reads .repo (config) files from

</td></tr><tr><td style="vertical-align:top;width:5.5548in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">mkdir backup

</td><td style="vertical-align:top;width:8.5729in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">backup existing repo files for later

</td></tr><tr><td style="vertical-align:top;width:5.5548in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">mv \*.repo backup

</td><td style="vertical-align:top;width:8.5729in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">move any existing repos to backup, disables default Red Hat online repositories

ensures the system only uses local repositories

</td></tr><tr><td style="vertical-align:top;width:5.5548in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">nano local.repo

\[localrepo\]

name=localrepo

baseurl=file:///localrepo/

enabled=1

gpgcheck=0

metadata\_expire=-1

</td><td style="vertical-align:top;width:8.6416in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">create a local .repo (config) file for local repositories

repository header

human readable name to show up in lists

exact path to the files, [file:///](file:///) tells the system to look at a local directory /localrepo/ rather than http://

enabled the repository

disable verification check for security signatures (GPG keys) on the packages

Disable metadata expiry

</td></tr><tr><td style="vertical-align:top;width:5.5548in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">dnf clean all

</td><td style="vertical-align:top;width:8.5729in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">delete cached repository metadata and package indexes (existing .repo's)

</td></tr><tr><td style="vertical-align:top;width:5.5548in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">dnf repolist

</td><td style="vertical-align:top;width:8.5729in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">list all active software sources

</td></tr><tr><td style="vertical-align:top;width:5.5548in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">dnf install httpd -y

</td><td style="vertical-align:top;width:8.5729in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">verifies the local repository can support package installations

</td></tr></tbody></table>

</div></div></div></div>

# Containers

Containers allows developers to test and build applications on any computer by putting it in a container bundled with software code, libraries, and config files

Docker

<div id="bkmrk-software-used-to-cre" style="direction:ltr;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:10.3111in;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:10.3111in;">- <span style="font-family:Consolas;font-size:10pt;">software used to create and manage containers</span>
- <span style="font-family:Consolas;font-size:10pt;">can be installed on Linux - daemon can be controlled natively</span>
- <span style="font-family:Consolas;font-size:10pt;">not supported in RHEL 8</span>

</div></div></div>Podman

<div id="bkmrk-developed-by-red-hat" style="direction:ltr;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:10.3111in;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:10.3111in;">- <span style="font-family:Consolas;font-size:10pt;">developed by Red Hat 2018 as an alternative to docker</span>
- <span style="font-family:Consolas;font-size:10pt;">daemon less, open source, linux native tool to develop, manage and run containers</span>

</div></div></div>Red Hat provides a set of CLI tools

<div id="bkmrk-podman---directly-ma" style="direction:ltr;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:10.3111in;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:10.3111in;">- <span style="font-family:Consolas;font-size:10pt;">podman - directly managing pods and container images (run, stop, start, ps attach, etc)</span>
- <span style="font-family:Consolas;font-size:10pt;">buildah - for building, pushing, and signing container images</span>
- <span style="font-family:Consolas;font-size:10pt;">skopeo - copying, inspecting, deleting, signing images</span>
- <span style="font-family:Consolas;font-size:10pt;">runc - providing container run and build features to podman and buildah</span>
- <span style="font-family:Consolas;font-size:10pt;">crun - optional runtime that can be configured and give greater flexibility, control &amp; security for rootless containers</span>

</div></div></div><div id="bkmrk-images---containers-" style="direction:ltr;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:10.3111in;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:10.3111in;">- <span style="font-family:Consolas;font-size:10pt;">images - containers can be created through images and containers can be converted to images</span>
- <span style="font-family:Consolas;font-size:10pt;">pods - groups of containers deployed together on the host</span>

</div></div></div>Basic Commands

<div id="bkmrk-dnf-install-podman--" style="direction:ltr;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:10.3111in;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:10.3111in;"><div style="direction:ltr;"><table style="direction:ltr;border-collapse:collapse;border:1pt solid #A3A3A3;" title=""><tbody><tr><td style="vertical-align:top;width:1.8423in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">dnf install podman -y

</td><td style="vertical-align:top;width:5.3875in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">install podman

</td></tr><tr><td style="vertical-align:top;width:1.8229in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">alias docker=podman

</td><td style="vertical-align:top;width:5.4062in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">used when switching from docker to podman

</td></tr><tr><td style="vertical-align:top;width:1.8229in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">podman -v

</td><td style="vertical-align:top;width:5.4062in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">check podman version

</td></tr><tr><td style="vertical-align:top;width:1.8229in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">podman info

</td><td style="vertical-align:top;width:5.4756in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">check podman environment (see registries)  
if loading an image, looks locally, then to registries by order listed

</td></tr></tbody></table>

</div></div></div></div>Image --&gt; Run Container --&gt; Remove it

<div id="bkmrk-podman-search-httpd-" style="direction:ltr;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:10.3111in;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:10.3111in;"><div style="direction:ltr;"><table style="direction:ltr;border-collapse:collapse;border:1pt solid #A3A3A3;" title=""><tbody><tr><td style="vertical-align:top;width:4.8013in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">podman search httpd

</td><td style="vertical-align:top;width:3.1784in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">search container registries for an image

</td></tr><tr><td style="vertical-align:top;width:4.8013in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">podman pull docker.io/library/httpd

</td><td style="vertical-align:top;width:3.109in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">download image from a registry

</td></tr><tr><td style="vertical-align:top;width:4.8013in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">podman images

</td><td style="vertical-align:top;width:3.109in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">list downloaded images

</td></tr><tr><td style="vertical-align:top;width:4.8208in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">podman run -d --name web1 -p 8080:80 docker.io/library/httpd

</td><td style="vertical-align:top;width:3.159in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">create &amp; start a container from an image

</td></tr><tr><td style="vertical-align:top;width:4.8013in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">podman ps

</td><td style="vertical-align:top;width:3.109in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">list running containers

</td></tr><tr><td style="vertical-align:top;width:4.8013in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">curl localhost:8080 (or web) [http://localhost:8080](http://localhost:8080)

</td><td style="vertical-align:top;width:3.109in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">verify application is accessible

</td></tr><tr><td style="vertical-align:top;width:4.8013in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">podman stop web1

</td><td style="vertical-align:top;width:3.109in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">stop a container gracefully

</td></tr><tr><td style="vertical-align:top;width:4.8013in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">podman rm -f web1

</td><td style="vertical-align:top;width:3.109in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">remove a container

</td></tr></tbody></table>

</div></div></div></div>Image --&gt; Create Container --&gt; Start Container

<div id="bkmrk-podman-pull-docker.i" style="direction:ltr;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:10.3111in;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:10.3111in;"><div style="direction:ltr;"><table style="direction:ltr;border-collapse:collapse;border:1pt solid #A3A3A3;" title=""><tbody><tr><td style="vertical-align:top;width:4.8013in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">podman pull docker.io/library/httpd

</td><td style="vertical-align:top;width:2.6513in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">download image from a registry

</td></tr><tr><td style="vertical-align:top;width:4.8208in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">podman create --name web2 -p 8081:80 docker.io/library/httpd

</td><td style="vertical-align:top;width:2.6319in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">create a container

</td></tr><tr><td style="vertical-align:top;width:4.8013in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">podman ps -a

</td><td style="vertical-align:top;width:2.6513in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">verify status is created  
-a all containers

</td></tr><tr><td style="vertical-align:top;width:4.8013in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">podman start web2

</td><td style="vertical-align:top;width:2.6513in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">start an existing container

</td></tr><tr><td style="vertical-align:top;width:4.8013in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">podman ps

</td><td style="vertical-align:top;width:2.7208in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">verify container status is running

</td></tr><tr><td style="vertical-align:top;width:4.8013in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">curl localhost:8081 (or web) [http://localhost:8081](http://localhost:8081)

</td><td style="vertical-align:top;width:2.6513in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">verify application is accessible

</td></tr><tr><td style="vertical-align:top;width:4.8013in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">podman logs web2

</td><td style="vertical-align:top;width:2.7208in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">view output generated by container

</td></tr></tbody></table>

</div></div></div></div>Quadlet (Modern RHEL10) systemd container management

<div id="bkmrk-mkdir--p-%2Fetc%2Fcontai" style="direction:ltr;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:10.3111in;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:10.3111in;"><div style="direction:ltr;"><table style="direction:ltr;border-collapse:collapse;border:1pt solid #A3A3A3;" title=""><tbody><tr><td style="vertical-align:top;width:4.0375in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">mkdir -p /etc/containers/systemd

</td><td style="vertical-align:top;width:3.7965in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">create directory for quadlet definitions

</td></tr><tr><td style="vertical-align:top;width:4.0375in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">nano /etc/containers/systemd/web3.container  
…

\[Unit\]

Description=Apache Web Container

\[Container\]

Image=docker.io/library/httpd

ContainerName=web3

PublishPort=8082:80

\[Service\]

Restart=always

\[Install\]

WantedBy=multi-user.target

</td><td style="vertical-align:top;width:3.8416in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">create quadlet container definition file  
  
define systemd metadata  
description  
  
define container-specific settings  
specifies container image  
assigns name  
maps host port to container port  
  
defines systemd behaviour  
automatically restart container if it stops  
  
definte boot settings  
allow service to start automatically during boot

</td></tr><tr><td style="vertical-align:top;width:4.0375in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">systemctl daemon-reload

</td><td style="vertical-align:top;width:3.7965in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">reload systemd configuration

</td></tr><tr><td style="vertical-align:top;width:4.0375in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">systemctl enable --now web3.service

</td><td style="vertical-align:top;width:3.7965in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">enable service at boot and start now

</td></tr><tr><td style="vertical-align:top;width:4.0375in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">systemctl status web3.service

</td><td style="vertical-align:top;width:3.7965in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">verify service status

</td></tr><tr><td style="vertical-align:top;width:4.0375in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">podman ps

</td><td style="vertical-align:top;width:3.7965in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">verify container status is running

</td></tr><tr><td style="vertical-align:top;width:4.0569in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">curl localhost:8082 (or web) [http://localhost:8082](http://localhost:8082)

</td><td style="vertical-align:top;width:3.777in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">verify application is accessible

</td></tr></tbody></table>

</div></div></div></div>

# Storage & LVM

Types of Storage

<div id="bkmrk-local-storage-san-%28s" style="direction:ltr;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:8.4868in;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:8.4868in;">- <span style="font-family:Consolas;font-size:10pt;">Local Storage</span>
- <span style="font-family:Consolas;font-size:10pt;">SAN (Storage Area Network)</span>
- <span style="font-family:Consolas;font-size:10pt;">NAS (Network Attached Storage)</span>

</div></div></div>Basic Commands

<div id="bkmrk-fdisk--l-disk-partit" style="direction:ltr;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:8.4868in;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:8.4868in;"><div style="direction:ltr;"><table style="direction:ltr;border-collapse:collapse;border:1pt solid #A3A3A3;" title=""><tbody><tr><td style="vertical-align:top;width:0.8395in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">fdisk -l

</td><td style="vertical-align:top;width:4.0513in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">disk partition utility (displays disk system names)  
-l list disks

</td></tr><tr><td style="vertical-align:top;width:0.8395in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">lsblk -f

</td><td style="vertical-align:top;width:4.0062in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">list block devices (displays UUID)  
-f forest (tree) hierarchy

</td></tr><tr><td style="vertical-align:top;width:0.8201in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">df -h

</td><td style="vertical-align:top;width:4.0256in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">filesystem capacity (displays mounted disks)

-h human readable

</td></tr></tbody></table>

</div></div></div></div>Add a New Disk

<div id="bkmrk-insert-a-new-2gb-dis" style="direction:ltr;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:8.4868in;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:8.4868in;"><div style="direction:ltr;"><table style="direction:ltr;border-collapse:collapse;border:1pt solid #A3A3A3;" title=""><tbody><tr><td colspan="2" style="vertical-align:top;width:2.2388in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">insert a new 2GB disk

</td></tr><tr><td style="vertical-align:top;width:1.8125in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">fdisk /dev/sdb

</td><td style="vertical-align:top;width:5.9in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">enter fdisk utility for the new disk

</td></tr><tr><td style="vertical-align:top;width:1.8125in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">n

</td><td style="vertical-align:top;width:5.9in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">new partition

</td></tr><tr><td style="vertical-align:top;width:1.8125in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">enter (default)

</td><td style="vertical-align:top;width:5.9in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">new standalone disk

</td></tr><tr><td style="vertical-align:top;width:1.8125in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">enter (default)

</td><td rowspan="2" style="vertical-align:top;width:5.9694in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">first sector 2048 last sector 67108863  
(whole disk = 1 partition)

</td></tr><tr><td style="vertical-align:top;width:1.7284in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">enter (default)

</td></tr><tr><td style="vertical-align:top;width:1.8125in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">w

</td><td style="vertical-align:top;width:5.9in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">write (apply)

</td></tr><tr><td style="vertical-align:top;width:1.8125in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">mkfs.xfs /dev/sdb1

</td><td style="vertical-align:top;width:5.9in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">create xfs filesystem for the disk

</td></tr><tr><td style="vertical-align:top;width:1.8125in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">mkdir /data

</td><td style="vertical-align:top;width:5.9in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">create directory to mount the disk to

</td></tr><tr><td style="vertical-align:top;width:1.8125in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">lsblk -f

</td><td style="vertical-align:top;width:5.9in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">retrieve UUID

</td></tr><tr><td style="vertical-align:top;width:1.8319in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">mount /dev/sdb1 /data

</td><td style="vertical-align:top;width:5.8805in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">mount the disk to the directory

</td></tr><tr><td style="vertical-align:top;width:1.8125in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">nano /etc/fstab

</td><td style="vertical-align:top;width:5.9694in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">add the below line to mount during boot (spaces = tab)  
<span style="text-decoration:line-through;">/dev/sdb1 /data xfs defaults 0 0</span>

UUID=4461ddd4-6c2c-4078-ab90-d4514368dd09 /data xfs defaults 0 0

</td></tr><tr><td style="vertical-align:top;width:1.8125in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">reboot

</td><td style="vertical-align:top;width:5.9in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">verify successful boot

</td></tr><tr><td style="vertical-align:top;width:1.8125in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">umount /data

</td><td style="vertical-align:top;width:5.9in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">to unmount

</td></tr><tr><td style="vertical-align:top;width:1.8125in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">mount -a

</td><td style="vertical-align:top;width:5.9in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">mount disks again according to /etc/fstab

</td></tr></tbody></table>

</div></div></div></div>LVM (Logical Volume Management)

<div id="bkmrk-allows-disks-to-be-c" style="direction:ltr;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:8.4868in;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:8.4868in;">- <span style="font-family:Consolas;font-size:10pt;">Allows disks to be combined together via software</span>
- <span style="font-family:Consolas;font-size:10pt;">Volume groups can be extended by adding additional disks</span>

<div style="direction:ltr;"><table style="direction:ltr;border-collapse:collapse;border:1pt solid #A3A3A3;" title=""><tbody><tr><td style="vertical-align:top;width:1.3743in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">Physical Volume

</td><td style="vertical-align:top;width:1.1451in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">Volume Group

</td><td style="vertical-align:top;width:1.2979in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">Logical Volume

</td><td style="vertical-align:top;width:0.909in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">Mounted On

</td></tr><tr><td rowspan="3" style="vertical-align:top;width:1.3548in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">Disk 1

</td><td rowspan="3" style="vertical-align:top;width:1.1256in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">rootvg

</td><td style="vertical-align:top;width:1.2784in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">system

</td><td style="vertical-align:top;width:0.6937in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">/

</td></tr><tr><td style="vertical-align:top;width:1.2784in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">home

</td><td style="vertical-align:top;width:0.8048in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">/home

</td></tr><tr><td style="vertical-align:top;width:1.2784in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">swap

</td><td style="vertical-align:top;width:0.5756in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;"></td></tr><tr><td style="vertical-align:top;width:1.3548in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">Disk 2

</td><td rowspan="4" style="vertical-align:top;width:1.1256in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">datavg

</td><td style="vertical-align:top;width:1.2784in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">data1

</td><td style="vertical-align:top;width:0.8048in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">/data1

</td></tr><tr><td style="vertical-align:top;width:1.093in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">Disk 3

</td><td style="vertical-align:top;width:1.2784in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">data2

</td><td style="vertical-align:top;width:0.8048in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">/data2

</td></tr><tr><td rowspan="2" style="vertical-align:top;width:1.093in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">Disk 4

</td><td style="vertical-align:top;width:1.2784in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">data3

</td><td style="vertical-align:top;width:0.8048in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">/data3

</td></tr><tr><td style="vertical-align:top;width:1.2784in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">data4

</td><td style="vertical-align:top;width:0.8048in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">/data4

</td></tr></tbody></table>

</div></div></div></div>Add Disk and Create LVM Partition

<div id="bkmrk-file-system-datafs-l" style="direction:ltr;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:8.4868in;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:8.4868in;"><div style="direction:ltr;"><table style="direction:ltr;border-collapse:collapse;border:1pt solid #A3A3A3;" title=""><tbody><tr><td style="vertical-align:top;width:1.5076in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">File system

</td><td colspan="3" style="vertical-align:top;width:2.4388in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">datafs

</td></tr><tr><td style="vertical-align:top;width:1.527in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">Logical Volume(s)

</td><td colspan="3" style="vertical-align:top;width:2.4388in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">datalv

</td></tr><tr><td style="vertical-align:top;width:1.5076in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">Volume Group

</td><td colspan="3" style="vertical-align:top;width:2.4388in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">datavg

</td></tr><tr><td style="vertical-align:top;width:1.5076in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">Physical Volume

</td><td style="vertical-align:top;width:0.9159in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">/dev/sda1

</td><td style="vertical-align:top;width:0.9159in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">/dev/sdb1

</td><td style="vertical-align:top;width:0.8326in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">/dev/sdc1

</td></tr><tr><td style="vertical-align:top;width:1.5076in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">Partitions

</td><td style="vertical-align:top;width:0.9159in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">/dev/sda1

</td><td style="vertical-align:top;width:0.9159in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">/dev/sdb1

</td><td style="vertical-align:top;width:0.8326in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">/dev/sdc1

</td></tr><tr><td style="vertical-align:top;width:1.5076in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">Hard Disks

</td><td style="vertical-align:top;width:0.8965in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">/dev/sda

</td><td style="vertical-align:top;width:0.8965in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">/dev/sdb

</td><td style="vertical-align:top;width:0.7666in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">/dev/sdc

</td></tr></tbody></table>

</div></div></div></div>Basic Commands

<div id="bkmrk-pvdisplay-display-ph" style="direction:ltr;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:8.4868in;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:8.4868in;"><div style="direction:ltr;"><table style="direction:ltr;border-collapse:collapse;border:1pt solid #A3A3A3;" title=""><tbody><tr><td style="vertical-align:top;width:0.9159in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">pvdisplay

</td><td style="vertical-align:top;width:1.9791in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">display phsyical volumes

</td></tr><tr><td style="vertical-align:top;width:0.8965in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">pvs

</td><td style="vertical-align:top;width:1.9986in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">summary physical volumes

</td></tr><tr><td style="vertical-align:top;width:0.9159in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">vgdisplay

</td><td style="vertical-align:top;width:1.9097in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">display volume groups

</td></tr><tr><td style="vertical-align:top;width:0.8965in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">vgs

</td><td style="vertical-align:top;width:1.9291in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">summary volume groups

</td></tr><tr><td style="vertical-align:top;width:0.9159in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">lvdisplay

</td><td style="vertical-align:top;width:1.9131in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">display logical volumes

</td></tr><tr><td style="vertical-align:top;width:0.8965in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">lvs

</td><td style="vertical-align:top;width:1.9326in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">summary logical volumes

</td></tr></tbody></table>

</div></div></div></div>Creating this Structure

<div id="bkmrk-insert-a-new-1gb-dis" style="direction:ltr;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:8.4868in;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:8.4868in;"><div style="direction:ltr;"><table style="direction:ltr;border-collapse:collapse;border:1pt solid #A3A3A3;" title=""><tbody><tr><td colspan="2" style="vertical-align:top;width:2.2388in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">insert a new 1GB disk

</td></tr><tr><td style="vertical-align:top;width:3.1111in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">fdisk /dev/sdc

</td><td style="vertical-align:top;width:5.2125in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">enter fdisk utility for the new disk

</td></tr><tr><td style="vertical-align:top;width:3.1111in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">n

</td><td style="vertical-align:top;width:5.2125in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">new partition

</td></tr><tr><td style="vertical-align:top;width:3.1111in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">enter (default)

</td><td style="vertical-align:top;width:5.2125in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">new standalone disk

</td></tr><tr><td style="vertical-align:top;width:3.1111in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">enter (default)

</td><td rowspan="2" style="vertical-align:top;width:5.2819in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">first sector 2048 last sector 67108863  
(whole disk = 1 partition)

</td></tr><tr><td style="vertical-align:top;width:1.7805in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">enter (default)

</td></tr><tr><td style="vertical-align:top;width:3.1111in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">p

</td><td style="vertical-align:top;width:5.2125in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">show partitions

</td></tr><tr><td style="vertical-align:top;width:3.1111in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">t

</td><td style="vertical-align:top;width:5.2125in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">change partition type

</td></tr><tr><td style="vertical-align:top;width:3.1111in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">L

</td><td style="vertical-align:top;width:5.2125in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">show LVM hex codes

</td></tr><tr><td style="vertical-align:top;width:3.1111in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">8e

</td><td style="vertical-align:top;width:5.2125in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">Linux LVM

</td></tr><tr><td style="vertical-align:top;width:3.1111in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">w

</td><td style="vertical-align:top;width:5.2125in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">write (apply)

</td></tr><tr><td style="vertical-align:top;width:3.1111in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">pvcreate /dev/sdc1

</td><td style="vertical-align:top;width:5.2125in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">create physical volume

</td></tr><tr><td style="vertical-align:top;width:3.1111in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">vgcreate vg\_app /dev/sdc1

</td><td style="vertical-align:top;width:5.2125in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">create volume group

</td></tr><tr><td style="vertical-align:top;width:3.1305in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">lvcreate -n lv\_app --size 1020M vg\_app

</td><td style="vertical-align:top;width:5.193in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">create logical volume (allowing overhead)

</td></tr><tr><td style="vertical-align:top;width:3.1111in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">mkfs.xfs /dev/vg\_app/lv\_app

</td><td style="vertical-align:top;width:5.2125in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">create filesystem

</td></tr><tr><td style="vertical-align:top;width:3.1111in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">blkid /dec/vg\_app/lv\_app

</td><td style="vertical-align:top;width:5.2125in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">retrieve UUID

</td></tr><tr><td style="vertical-align:top;width:3.1111in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">mkdir app

</td><td style="vertical-align:top;width:5.2125in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">create directory

</td></tr><tr><td style="vertical-align:top;width:3.1111in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">mount /dev/vg\_app/lv\_app /app

</td><td style="vertical-align:top;width:5.2125in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">mount

</td></tr><tr><td style="vertical-align:top;width:3.1111in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">nano /etc/fstab

</td><td style="vertical-align:top;width:5.2819in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">UUID=12345678-abcd-1234-efgh-123456789abc<span> </span>/app<span> </span>xfs<span> </span>defaults<span> </span>0 0

</td></tr></tbody></table>

</div></div></div></div>Extending this Space (this can only be done with LVM)

<div id="bkmrk-insert-a-new-1gb-dis-1" style="direction:ltr;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:8.4868in;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:8.4868in;"><div style="direction:ltr;"><table style="direction:ltr;border-collapse:collapse;border:1pt solid #A3A3A3;" title=""><tbody><tr><td colspan="2" style="vertical-align:top;width:2.2388in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">insert a new 1GB disk

</td></tr><tr><td style="vertical-align:top;width:3.493in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">fdisk /dev/sdd

</td><td style="vertical-align:top;width:3.0326in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">enter fdisk utility for the new disk

</td></tr><tr><td style="vertical-align:top;width:3.493in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">n

</td><td style="vertical-align:top;width:3.0326in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">new partition

</td></tr><tr><td style="vertical-align:top;width:3.493in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">enter (default)

</td><td style="vertical-align:top;width:3.0326in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">new standalone disk

</td></tr><tr><td style="vertical-align:top;width:3.493in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">enter (default)

</td><td rowspan="2" style="vertical-align:top;width:3.102in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">first sector 2048 last sector 67108863  
(whole disk = 1 partition)

</td></tr><tr><td style="vertical-align:top;width:1.7805in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">enter (default)

</td></tr><tr><td style="vertical-align:top;width:3.493in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">p

</td><td style="vertical-align:top;width:3.0326in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">show partitions

</td></tr><tr><td style="vertical-align:top;width:3.493in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">t

</td><td style="vertical-align:top;width:3.0326in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">change partition type

</td></tr><tr><td style="vertical-align:top;width:3.493in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">8e

</td><td style="vertical-align:top;width:3.0326in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">Linux LVM

</td></tr><tr><td style="vertical-align:top;width:3.493in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">w

</td><td style="vertical-align:top;width:3.0326in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">write (apply)

</td></tr><tr><td style="vertical-align:top;width:3.493in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">pvcreate /dev/sdd1

</td><td style="vertical-align:top;width:3.0326in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">create phsyical volume

</td></tr><tr><td style="vertical-align:top;width:3.493in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">vgextend vg\_app /dev/sdd1

</td><td style="vertical-align:top;width:3.0326in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">extend vg\_app to new disk

</td></tr><tr><td style="vertical-align:top;width:3.5118in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">lvextend -L+1020M /dev/mapper/vg\_app-lv\_app

</td><td style="vertical-align:top;width:3.0138in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">extend by 1020MB lv\_app

</td></tr><tr><td style="vertical-align:top;width:3.493in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">xfs\_growfs /dev/mapper/vg\_app-lv\_app

</td><td style="vertical-align:top;width:3.0326in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">extend filesystem for lv\_app

</td></tr></tbody></table>

</div></div></div></div>

# Stratis Pools

Stratis

<div id="bkmrk-red-hat-8-introduced" style="direction:ltr;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:15.0388in;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:15.0388in;">- <span style="font-family:Consolas;font-size:10pt;">Red Hat 8 introduced Stratis volume management</span>
- <span style="font-family:Consolas;font-size:10pt;">Uses thin provisioning (starts with 546Mb)</span>
- <span style="font-family:Consolas;font-size:10pt;">Combines LVM and filesystems onto one system</span>
- <span style="font-family:Consolas;font-size:10pt;">Stratis automatically extends the filesystem if space is available</span>

</div></div></div><div id="bkmrk-dnf-install-stratis-" style="direction:ltr;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:15.0388in;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:15.0388in;"><div style="direction:ltr;"><table style="direction:ltr;border-collapse:collapse;border:1pt solid #A3A3A3;" title=""><tbody><tr><td style="vertical-align:top;width:2.6722in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">dnf install stratis-cli stratisd

</td><td style="vertical-align:top;width:2.1423in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">Install stratis and daemon

</td></tr><tr><td style="vertical-align:top;width:2.6527in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">systemctl enable/start stratisd

</td><td style="vertical-align:top;width:2.2277in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">Enable and start the daemon

</td></tr><tr><td style="vertical-align:top;width:2.6527in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">lsblk -f

</td><td style="vertical-align:top;width:2.1583in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;"></td></tr><tr><td style="vertical-align:top;width:2.6527in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">stratis pool list

</td><td style="vertical-align:top;width:2.1583in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;"></td></tr><tr><td style="vertical-align:top;width:2.6527in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">stratis filesystem list

</td><td style="vertical-align:top;width:2.1583in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;"></td></tr></tbody></table>

</div></div></div></div>Creating a Two-Disk Stratis Pool and Filesystem

<div id="bkmrk-insert-two-new-5gb-d" style="direction:ltr;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:15.0388in;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:15.0388in;"><div style="direction:ltr;"><table style="direction:ltr;border-collapse:collapse;border:1pt solid #A3A3A3;" title=""><tbody><tr><td colspan="2" style="vertical-align:top;width:2.468in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">insert two new 5GB disks

</td></tr><tr><td style="vertical-align:top;width:5.2576in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">stratis pool create pool1 /dev/sde

</td><td style="vertical-align:top;width:9.6173in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">create stratis pool

</td></tr><tr><td style="vertical-align:top;width:5.2576in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">stratis pool add-data pool1 /dev/sdf

</td><td style="vertical-align:top;width:9.6173in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">extend stratis pool to another disk

</td></tr><tr><td style="vertical-align:top;width:5.2576in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">stratis filesystem create pool1 fs1

</td><td style="vertical-align:top;width:9.6173in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">create stratis filesystem

</td></tr><tr><td style="vertical-align:top;width:5.2576in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">mkdir /bigdata

</td><td style="vertical-align:top;width:9.6173in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;"></td></tr><tr><td style="vertical-align:top;width:5.2576in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">mount /dev/stratis/pool1/fs1 /bigdata

</td><td style="vertical-align:top;width:9.6173in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;"></td></tr><tr><td style="vertical-align:top;width:5.2576in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">stratis filesystem snapshot pool1 fs1 fs1-snap

</td><td style="vertical-align:top;width:9.6173in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">create a snapshot

</td></tr><tr><td style="vertical-align:top;width:5.277in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">nano /etc/fstab

…

UUID=a6dca899-feab-4663-8028-fe6ce748d268 /bigdata xfs defaults,x-systemd.requires=stratisd.service 0 0

</td><td style="vertical-align:top;width:9.5979in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">tells fstab to not mount this filesystem unless the system starts stratisd daemon

(UUID of the filesystem)

</td></tr></tbody></table>

</div></div></div></div>

# Network File Shares

Network file sharing (Linux to Linux)

<div id="bkmrk-a-client%27s-mounted-n" style="direction:ltr;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:9.0423in;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:9.0423in;">- <span style="font-family:Consolas;font-size:10pt;">A client's mounted NFS export appears as a local directory</span>

</div></div></div>NFS - Exam Scenario

<div id="bkmrk-install-nfs-uitiliti" style="direction:ltr;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:9.0423in;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:9.0423in;">1. <span style="font-family:Consolas;font-size:10pt;font-weight:normal;font-style:normal;">install nfs uitilities</span>
2. <span style="font-family:Consolas;font-size:10pt;">enable the nfs server service</span>
3. <span style="font-family:Consolas;font-size:10pt;">add a correct line to /etc/exports</span>
4. <span style="font-family:Consolas;font-size:10pt;">apply it with exportfs -arv</span>
5. <span style="font-family:Consolas;font-size:10pt;">allow the nfs service in the firewall</span>
6. <span style="font-family:Consolas;font-size:10pt;">mount on the client</span>
7. <span style="font-family:Consolas;font-size:10pt;">mount persistent in /etc/fstab with options like \_netdev &amp; vers=4.2</span>

</div></div></div>NFS - Server 192.168.17.185

<div id="bkmrk-dnf-install-nfs-util" style="direction:ltr;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:9.0423in;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:9.0423in;"><div style="direction:ltr;"><table style="direction:ltr;border-collapse:collapse;border:1pt solid #A3A3A3;" title=""><tbody><tr><td style="vertical-align:top;width:5.1833in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">dnf install nfs-utils -y

</td><td style="vertical-align:top;width:3.6958in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">install nfs utilities

</td></tr><tr><td style="vertical-align:top;width:5.1833in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">systemctl enable --now nfs-server

</td><td style="vertical-align:top;width:3.6958in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">start and enable nfs service

</td></tr><tr><td style="vertical-align:top;width:5.1833in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">mkdir -p /srv/nfsshare

</td><td style="vertical-align:top;width:3.6958in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">create NFS share directory

</td></tr><tr><td style="vertical-align:top;width:5.1833in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">chmod -R 0777 /srv/nfsshare

</td><td style="vertical-align:top;width:3.6958in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">open permissions (0777 for lab)

</td></tr><tr><td style="vertical-align:top;width:5.2027in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">semanage fcontext -a -t public\_content\_rw\_t "/srv/nfsshare(/.\*)?"

</td><td style="vertical-align:top;width:3.6763in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">assign selinux context

</td></tr><tr><td style="vertical-align:top;width:5.1833in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">restorecon -Rv /srv/nfsshare

</td><td style="vertical-align:top;width:3.6958in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">apply selinux context

</td></tr><tr><td style="vertical-align:top;width:5.1833in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">ls -Zd /srv/nfsshare

</td><td style="vertical-align:top;width:3.6958in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">verify selinux context

</td></tr><tr><td style="vertical-align:top;width:5.1833in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">nano /etc/exports

…

/srv/nfsshare 192.168.17.0/24(rw,sync,no\_root\_squash)

</td><td style="vertical-align:top;width:3.6958in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">export share to subnet with read-write access

</td></tr><tr><td style="vertical-align:top;width:5.1833in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">exportfs -arv

</td><td style="vertical-align:top;width:3.6958in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">reload and verify exports

</td></tr><tr><td style="vertical-align:top;width:5.1833in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">firewall-cmd --add-service=nfs --permanent

</td><td style="vertical-align:top;width:3.6958in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">allow nfs through firewall

</td></tr><tr><td style="vertical-align:top;width:5.1833in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">firewall-cmd --add-serivce=rpc-bind --permanent

</td><td rowspan="2" style="vertical-align:top;width:3.7652in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">NFSv4 alone works over port 2049, but showmount

and legacy tools need rpc-bind and mountd ports

</td></tr><tr><td style="vertical-align:top;width:4.0715in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">firewall-cmd --add-service=mountd --permanent

</td></tr><tr><td style="vertical-align:top;width:5.1833in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">firewall-cmd --reload

</td><td style="vertical-align:top;width:3.6958in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">reload firewall rules

</td></tr><tr><td style="vertical-align:top;width:5.1833in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">exportfs -v | grep /srv/nfsshare

</td><td style="vertical-align:top;width:3.6958in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">verify export configuration

</td></tr></tbody></table>

</div></div></div></div>NFS - Client 192.168.17.208

<div id="bkmrk-ip-a-confirm-subnet-" style="direction:ltr;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:9.0423in;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:9.0423in;"><div style="direction:ltr;"><table style="direction:ltr;border-collapse:collapse;border:1pt solid #A3A3A3;" title=""><tbody><tr><td style="vertical-align:top;width:5.8944in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">ip a

</td><td style="vertical-align:top;width:2.0923in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">confirm subnet

</td></tr><tr><td style="vertical-align:top;width:5.8944in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">showmount -e 192.168.17.185

</td><td style="vertical-align:top;width:2.1618in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">verify server is exporting

</td></tr><tr><td style="vertical-align:top;width:5.8944in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">sudo dnf install nfs-utils -y

</td><td style="vertical-align:top;width:2.0923in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">install nfs utilities

</td></tr><tr><td style="vertical-align:top;width:5.8944in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">sudo mkdir -p /mnt/nfsshare

</td><td style="vertical-align:top;width:2.1618in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">create nfs mount directory

</td></tr><tr><td style="vertical-align:top;width:5.8944in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">sudo mount -t nfs -o vers=4.2 192.168.17.185:/srv/nfsshare /mnt/nfsshare

</td><td style="vertical-align:top;width:2.0923in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">mount nfs share

</td></tr><tr><td style="vertical-align:top;width:5.8944in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">df -h | grep nfsshare

</td><td style="vertical-align:top;width:2.0923in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">verify

</td></tr><tr><td style="vertical-align:top;width:5.8944in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">echo "Created from client" | sudo tee /mnt/nfsshare/client.txt &gt;/dev/null

</td><td style="vertical-align:top;width:2.0923in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">test write access

</td></tr><tr><td style="vertical-align:top;width:5.9138in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">sudo nano /etc/fstab

…

192.168.17.185:/srv/nfsshare<span> </span>/mnt/nfsshare<span> </span>nfs<span> </span>\_netdev,vers=4.2,rw<span> </span>0<span> </span>0

</td><td style="vertical-align:top;width:2.1423in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">persistent nfs mount entry

</td></tr><tr><td style="vertical-align:top;width:5.8944in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">sudo systemctl daemon-reload

</td><td style="vertical-align:top;width:2.0923in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">reload systemd config

</td></tr><tr><td style="vertical-align:top;width:5.8944in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">sudo mount -a

</td><td style="vertical-align:top;width:2.0923in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">test fstab config

</td></tr><tr><td style="vertical-align:top;width:5.8944in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">reboot

</td><td style="vertical-align:top;width:2.0923in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">verify mount survives

</td></tr></tbody></table>

</div></div></div></div>Samba (Linux to Windows)

<div id="bkmrk-implements-smb%2Fcifs-" style="direction:ltr;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:9.0423in;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:9.0423in;">- <span style="font-family:Consolas;font-size:10pt;">Implements SMB/CIFS (windows file sharing)</span>
- <span style="font-family:Consolas;font-size:10pt;">Allows Linux to share a folder that Windows clients can map</span>
- <span style="font-family:Consolas;font-size:10pt;">Linux clients can connect using CIFS</span>
- <span style="font-family:Consolas;font-size:10pt;">Define a share in /etc/samba/smb.conf</span>
- <span style="font-family:Consolas;font-size:10pt;">With SELinux, you need to label the path you are sharing</span>
- <span style="font-family:Consolas;font-size:10pt;">Set proper file permissions and ACLs</span>
- <span style="font-family:Consolas;font-size:10pt;">Ensure SELinux is enforcing with right context on shared directories</span>

</div></div></div>Samba - Exam Scenario

<div id="bkmrk-install-samba-add-a-" style="direction:ltr;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:9.0423in;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:9.0423in;">1. <span style="font-family:Consolas;font-size:10pt;font-weight:normal;font-style:normal;">install Samba</span>
2. <span style="font-family:Consolas;font-size:10pt;">add a share block in smb.conf and verify wih testparm</span>
3. <span style="font-family:Consolas;font-size:10pt;">label the directory using semanage fcontext and restorecon</span>
4. <span style="font-family:Consolas;font-size:10pt;">allow the samba service through the firewall</span>
5. <span style="font-family:Consolas;font-size:10pt;">start and enable the smb daemon</span>
6. <span style="font-family:Consolas;font-size:10pt;">test with smbclient</span>
7. <span style="font-family:Consolas;font-size:10pt;">mount using CIFS</span>
8. <span style="font-family:Consolas;font-size:10pt;">make persistent in /etc/fstab </span>

</div></div></div>Samba - Server 192.168.17.185

<div id="bkmrk-dnf-install--y-samba" style="direction:ltr;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:9.0423in;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:9.0423in;"><div style="direction:ltr;"><table style="direction:ltr;border-collapse:collapse;border:1pt solid #A3A3A3;" title=""><tbody><tr><td style="vertical-align:top;width:4.8256in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">dnf install -y samba policycoreutils-python-utils

</td><td style="vertical-align:top;width:3.0777in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">install samba server and selinux tools

</td></tr><tr><td style="vertical-align:top;width:4.8256in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">mkdir -p /srv/sambashare

</td><td style="vertical-align:top;width:3.0083in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">create samba share directory

</td></tr><tr><td style="vertical-align:top;width:4.8256in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">echo "This is a samba file" &gt; /srv/sambashare/readme.txt

</td><td style="vertical-align:top;width:3.0083in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">create test file

</td></tr><tr><td style="vertical-align:top;width:4.8256in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">chmod -R 0777 /srv/sambashare

</td><td style="vertical-align:top;width:3.0083in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">open permissions (0777 for lab)

</td></tr><tr><td style="vertical-align:top;width:4.8256in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">nano /etc/samba/smb.conf

…

\[sambashare\]

path = /srv/sambashare

browsable = yes

writable = yes

guest ok = yes

read only = no

</td><td style="vertical-align:top;width:3.0083in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">define samba share configuration

</td></tr><tr><td style="vertical-align:top;width:4.8256in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">testparm -s

</td><td style="vertical-align:top;width:3.0083in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">validate samba config

</td></tr><tr><td style="vertical-align:top;width:4.8451in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">semanage fcontext -a -t samba\_share\_t "/srv/sambashare(/.\*)?"

</td><td style="vertical-align:top;width:2.9895in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">assign selinux context

</td></tr><tr><td style="vertical-align:top;width:4.8256in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">restorecon -Rv /srv/sambashare

</td><td style="vertical-align:top;width:3.0083in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">apply selinux context

</td></tr><tr><td style="vertical-align:top;width:4.8256in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">ls -Zd /srv/sambashare

</td><td style="vertical-align:top;width:3.0083in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">verify selinux context

</td></tr><tr><td style="vertical-align:top;width:4.8256in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">firewall-cmd --add-service=samba --permanent

</td><td style="vertical-align:top;width:3.0083in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">allow samba through firewall

</td></tr><tr><td style="vertical-align:top;width:4.8256in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">firewall-cmd --reload

</td><td style="vertical-align:top;width:3.0083in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">reload firewall rules

</td></tr><tr><td style="vertical-align:top;width:4.8256in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">systemctl enable --now smb

</td><td style="vertical-align:top;width:3.0083in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">start and enable samba service

</td></tr><tr><td style="vertical-align:top;width:4.8256in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">systemctl status smb --no-pager

</td><td style="vertical-align:top;width:3.0083in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">verify status

</td></tr></tbody></table>

</div></div></div></div>Samba - Client 192.168.17.208

<div id="bkmrk-sudo-dnf-install--y-" style="direction:ltr;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:9.0423in;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:9.0423in;"><div style="direction:ltr;"><table style="direction:ltr;border-collapse:collapse;border:1pt solid #A3A3A3;" title=""><tbody><tr><td style="vertical-align:top;width:6.5055in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">sudo dnf install -y samba-client cifs-utils

</td><td style="vertical-align:top;width:2.1687in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">install samba client tools

</td></tr><tr><td style="vertical-align:top;width:6.5055in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">smbclient -L //192.168.17.185 -N

</td><td style="vertical-align:top;width:2.2381in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">list available samba shares

</td></tr><tr><td style="vertical-align:top;width:6.5055in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">smbclient //192.168.17.185/sambashare -N

</td><td style="vertical-align:top;width:2.1687in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">connect to samba share

</td></tr><tr><td style="vertical-align:top;width:6.5055in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">ls

</td><td style="vertical-align:top;width:2.1687in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">list files in share

</td></tr><tr><td style="vertical-align:top;width:6.5055in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">get readme.txt

</td><td style="vertical-align:top;width:2.1687in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">download file from share

</td></tr><tr><td style="vertical-align:top;width:6.5055in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">quit

</td><td style="vertical-align:top;width:2.1687in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">exit smbclient session

</td></tr><tr><td style="vertical-align:top;width:6.5055in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">sudo mkdir -p /mnt/sambashare

</td><td style="vertical-align:top;width:2.1687in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">create mount directory

</td></tr><tr><td style="vertical-align:top;width:6.5055in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">sudo mount -t cifs //192.168.17.185/sambashare /mnt/sambashare -o guest

</td><td style="vertical-align:top;width:2.1687in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">mount samba share

</td></tr><tr><td style="vertical-align:top;width:6.5055in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">ls -l /mnt/sambashare

</td><td style="vertical-align:top;width:2.1687in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">verify share contents

</td></tr><tr><td style="vertical-align:top;width:6.525in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">echo "Client wrote this via Samba" | sudo tee /mnt/sambashare/client.txt &gt;/dev/null

</td><td style="vertical-align:top;width:2.1493in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">create file on share

</td></tr><tr><td style="vertical-align:top;width:6.5055in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">sudo nano /etc/fstab  
…  
//192.168.17.185/sambashare<span> </span>/mnt/sambashare<span> </span>cifs<span> </span>\_netdev,guest<span> </span>0<span> </span>0

</td><td style="vertical-align:top;width:2.1687in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">configure persistent mount

</td></tr><tr><td style="vertical-align:top;width:6.5055in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">sudo mount -a

</td><td style="vertical-align:top;width:2.1687in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">test fstab config

</td></tr><tr><td style="vertical-align:top;width:6.5055in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">reboot

</td><td style="vertical-align:top;width:2.1687in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">verify mount survives

</td></tr></tbody></table>

</div></div></div></div>

# Boot Modes & Recovery

New Boot Process (CentOS/RHEL 7 and above):

<div id="bkmrk-systemd-manages-boot" style="direction:ltr;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:10.2881in;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:10.2881in;">- <span style="font-family:Consolas;font-size:10pt;">systemd manages boot sequence</span>
- <span style="font-family:Consolas;font-size:10pt;">backward compatible with SysV init scripts from previous versions</span>

</div></div></div>BIOS - Basic Input/Output System (firmware interface)

POST - Power-On-Self-Test started

<div id="bkmrk-mbr---master-boot-re" style="direction:ltr;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:10.2881in;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:10.2881in;">- <span style="font-family:Consolas;font-size:10pt;">MBR - Master Boot Record</span>
    - <span style="font-family:Consolas;font-size:10pt;">information saved in first sector of hard disk that indicates where the GRUB2 is located so it can be loaded in RAM</span>
        - <span style="font-family:Consolas;font-size:10pt;">GRUB2 - Grant Unified Boot Loader v2 - loads linux kernel</span>

</div></div></div>/boot/grub2/grub.cfg

<div id="bkmrk-kernel---core-of-the" style="direction:ltr;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:10.2881in;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:10.2881in;">- <span style="font-family:Consolas;font-size:10pt;">Kernel - Core of the operating system - loads required drivers from initrd.img starts first OS process</span>

</div></div></div>systemd

<div id="bkmrk-systemd-%3D-system-dae" style="direction:ltr;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:10.2881in;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:10.2881in;">- <span style="font-family:Consolas;font-size:10pt;">Systemd = System Daemon (PID #1) then starts all required processes</span>

</div></div></div>read /etc/systemd/system/default.target to bring system to run level (7 run levels 0-6)

How to Reboot / Shutdown

<div id="bkmrk-systemctl-poweroff-s" style="direction:ltr;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:10.2881in;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:10.2881in;"><div style="direction:ltr;"><table style="direction:ltr;border-collapse:collapse;border:1pt solid #A3A3A3;" title=""><tbody><tr><td style="vertical-align:top;width:1.6131in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">systemctl poweroff

</td><td rowspan="2" style="vertical-align:top;width:4.7388in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">stops all services, unmounts file systems, powers off system

</td></tr><tr><td style="vertical-align:top;width:1.2458in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">poweroff

</td></tr><tr><td style="vertical-align:top;width:1.5944in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">systemctl reboot

</td><td rowspan="2" style="vertical-align:top;width:4.6888in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">all of the above plus reboot

</td></tr><tr><td style="vertical-align:top;width:1.093in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">reboot

</td></tr></tbody></table>

</div></div></div></div>Select systemd target

<div id="bkmrk-0-6-run-levels-now-r" style="direction:ltr;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:10.2881in;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:10.2881in;">- <span style="font-family:Consolas;font-size:10pt;">0-6 run levels now referred to as targets</span>
- <span style="font-family:Consolas;font-size:10pt;">important targets:</span>
    - <span style="font-family:Consolas;font-size:10pt;">graphical.target - system supports multiple users, graphical and text based logins</span>
    - <span style="font-family:Consolas;font-size:10pt;">multi-user.target - system supports multiple users, text based logins only</span>
    - <span style="font-family:Consolas;font-size:10pt;">rescue.target - sulogin prompt, basic system initialisation completed</span>
    - <span style="font-family:Consolas;font-size:10pt;">emergency.target - sulogin prompt, initramfs pivot complete and system root mounted on / read only</span>
- <span style="font-family:Consolas;font-size:10pt;">a target can be part of another target (graphical.target includes mult-user.target)</span>

</div></div></div><div id="bkmrk-systemctl-get-defaul" style="direction:ltr;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:10.2881in;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:10.2881in;"><div style="direction:ltr;"><table style="direction:ltr;border-collapse:collapse;border:1pt solid #A3A3A3;" title=""><tbody><tr><td style="vertical-align:top;width:4.6486in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">systemctl get-default

</td><td style="vertical-align:top;width:1.9395in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">check current target

</td></tr><tr><td style="vertical-align:top;width:4.6486in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">who -r

</td><td style="vertical-align:top;width:1.9395in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">run level

</td></tr><tr><td style="vertical-align:top;width:4.668in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">systemctl list-dependencies graphical.target | grep target

</td><td style="vertical-align:top;width:1.9895in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">list target dependencies

</td></tr><tr><td style="vertical-align:top;width:4.6486in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">ls -l /lib/systemd/system/runlevel\*

</td><td style="vertical-align:top;width:1.9395in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">list run levels

</td></tr><tr><td style="vertical-align:top;width:4.6486in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">systemctl set-default graphical.target

</td><td style="vertical-align:top;width:1.9395in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">set default target

</td></tr></tbody></table>

</div></div></div></div>Recover Root Password (RHEL 9)

<div id="bkmrk-reboot-%C2%A0-press-esc-t" style="direction:ltr;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:10.2881in;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:10.2881in;"><div style="direction:ltr;"><table style="direction:ltr;border-collapse:collapse;border:1pt solid #A3A3A3;" title=""><tbody><tr><td style="vertical-align:top;width:5.0305in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">Reboot

</td><td style="vertical-align:top;width:5.0944in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;"></td></tr><tr><td style="vertical-align:top;width:5.0305in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">Press esc to get to grub

</td><td style="vertical-align:top;width:5.0944in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;"></td></tr><tr><td style="vertical-align:top;width:5.0305in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">Find line beginning with Linux, add " rd.break" to the end

</td><td style="vertical-align:top;width:5.0944in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">RHEL 9 boot into emergency recovery mode

</td></tr><tr><td style="vertical-align:top;width:5.05in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">Find line beginning with Linux, add "init=/bin/bash" to the end

</td><td style="vertical-align:top;width:5.0756in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">RHEL 10 boot into emergency recovery mode

</td></tr><tr><td style="vertical-align:top;width:5.0305in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">Press Ctrl X

</td><td style="vertical-align:top;width:5.0944in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">start boot using the modified settings

</td></tr><tr><td style="vertical-align:top;width:5.0305in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">mount -o remount,rw /sysroot

</td><td style="vertical-align:top;width:5.1395in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">RHEL 9 remount the root filesystem as read-write to allow changes

</td></tr><tr><td style="vertical-align:top;width:5.0305in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">mount -o remount,rw /

</td><td style="vertical-align:top;width:5.1638in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">RHEL 10 remount the root filesystem as read-write to allow changes

</td></tr><tr><td style="vertical-align:top;width:5.0305in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">chroot /sysroot

</td><td style="vertical-align:top;width:5.0944in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">change root to /sysroot (RHEL OS)

</td></tr><tr><td style="vertical-align:top;width:5.0305in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">passwd

</td><td style="vertical-align:top;width:5.0944in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;"></td></tr><tr><td style="vertical-align:top;width:5.0305in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">Enter your new password

</td><td style="vertical-align:top;width:5.0944in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;"></td></tr><tr><td style="vertical-align:top;width:5.0305in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">touch /.autorelabel

</td><td style="vertical-align:top;width:5.0944in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">Force SELinux to relabel files on next boot

</td></tr><tr><td style="vertical-align:top;width:5.0305in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">exit

</td><td style="vertical-align:top;width:5.0944in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">RHEL 9 exit back to emergency shell

</td></tr><tr><td style="vertical-align:top;width:5.0305in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">mount -o remount,ro /

</td><td style="vertical-align:top;width:5.0944in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">RHEL 10 reboot cleanly

</td></tr><tr><td style="vertical-align:top;width:5.0305in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">exit

</td><td style="vertical-align:top;width:5.0944in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">exit to boot

</td></tr></tbody></table>

</div></div></div></div>Repair Filesystem Corruption

Common errors

<div id="bkmrk-corrupt-file-system-" style="direction:ltr;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:10.2881in;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:10.2881in;"><div style="direction:ltr;"><table style="direction:ltr;border-collapse:collapse;border:1pt solid #A3A3A3;" title=""><tbody><tr><td style="vertical-align:top;width:3.0451in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">Corrupt file system

</td><td style="vertical-align:top;width:4.0777in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">systemd attempts to repair file system  
if it cannot be repaired, go to emergency shell

</td></tr><tr><td style="vertical-align:top;width:3.0645in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">nonexistent device/UUID in /etc/fstab

</td><td style="vertical-align:top;width:4.1277in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">if device remains unavailable, go to emergency shell

</td></tr><tr><td style="vertical-align:top;width:3.0645in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">nonexistent mount point in /etc/fstab

</td><td style="vertical-align:top;width:4.0583in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">go to emergency shell

</td></tr><tr><td style="vertical-align:top;width:3.0451in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">incorrect mount option in /etc/fstab

</td><td style="vertical-align:top;width:4.0777in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">go to emergency shell

</td></tr></tbody></table>

</div></div></div></div>Emergency target can diagnose and fix the issue, because no file systems are mounted before emergency shell is displayed

<div id="bkmrk-systemctl-daemon-rel" style="direction:ltr;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:10.2881in;"><div style="direction:ltr;margin-top:0in;margin-left:0in;width:10.2881in;"><div style="direction:ltr;"><table style="direction:ltr;border-collapse:collapse;border:1pt solid #A3A3A3;" title=""><tbody><tr><td style="vertical-align:top;width:1.9951in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">systemctl daemon-reload

</td><td style="vertical-align:top;width:5.7312in;padding:2pt 3pt 2pt 3pt;border:1pt solid #A3A3A3;">when using emergency shell, remember to run this after editing /etc/fstab

</td></tr></tbody></table>

</div></div></div></div>