---
# System prepended metadata

title: Untitled

---

## Redhat Cheat-Sheet

### 1. Grep / Regex

```bash
"""grep"""
-i  # nicht zwischen groß- und kleinschreibung differenzieren (ignore case)
-A 10 # die nächsten 10 zeilen hinter einem match zusätlich ausgeben (After)  
-B 10 # wie -A nur davor (Before)
-v # inversieren: zeilen die NICHT matchen
-e # expression: mehrere expressions angeben, bspw: grep -e "ERROR$" -e "FAIL$"

"""regex"""
$  # ende der zeile
x* # char x null bis unendlich mal
.* # beliebig viele chars
^  # anfang der zeile
[123] # irgendein char aus 1 2 oder 3
[^123] # irgendein char ausser 1 2 oder 3
? # 0 oder 1 von der vorherigen expression
```

### 2. LDAP/Kerberos & autofs

```bash
"""Authentifizierung einrichten"""
sudo yum install authconfig-gtk sssd
sudo authconfig-gtk

"""Autofs"""
sudo yum install autofs

# /etc/auto.master.d/XXX.autofs :
/home/guests /etc/auto.guests
# /etc/auto.XXX :
* -rw,sync classroom.example.com:/home/guests/&
# TODO: direkt?

# service aktivieren und starten
sudo systemctl enable autofs.service
sudo systemctl start autofs.service
```
### 3. Netzwerkspeicher mit SMB (CIFS Freigabe)
```bash
# CIFS installieren:
sudo yum install cifs-utils
# Mountpunkt erstellen
sudo mkdir -p /mnt/westeros
#Credentials Datei anlegen, Pfad: /root/tyrion.creds
#Inhalt:
username=tyrion
password=slapjoffreyslap
#Berechtigungen festlegen:
sudo chmod 0600 /root/tyrion.creds
# /etc/fstab eintragen:
//serverX.example.com/westeros /mnt/westeros cifs creds=/root/tyrion.creds 0 0
# alles mounten
sudo mount -a
#Und dann testen auf etwas zu zugreifen
```

### 4. NFSv4 mount
```bash
# mountpunkt erstellen
sudo mkdir -p /mnt/essos
# keytab runterladen
sudo wget -O /etc/krb5.keytab http://xxxxx.xxx/xxx.keytab
# zu fstab hinzufügen
serverX.example.com:/essos nfs sec=krb5p,rw 0 0 #krb5p = kerberos v5 password authentication
# dienst starten und aktivieren
sudo systemctl enable nfs-secure.service
sudo systemctl start nfs-secure.service
# mounten
sudo mount -a
```

### 5. Partitionierung

```bash
# partition auf vdb erstellen
sudo fdisk /dev/vdb
# dem wizard folgen...
t # -> Hexcode auf 8e (Linux LVM) setzen
w # commiten (write)
sudo partprobe
```

LVM (Logical Volumne Management):
Physische Volumen werden in Volumen-Gruppen zusammengefasst, welche schließlich in logische Volumes gebündelt werden.

```bash
# partition in ohysisches volumen umwandeln
sudo pvcreate /dev/vdb1
# gruppieren
sudo vgcreate GRUPPENNAME /dev/vdb1
# logisches volumen aus der gruppe erstellen und benennen, 512Mb size
sudo lvcreate -n LVNAME -L 512M GRUPPENNAME 
# logisches volumen als xfs formatieren
sudo mkfs -t xfs /dev/stark/arya
```

LV mounten:

```bash
# mountpunkt erstellen
sudo mkdir -p /mnt/MOUNTPOINT
# in /etc/fstab
/dev/GRUPPENNAME/LVNAME /mnt/MOUNTPOINT xfs defaults 1 2
# mounten
sudo mount -a
```

### 6. SWAP
```bash
#Partition erstellen, auf Größe und Partitionstyp achten
# Start Dialog mit:
sudo fdisk /dev/vdb
# am Ende speichern mit w nicht vergessen
#danach:
sudo partprobe
sudo mkswap /dev/vdb2
sudo blkid /dev/vdb2
#Die UUID kopieren und in /etc/fstab schreiben:
UUID="xxxxxxxxxxxxxxx" swap swap defaults 0 0
#Alle swap Partitionen aktivieren:
sudo swapon -a 
```

### 7. ACLs
```bash
#verzeichnis erstellen mit root:root rwx------
sudo mkdir -m 0700 /ironthrone
# gruppenacl für gruppe kings für directory erstellen -> capital X
sudo setfacl -m g:kings:rwX /ironthrone
# für user: u statt g
sudo setfacl -m u:joffrey:r-x /ironthrone
# defaults acls:
sudo setfacl -m d:g:kings:rwx /ironthrone
sudo setfacl -m d:u:joffrey:r-x /ironthrone

# löschen:
sudo setfacl -x u:joffrey,d:u:joffrey /ironthrone
```

### 8. Firewalld
```bash
# iptables deaktivieren
systemctl stop iptables
systemctl disable iptables
systemctl mask iptables # disable reactivation by linking to /dev/null
# tcp port freigeben
sudo firewall-cmd --permanent --add-port=XXX/tcp
# reload
sudo firewall-cmd --reload
```

### 9. SELinux
```bash
# -a = add ; -t = type ; public_content_t = selinux kontext
sudo semanage fcontext -a -t public_content_t '/docroot(/.*)?' # inklusive unterverzeichnisse

# wende kontext an alle dateien an
sudo restorecon -RvF /docroot
```

### 10. Tempfiles
```bash
# config file für verzeichnis erstellen 

echo "d /run/veryvolatile 1777 root root 5s" > /etc/tmpfiles.d/xxx.conf # 5s = wenn systemd-tmpfiles --clean ausgeführt wird alles löschen was älter als 5 sekunden ist

# verzeichnis erstellen
sudo systemd-tmpfiles --create