25.listopadu 2013

PC a internet Linux

Mám tu pár poznámek ze školení Linuxu v Gopasu, tak je zde bez ladu a skladu ukládám:

Příkazy na práci se soubory

mkdir
cd
ls -l

pwd - aktuální adresář

echo

cat - zobrazit soubor
tail - zobrazit posledních 10 řádků souboru
less - zobrazení s možností scrollování

ln -s target name - syymlink

stat soubor - informace o souboru

touch -vytvoří prázdný soubor

cp - kopírování
cp -a - zachová práva (resp. vlastníky) a časy - hodné pro zálohu. (Jinak dělá nové soubory s novými metainformacemi)

witch cat - řekne, kde se nachází příkaz cat

locate - vyhledá soubor (jakýkoliv) podle názvu - z indexu, který se obnovuje cronem denně /etc/cron.daily/mlocate.cron .
find - hledá podle čehokoliv, leckde a aktuálně



Příkazy na správu uživatelů a skupin

useradd
passwrd

userdel
usermod


groupadd
groupdel
groupmod

vipw
pxck

su -



Důležité soubory

/etc/passwd - seznam uživatelů
/etc/shadow - seznam hesel
/etc/group - seznam skupin
/etc/gshadow/ - seznam hesel skupin

/etc/fstab/ - seznam přimounovaných zařízení po startu

/etc/bashrc - spouští se při spuštění bash (konfigurace)
/etc/profile

~/.bashrc

Příkazy na nastavení oprávnění k souborům a složkám

Nastavení vlastníků: (může dělat pouze root)

chown - změna vlastníka(uživatele)
chgrp - změna vlastníka(skupiny)

chmod - změna přístupových práv

chnmod [ugoa][+-=][rwx] file

u=owner
g=group
o=other
a=all

chmod 777 file - nastaví plná práva pro všechny

rwx - práva
421 - bity

první bajt:

SetUID on Exec (bit 4) - u souboru převezme práva svého vlastníka
SetGIU on Exec (bit 2) - u souboru převezme práva své skupiny, u adresáře - nové sobory dědí vlastníky z tohoto adresáře
Sticky bit (bit 1) - u adresáře může podsoubory mazat pouze jejich vlastník


umask 022 - nastaví masku, která se odečte od výchozího oprávnění a tu nastavuje pro nové soubory

Výchozí pro adresáře 777
umask 022
Bude se nastavovat 755

Pro soubory vždy o 111 menší, tedy v příkladu 644.

umask - pouze pro aktuální bash, jinak je potřeba přidat do /etc/bashrc





Příkazy na práci s disky

mount /mnt/disk /dev/sda3 - namountuje disk
mount /zaloha/sda3.img /mnt/obnova -o loop - namountuje image
umount

fdisk /dev/sda

mkfs - formátování
fsck - kontorla filesystému

resize2fs /dev/sda2 - roztáhne filesystem na celou partition



Scriptování

vim - textový editor - command mode , edit mode -> pro přepnutí zmáčknout i nebo insert, resp. ESC,
příkazy
:w nazev-souboru - write
:q - konec
mc - midnight commander
-
-----
přesměrování výstupu: ls -l >vystup.txt 2>chyby.txt

0 - stdin
1- stdout
2 - stderr

přesměrování na stdout: ls -l >&1

/dev/null

> - přesměrování + přepsat
>> - přesměrování + doplnit (append)
-----
Filtry:

wc - vypíše počet slov na vstupu (parametr -l vypíš počet řádků)
sort - seřadí podle abecedy
grep - vybere řádky, které obsahují nějaký text (regulární výrazy - ^ - začátek řádku, $ konec řádku)
uniq - vybere unikátní řádky
cat - rozdělí vstup na řádky
yes - posílá na výstup samo y nebo to co dostane v parametru
---
Proměnné:

a=ahoj
echo $a

echo $(($a + 5))

export a - zviditelní proměnnou i do podřízených bashů

unset a - zruší proměnnou

env - zobrazí seznam proměnných (i prostředí)

$? návratová odnota naposledy spuštěného příkazu
$$ procesID aktuálně spuštěného procesu
---
Unix time - počet sekund od 1970.

----
Script

Na prvním řádku musí být:
#!/bin/bash

Potom nastavit právo spuštění chmod +x název-sounour

Souštět s plnou cestou nebo uložit do /bin

script se spouští v jiném bash, takže nevídí proměnné, z původního bashe (z příkazové řádky).
Pokud chceme proměnné zviditelnit pro podřízení bashe, tak je třeba použít příkaz export promenna

----

alias - vytvoří aliasy k příkazům
alias l="ls -la"
unalias l



Klávesové zkratky

Alt-f, Alt-b - posun po slovech
Ctrl-l - smazání obrazovky
Ctrl-w - smazáníí posledního slova

Ctrl-k, Ctrl-u - smazání od kurozu do začátku/konce řádku

Ctrl-r - hledání v historii příkazů
Ctrl-y - vložení smazaného textu zpět

Tab - doplění názvu souboru, cesty


Typy souborů

d - directory
c - character device
b - block device
l - link
s - socket
p - pipe (Fi/Fo)

mkfifo - vytvoří pipe na disku

Speciální znaky

* ? [] ! Expanze jmen
# Komentáře
\ Escqape sekvence
>, >> Přesměrování výstupů
< Přesměrování vstupů
| Nepojmenovaná pipe
$ Přístup k proměnným
&& Spuštění při nulovém návratovém kódu
|| Spuštění při nenulovm návratovém kódu
; oddělení příkazů
() spuštění v kopii shellu
' ' posloupnost znaků bez speciálního významu
" " posloupnost zanků bez speciálního významu vyjma \, $, `` (tedy interpretují se proměnné, ale lze použít mezery)
`prikaz` vrátí standardní výstup příkazu (rm `cat seznam`) - smaže soubory, které jsou v v souboru seznam.
& spuštění na pozadí
$? návratová odnota naposledy spuštěného příkazu
$$ procesID aktuálně spuštěného procesu


Balíčkovací systémy

RPM

up2date
yum
apt-rpm

Zdroje pro centos:
ftp.cvut.cz/centos/

Zajímavé repozitáře:


Aktualizace celého systému: yum update
Aktualizace kernelu: yum install kernel


Jobs

jobs - zobrazí úlohy jednoho uživatele v jednom bashi včetně čísla úlohy , kterou pak použiji v %číslo v následujících příkazech (není processID)
Ctrl - z - pozastaví úlohu
Ctrl - c - přeruší úlohu
Ctrl - \ - přeruší úlohu a možná vypíše obsah paměti do souboru
fg %1 - pokračování pozastavené úlohy (foreground)
bg %2 - pokračování na pozadí (background)
kill %1

pstree - strom procesů
ps axfl - seznam všech procesů
Stav:
S - Sleeping
R - Running
T - sToped - pozastaven
D - Disk, I/O wail
Z - Zombie
PRI - priorita (vypočítává linux na základě NI)
NI (Nice) - priorita <-19;20> Čím nižší číslo, tím vyšší priorita.

nice -n 20 yes>/dev/null -spustí yes s NICE prioritou 20 (nejnižší)
renice 19 PID - změní prioritu na 19

zvyšovat prioritu (snižovat NICE) může jen root, na druhou stranu můžou všichni.

VSZ - Paměť o kterou si proces požádá
RSS - Paměť, kterou proces reálně využívá

---
kill -n PID - vyšle signál na zabití procesu
killall -n nazev - zabije všechny procesy názvu

-9 / SIGKILL - násilné ukončení
-2 / SIGINT - Ctrl-C
-3 / SIGQUIT - Ctrl-\
-15 /SIGTERM - Default
(man 7 signal)

---

top - taskmanager :)

us - user load
sy - system load - co běží v jádře
ni - nice load - co běží s nižší prioritou
id - idle - zbytek do 100%
wa - wait I/O - čeká na disk
hi - hardware interupts
si - software interupts
st - virtualizace

---
ionice - nastacení priority I/O
df - disk free
free - velikost paměti
du - velikost adresáře
du -s -h /* |sort -h |tail -1 - vypíše největší adresář v rootu

munin - sw, který zobrazuje grafy a statistiky využití serveru

vmstat - informace o systému s parametrem, jak často se mají obnovovat.
w / who - seznam přihlášených uživatelů
dmesg - posledních několik událostí jádra (např. připojení USB flash
last - posledních několik přihlášení

lspci -v - informace o zařízeních připjeních na PCI
lsusb -v - totéž o USB
dmidecode - informace o desce a procesoru

cat /proc/cpuinfo
cat /proc/memifno
cat /proc/interrupts

Start systému

bootloader - Grub

/etc/inittab

7 úrovní startu systému a definice, do které má startovat.

0 - halt
1 - single
2 - Multiuser without NSF
3 - Multiuser
4 - unuser
5 - xWIN
6 - reboot

init 5 - spustí grafické rozhraní

who -r - vypíše úroveň běhu

/etc/rc.d/init.d/ - scripty, které spouští a vypínají služby
/etc/init.d/ -> symlink
script.name start , stop, restart, status
service sshd stop - altenativa

rc3.d - symlinky na všechno, co se vypíná a startuje do run levelu 3, podle čísla priority
K se spouští s paramaterm stop
S se spouští s parametrem start

chkconfig - program na editaci těchro symlinků (spouštění neby vypínání startování služeb v jednotlivých runlevelech)
chkconfig --list ssh - vypíše, kde se startuje sshd
chkconfig --level 2345 ssh off - vypne sshd v leveli 2345
chkconfig sshd reset - nastaví znovu sshd do původního stavu

rc.local - tam se doplní script, který se má spustit po initu všech služeb pod uživatelem root

---
Změna hesla roota:

při bootu přerušit bot loader, pomocí klávesy e editovat a na prostřední řádek dopsat 1, aby naboototval do init 1, tam je automaticky přihlášen root a nevyžaduje heslo. Pak už je možno dělat pod rootem cokoliv včetně změny hesla.

chroot /mnt/disk - přesune kořen (root) jinam (na připojený disk)
mount /proc/ - domountovat kernelové adresáře do nové struktury
mount /sys/ - domountovat kernelové adresáře do nové struktury

---


Cron

Cron - opakované úlohy

crond - cron demon

ps axf | grep "cron" - kontrola, jestli kron běží

1) minuta (0-59)
2) hodina (0-23)
3) den (1-31)
4) měsíc (1-12)
5) den v týdnu (0 (neděle) -6)

0 20 * * * - každý den ve 20:00
0,30 20 * * * - každý den ve 20:00 a 20:30
0-30 20 * * * - každý den 20:00-20:30 každou minutu
0-30/5 20 * * * - každý den 20:00-20:30 každých 5 minut
0 20 1-7 * 1 - každé první pondělí v měcíci

crontab -l - zobrazení cronu
crontab -e - editace cronu
crontab -e -u phl - editace cronu uživatele phl

/etc/cron.deny - soubor, kde jsou uvedeni uživatelé, kteří nesmí nastavovat cron (crontab)
----

at - neopakované úlohy

at 10:30
at december 24
at now + 5 minute

atq - vypíše seznam naplánovaných úloh
atrm 7 - zruší úlohu č. 7

napsat posloupnot příkazů a ukončit Ctrl-D

---

ntpdate tik.cesnet.cz - nastaví čas proti NTP serveru



Logování

/dev/log - soubor typu socket

rsyslog

FACILITY, LEVEL

rsyslog.conf

/var/log/.... - uložené logy

logger -p cron.emerg Zalogovaná zpráva

síťově po UDP 514

---
logrotate

/etc/logrotate.conf - konfigurace
/etc.logrotate.d - definice

---
analýza logů

swatch
logchecker
logwatch - umíposlat denně informace o tom, co se dělo minulý den



Quota

1) Při mounotvání zapnout quotu (usrquota, grpquota)
/ect/fstab
/dev/hda1 / ext3 defaults, usrquota 1 1

2) Vytvořit databázi
quotacheck - uamc ->vytvoří /aquota.user - databázi

3) Zapnout
quotaon -ua

4) Nastavit quoty
edquota username - editace quota pro konkrétního uživatele ve vimu
setquota - nastavení pro uživatele z příkazového řádku

repquota -ua - zobnrazí informace o kótě



Jádro (Kernel)

lsmod - vypíše seznam modulů v jádře
modinfo - vypíše informace o konkrétním modulu

uname -a - vypíše infromace o jádře

cesta k modulům : /lib/modules/`uname -r`

modprobe - zavede modul

Moduly se loadují sami, podle potřeby HW (při přidání FAT Flash) a nebo ručně modprobe. Sami se ale neunloadují.

rmmod - odstranění modulu.


/etc/modprobe.d - konfigurace modprobe

blacklist -> seznam modulů, co se automatcky nelouadují





Zálohování

cp -a

partimage - záloha image, musí znát typ systému, nezálohuje prázdné místo

rsync - v podstatě zálohování, ale umí to incremantálně (dělá to v podstatě synchronizaci)

scp /home/ user@server:/mnt/zaloha

tar -cf archiv.tar /home/ - vytvořit
tar -xf archiv.tar /tmp/ - obnovit
tar -tf archiv.tar - test (seznam souborů)

dd - zálohuje blokově - lze tedy využín an kopírování souborů, ale hlavně celých blokových zařízení, např: sda

dd if=/dev/sda2 of=zaloha.img if=input file, of= outputfile,

odzálohuje do souboru nebo i na jinou partititon, která musí být stejně nebo víc velká


rdiffbackup - incrementální zálohy
Bacula





Síť

ifconfig

/etc/init.t/network - startovací skript pro síť (start, stop)
/etc/sysconfig/networkscripts/ - nastavení síťovky

ifcfg-eth0 - soubor s nastavením sítě

ifconfig eth1 129.168.2.1 netmask 255.255.255.0 (pouze do restartu)

---

route - vypíše routovací tabulku

/proc/sys/net/ipv4/ip_forward - musí být jednička, aby systém routoval (stal se routerem)

ip link show
---
/etc/resolv.conf - seznam DNS serverů

nameserver 8.8.8.8 - zače používat DNS server

----
Routování


iptables -firewall (netfilter)

iptables -L Vypíše všechny pravidla

iptables -A OUTPUT -d 8.8.8.8 -J DROP - zakáže přístup na 8.8.8.8 (z toho počítače)
iptables -P FORWARD DROP - default pro forward bude drop (pro routování)

iptables -A OUTPUT -p tcp --dport 80 -j DROP - zakáže port 80

iptables -A INPUT - state --state ESTABLISHED -j ACCEPT - zajistí, aby se vraceli pakety sestavené ze vnitř (odpověď na požadavky)

iptables -A INPUT - state --state RELATED -j ACCEPT - zajistí, aby se vraceli pakety související s již sestavenými (např. FTP)


iptables -L -n -t NAT - natovací tabulka

iptables -L -n -t mangle -

iptables-save - záloha firewallu (uložit výstup do souboru)

/etc/init.d/iptables start|stop|save - uložit pravidla



Sudo

sudo prikaz

/etc/sudoers/ -seznam sudo nastavení

editovat pomocí visudo

syntaxe: uzivatel host = (uzivatel) [NOPASSWD:]prikaz

User_Alias ZASTUPCI = pepa,honza,vojta
Runas_Alias ZASTUPCI = pepa,honza,vojta
ZASTUPCI ALL=(ZASTUPCI) /bin/kill

sudo -u honza kill 1234

%skupina -



Hledáte-li správce sítě nebo prostě nekoho kdo umí spravovat servery, hledejte na www.petr-hladis.cz

Přečteno: 6831x | Komentářů: 0x | Kategorie: PC a internet

Komentáře čtenářů

Přidat vlastní komentář k článku



Z důvovů ochrany proti spamu prosím do následujícího políčka napište texy "NOSPAM":

Chcete-li ke komentáři přidat svou fotku nebo jinou ikonku, postupujte podle návodu.


TOPlist

[CNW:Counter]