Obsah

Poznámky a postupy k Linuxu

poznámkový blok především k bashi na Debianu 10 / 11


Zobrazení volné RAMky

free -m

-m udává, že se má velikost zobrazovat v MB
headless Debian 10 žere někde kolem 100MB :)


Chmod (oprávnění k adresáři / souboru)

  • super kalkulátor - pokud si nepamatujete ty často užívané (+ je to dost pohodlné :D
  • oprávnění se nastavuje příznaky pro uživatele, skupinu a ostatní
    • uživatel = vlastník souboru (viz chown)
    • skupina = ostatní uživatelé se stejnou skupinou jakou má vlastník
    • ostatní = všichni ostatní

Zobrazení IP adresy

ip a

zobrazí i interfaces a MAC adresy


Změna hostname

viz tento návod

sudo hostnamectl set-hostname novynazev
sudo nano /etc/hosts
hostname

v hosts za lokalhosta napsat svůj hostname, např.:

127.0.0.1       localhost
192.168.0.2     server.nekde.cz  server

Nastavení statické / dynamické IP

#DHCP
auto eth0
iface eth0 inet dhcp
#static IP
iface eth0 inet static
        address 192.168.0.10
        netmask 255.255.255.0
        gateway 192.168.0.1

Práce s ufw

  • ufw = utilita pro jednoduché nastavení firewallu na Linuxu
  • pěkný návod má Wedos (má více pěkných návodů pro Linuxové začátečníky):
    • díl 1 - úvod
    • díl 2 - trochu rozvinutá pravidla (stále jasné a jednoduché)
sudo apt update
sudo apt install ufw

sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow ssh

sudo ufw enable
sudo ufw status numbered

sudo ufw allow from 192.168.0.0/24 to any port 8080

rsync + SSH bez hesla (se souborem klíče)

  • návod viz tady nebo tady nebo čtěte dál :)
  • k čemu je to dobré:
    • chcete pravidelně kopírovat obsah adresáře XY ze stroje A do stroje B
    • použijete k tomu rsync, který to provádí skrze SSH
    • pokud se to nezařídí rsync se vždy zeptá na heslo do vzdáleného stroje
      (takže to nejde použít ve skriptu a jste namydlení)
  • jak na to:
    • zařídit přístup do vzdáleného stroje
      1. na vzdáleném stroji založit uživatele, pod kterým se bude přistupovat bez hesla
        • tohle není nutné pokud již takový uživatel existuje
        • bacha na to, že tento uživatel musí mít domácí adresář (volba -m) a nezapomeňte mu nastavit i nějaké pěkné heslo
          sudo useradd -m sshbezhesla
          sudo passwd sshbezhesla
      2. na místním stroji vytvořit pár ssh klíčů (veřejný - soukromý)
        • zde heslo necháme prázdné
          ssh-keygen -t rsa -b 4096 -C "nejaky.nas@mail.xy"
          usr@srv:~$ ls -la ~/.ssh/
          total 20
          drwx------ 2 usr usr 4096 Jun  6 20:23 .
          drwxr-xr-x 7 usr usr 4096 Jun  6 20:17 ..
          -rw------- 1 usr usr 3381 Jun  6 20:17 id_rsa      -- soukromý klíč
          -rw-r--r-- 1 usr usr  745 Jun  6 20:17 id_rsa.pub  -- veřejný klíč
      3. zkopírovat veřejný klíč na vzdálený stroj (ip např. 192.168.0.123)
        • verze jednoduchá:
          ssh-copy-id sshbezhesla@192.168.0.123
        • verze průhlednější:
          scp id_rsa.pub sshbezhesla@192.168.0.123:/home/sshbezhesla/
          ssh sshbezhesla@192.168.0.123
          cat id_rsa.pub >> .ssh/authorized_keys
      4. ověřit že ssh na vzdálený stroj již nevyžaduje heslo
        ssh sshbezhesla@192.168.0.123
    • při volání rsync použít ssh klíč (parametr -e s voláním ssh s využitím soukromého klíče)
      rsync -e "ssh -i /home/usr/.ssh/id_rsa" sshbezhesla@192.168.0.123:/nejaky_vzdaleny_adresar/ /nejaky_mistni_adresar/

rsync a nastavení vlastníka

  • zálohujete nějakou strukturu na svůj stroj a chcete, aby
    • to bylo rekurzivně (parametr -r)
    • se zachoval datum poslední modifikace (parametr -t)
    • se zachovaly linky atp. (parametry -l a -D)
    • se vynechaly prázdné adresáře (parametr -m)
    • se nastavil vlastník "nobody:nogroup"
  • no a s tím posledním je docela patálie (hezky popsaná tady)
    • –chown=nobody:nogroup totiž nefunguje, pokud se zároveň ještě nenastaví:
      • parametr -o pro přenos vlastníka - uživatele
      • parametr -g pro přenos vlastníka - skupiny
      • parametr –super kdy se rsync snaží tvářit jako by byl na vzdáleném stroji superuživatel (což být nemusí a nevadí to)
    • ještě pozn.: lze to řešit také jen pro uživatele nebo jen pro skupinu
      • pak se použijí parametry –usermap=*:nobody + -o –super nebo –groupmap=*:nogroup + -g –super
      • parametr –chown je zkratkou na obojí dohromady
  • takže nějak takhle:
    rsync -rtmlDog --super --chown=nobody:nogroup ...

Základní práce s VIM

  • editor má 3 režimy:
    • příkazový - stisknu klávesu a ono to něco udělá; v tomhle se spustí
    • vkládání - chová se jako normální editor; sem se dostanu stiskem klávesy i a opustím jej klávesou escape
    • příkazová řádka - sem se dostanu stisknutím dvojtečky
  • příkazy na příkazové řádce:
    • :q = pryč :-) (pokud byly provedeny změny, nedovolí to)
    • :q! = pryč bez uložení změn
    • :w = zapíše změny do souboru
    • :wq = zapíše změny a opustí editor