Linux:RedHat
A lap korábbi változatát látod, amilyen Admin (vitalap | szerkesztései) 2017. június 29., 12:31-kor történt szerkesztése után volt.
Redhat Linux tanfolyam
Török Tamás: torok.tamas@ulx.hu http://rhlearn.gilmore.ca ulxstudent_01 / ulxstudent_01 http://exelearning.net/
server1.example.com 172.25.X.11 root/redhat desktop1.example.com 172.25.X.11 student/student
fizikai gepen:
rht-vmctl reset desktop rht-vmctl start desktop
WiFi> ulxguest / ground control to major tom
Tartalomjegyzék |
Login
Program inditasa
Windows-a majd gepeles megkezdése
Doc
http://access.redhat.com /usr/share/doc/initscripts /etc/sysconfig/ file-ok be'llitasa redhat-support-tool command line Support küldéséhez: sosreport parancs használható
touch song{1..6}.mpg touch song{1,7,126}.mpg cp movie56{,.bak}
alias rm='rm -r' \rm nem az aliast futtatja!
ls -i -l mutatja az inode szamokat is, linkek magyarazasakor jó
User management
getent hosts aa.bb.hu
su mintájára: sg switch group gpasswd és a jelszó a /etc/groupban
jelszó a shadow fájlban: $ jelek határolják: $6 - sha512 $sdfsdf - Salt $jwfnwkjfnwkefwnefk a jelszó maga
usermod -aG wheel,users alice usermod -L bob usermod -U bob csak passwd esetén, ssh kulccsal továbbra is be tud lépni.
userdel bob adduser prince prince látni fogja bob home könyvtárát és levelezését
chage -l alice chage -M 60 -m 10 -W 7 -I 14 alice chage -E 2017-12-31 alice chage -1 alice expiration date törlése Fájl:/images/Shadow file fields-solutions.png
IPA
yum install ipa-client ipa-client-install --domain=server1.example.com --no-ntp --mkhomedir # --force admin / redhat123
ssh ipauser@desktop1 password
lab ipaclient grade
Jogok
uid: ki indtotta el euid: kinek a jogaival fut egid: milyen csoport jogaival fut
euid kerül összehasonlitasra az inode-ban levő user, group és other jogokkal.
mkdir aa chgrp ftp aa chmod 2770 aa touch aa/file ez az ftp csoporté lesz.
x jog hiánya az node olvasásának hiányát jelenti.
ACL
A jogok végén + karakter van pont helyett.
alice nem tagja a studnt csoportnak azt akarjuk, hogy tudjon rni az X könyvtárba, amin egyébként othernek számit. U G O alice rwx bob: r-x charlie: --- csoportok: dev rwx charlie tagja dev groupnak. ezért akkor sem fér hozzá, ha a hagyományos csoportjog szerint lenne hozzá rásjoga
getfacl file setfacl -m u:student:rwx dir1 student user rwx joga beálltása a dir1-re
ha rekurzvan akarjuk: setfacl -m d:u:student:rwx dir1 default acl, öröklődnie kell
Maszk: setfacl -m m:r-- dir1 most hiába van studentnek rwx-e akkor sem rhatja Ez átmeneti korlátozásra jó
setfacl -x u:student dir1
SELINUX
DAC - a hagyományos jogosultsági rendszer
getenforce Permissive vagy Enforcing üzemmód (ki és bekapcsoláshoz átmenetileg) setenforce
/etc/sysconfig/selinux SELINUX=enforcing
Kontextusok megjelenitese ls -lZ Process ps -efZ User: id -Z
Kontext megváltoztatása (nem marad fenn tartósan!) chcon -R -t httpd_sys_content_t /www
semanage fcontext -l
restorecon -vR /www
Bővités semanage fcontext -a -t httpd_sys_content_t '/www(/.*)?'
Törlés semanage fcontext -d -t httpd_sys_content_t '/www(/.*)?'
A semanage fcontext -l ábécé rendben mutatja a szabályokat, de azok nem abban a sorrendben értékelődnek ki. Javitása: cd /etc/selinux/targeted/contexts/files Az általam felvittek a file_contexts.local fájlban vannak abban a sorrendben, ahogy felvittük. Ha nem jó a sorrend, akkor ne itt editáld, hanem vidd fel ujra.
Booleans getsebool -a httpd_enable_cgi --> on Módostás: setsebool httpd_enable_cgi 1
Ezeket a szabályokat kapcsolja be a httpd_enable_cgi sesearch -A -b httpd_enable_cgi
Ez az boot utn elvész, hogy permanens legyen ahhoz -P kapcsoló kell setsebool -P httpd_enable_cgi 1
appokhoz: yum install selinux-policy-devel mandb man -k _selinux
Processzek
PCB-be parent id kill
reptyr át lehet hozni processzt az én terminálomba
= Ütemezo = Ordo N O(n) lineáris, a kovetkezo processz kerul kivalasztasra. O(1) fix számu lépésben válaszásra kerül a következő processz CFS (ma) a processzekhez sulyt rendelnek, merve van, hogy ki mennyit fut, aki a legkevesebbet futott, az kerul sorra. A sulyozassal az alacsonyabb prioritasuak szamara lassabban telik az ido. Többféle scheduler van: man sched. sched_fifo sched_rr Ezek realtime policy-k voltak sched_other sched_batch sched_idle
chrt parancs: real time-ban futtat egy parancsot.
nice demo: 2x: dd if=/dev/zero of=/dev/null 1x: nice -n 10 dd if=/dev/zero of=/dev/null A processz listában látszik a kisebb prioritás és a sokkal kevesebb processzidő (top)
DISK kezelés
partprobe /dev/vdb
GPT gdisk-kel egy diszkre, ez gpt-t csinál lsblk
blkid /dev/vdb - milyen séma van a diszken?
alias duh='du -sh * | sort -rh | head -20'
törlés után nem lesz kevesebb a hely, miért? lsof | grep delete vagy lsof +L 1 itt lehet megtalálni, melyik processz tartja még nyitva
df -i
swapon -s milyen swapek vannak használatban?
Systemd
Boot folyamat
* POST * Boot disk kiválasztása * Boot loader betöltése (GRUB) Grand Unified Boot Loader. Ez betülti a kernelt és a szükséges dolgokat. MBR, 4 partició lirasa, a Grub nem a 446 byte-ban van. Ez csak annyit tud, hogy a disk adott poziciojara menjen es betöltsön egy programot, ez nem a kernel még. Ez a Stage1. Be tud tölteni konfig fájlokat is. Ez tartalmazza, hogy hol vannak a kernelek. Következő lépésben betölti a kernelt és az initrmafs fájlt is. * Indul a kernel, inicializálja az eszközöket, a rot filerendszert read onlyban. A /lib/modules/verzió könyvtárban vannak az adott kernelhez tartozó modulok. * A kernel inditja a systemd-t, de ez még az initramfs-ben levő systemd. Ez mountolja a /root filerendszert, megcsinál pár dolgot és űjraindul, de már a root fájlrendszerben levő változattal. * Elindulnak a unitok. van egy olyan tipus, hogy target. A systemd először a default targetet indtja el. Lekérdezése: systemctl list-dependencies Alapesetben: graphical.target Cseréje: systemctl set-default multiuser.target Megjelntésük: systemctl list-dependencies Váltás: systemctl isolate graphical.target cat /usr/lib/systemd/system/multi-user.target
Grub menűjének lerása, szerkesztése. Konfig file: /boot/grub2/grub.cfg (vim ctrl-g) státusz sor megjelenitese
elfelejtett jelszó Grub command line edit, majd systemd.unit=rescue.target # rw a root parició systemd.unit=emergency.target # read only a root partció Mindkettő root passwordöt kért, elfelejtett jelszóhoz nem használható ezért nem systemd.rescue-t használunk, hanem azt irjuk oda: rd.break A végén touch /.autorelabel
Hálózat konfig
ifconfig felejtő ip addr ls ip addr show eth0 vagy röviden ip a s eth0 ip addr add 10.0.0.11/8 újabb ip cim hozzáadása ip route vagy route vagy netstat -rn netstat -tulpn ss -tulpn
host dig nslookup ne
Beállitása Network Managerrel történik, ez egy systemd service. systemctl status SystemManager
nmcli: interfész a network managerhez. man nmcli-examples
nmcli conn show 5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03 nmcli dev Új connection: nmcli conn add con-name static-eth0 ifname eth0 type ethernet Ettől ez DHCP-n kér majd paramétereket. megnézzük: nmcli con show static-eth0 Módostjuk: nmcli con mod static-eth0 ipv4.addresses "172.25.1.11/24 172.25.1.254" Hozzáadás nmcli con mod static-eth0 +ipv4.addresses "10.0.0.1/8" Elvétel nmcli con mod static-eth0 -ipv4.addresses "10.0.0.1/8" DNS nmcli con mod static-eth0 +ipv4.dns "8.8.8.8, 8.8.4.4" Fix address nmcli con mod static-eth0 ipv4.method static nmcli con mod static-eth0 ipv4.method auto Aktiváljuk: nmcli con up static-eth0 nmcli con show Ha beleirunk a fajba nmcli con reload nmcli con up static-eth0
Host name beálltása: hostnamectl set-hostname server0.example.com hostnamectl megmutatja a beálltásokat ha nincs /etc/hostname, akkor indit egy DNS lekerdezest, es az arra adott hostnevet allitja be. Ez tranziens, ez latszik a hostnamectl kimenetében
Log
systemctl status rsyslog
# Provides UDP syslog reception #$ModLoad imudp #$UDPServerRun 514
Port nyitasa TCP szinten a syslog szerveren # Provides TCP syslog reception #$ModLoad imtcp #$InputTCPServerRun 514
/etc/rsyslog.conf *.cron /var/log/cron *.cron -/var/log/cron # nem zárja le mindig a fájlt, blokkonként kóldi, igy nem latszik azonnal, crash eseten nem erhető el. *.cron @@192.168.100.100 # @ UDP @@TCP
$ModLoad imfile $InputFilePollInterval 1
# File 1 $InputFileName /tmp/hello.txt $InputFileTag tag: teszt $InputFileStateFile state_file_name $InputFileSeverity Error $InputFileFacility local7 $InputRunFileMonitor
NTP
ntpd vagy chrony teleptése
LVM
BLOCKDEVICES: pv - physical volume pvcreate /dev/vdb1 /dev/vdb2 Inicializálja a pv-ket, 2 pv jön létre pvdisplay mutatja a pv-ket pvs mutatja másképp VOLUME GROUP: vg vgcreate shazam /dev/vdb1 vgdisplay vgs LOGICAL VOLUMES: lv lvcreate -n storage -L 200M shazam storage a neve, 200M nagyságú lvcreate -n storage -l 1023 shazam storage a neve, 1023 extent nagyságú lvcreate -n storage -l 100%FREE shazam 100%-ban kitölti a szabad helyet lvdisplay lvs Fájlrendszer kialaktása: mkfs.xfs /dev/shazam/storage
Megnövelés: vgextend shazam /dev/vdb2 megnöveljük a vg groupot lvextend /dev/mapper/shazam-storage -L 400M megnöveli 400M-ra lvextend /dev/mapper/shazam-storage -L +1M megnöveli 1M-val
Fájlrendszer méretének növelése: resize2fs xfs_growfs /storage
Csükkentés resize2fs csökkentés xfs-sel nem is megy lvreduce paranccsal méret csükkentés pvmove az extenteket áthúzza a szabad helyekre vgreduce kivesszók a volume-ból pvremove levesszük a metaadatokat Lehet snapshotokat készteni Mirrorozni A Logical Volume és a pv-k logical extentekre és physical extentekre bomlanak.
NFS
systemctl start nfs.service vagy systemctl start nfs.secure függően a methodtól
/etc/fstab
server0:/shares/public /mnt/public nfs sec=krb5p,sync 0 0
defaults: sync: csak akkor jön válasz, ha az rás tényleg lement async azonnal válasz jön hardmount: amig nincs válasz, addig áll a program. softmount után egy errort kap Ha meghal, nem lehet lecsatolni ezt megoldani a lazyunmount mount paraméterrel lehet, umount -l a parancs fsid segt a hálózati szakadás esetén a helyreálltásban