Killswitch pro Linux

· Milan

Občas se může hodit možnost rychle vypnout počítač. Zde jsou dva příklady, jak to udělat.

Klávesová zkratka

  1. V textovém editoru vytvoříme skript, který zavolá okamžité vypnutí počítače. Pro otestování prozatím zakomentujeme příkaz pro vypnutí a vložíme kód pro zapsání textu do souboru killswitch.sh: #!/bin/bash t=$(date); echo $t > /home/ross/tools/killswitch/test; #sudo poweroff -f
  2. Pomocí příkazu chmod nastavíme právo pro spuštění: $ chmod +x ./killswitch.sh
  3. Zkontrolujeme práva: $ ls -al total 12 drwx------ 2 ross ross 4096 31. led 16.23 . drwx------ 5 ross ross 4096 26. led 15.35 .. -rwx------ 1 ross ross 100 31. led 16.17 killswitch.sh
  4. Nastavíme klávesovou zkratku, která zavolá náš skript. Toto se může lišit podle prostředí. Toto je příklad pro Gnome: Settings -> Keyboard Shortcuts -> + (úplně dole)
    1. Name: cokoliv
    2. Command: Cesta k našemu skriptu
    3. Shortcut: po kliknutí stiskněte požadovanou klávesovou zkratku
    4. Klikněte na "Add"
  5. Test: stiskněte vybranou klávesovou zkratku. Nově vytvořený soubor test by měl obsahovat aktuální čas. Pokud ne, něco je špatně:)
  6. Upravíme skript pro "ostrý provoz": #!/bin/bash #t=$(date;echo $USER); #echo $t > /home/ross/tools/killswitch/test; sudo poweroff -f
  7. Pro zavolání příkazu sudo poweroff -f jsou potřeba administrátorská práva. To můžeme obejít vložením nasledujícího řádku do souboru /etc/sudoers: ross ALL = NOPASSWD: /sbin/poweroff (poweroff -f zabrání vyskakování potvrzovacích oken a vypne počítač okamžitě)
  8. Uložíme rozdělanou práci a otestujeme klávesovou zkratku.

 

 Vypnutí po odpojení USB zařízení

  1. Připojíme do USB portu zařízení, které chceme použít jako náš killswitch.
  2. Spustíme monitoring připojení zařízení: $ udevadm monitor --property
  3. USB zařízení odpojíme z počítače, v terminalu by se měl zobrazit výpis podobný tomuto: (...) UDEV [18888.225725] remove /devices/pci0000:00/0000:00:14.0/usb1/1-2 (usb) ACTION=remove DEVPATH=/devices/pci0000:00/0000:00:14.0/usb1/1-2 SUBSYSTEM=usb DEVNAME=/dev/bus/usb/001/038 DEVTYPE=usb_device PRODUCT=950/6535/110 TYPE=0/0/0 BUSNUM=001 (...)
  4. V textovém editoru vytvoříme pravidlo pro zařízení (jako root): $ sudo vim /etc/udev/rules.d/85-my_killswitch_rule.rules
  5. Do souboru vložíme následující řádek: ACTION=="remove", ENV{PRODUCT}=="950/6535/110", RUN+="/root/killswitch.sh"(obsah proměnné ENV{PRODUCT} zkopírujeme z výpisu příkazu udevadm monitor --property)
  6. Aktualizujeme pravidla (root):$ sudo udevadm control --reload-rules
  7. Jako root vytvoříme v textovém editoru skript /root/killswitch.sh s tímto obsahem: #!/bin/sh t=$(date); echo $t > /root/test #shutdown now (pozor, skript bude se spouštět pod uživatelem root! Pokud by se někdo dostal k tomuto skriptu, mohl by ho upravit a získat administrátorská práva. Proto musí být pro "běžného" uživatele nedostupný pro zápis.)
  8. Přidáme atribut pro  spuštění # chmod +x /root/killswitch.sh
  9. Otestujeme.
  10. Ve skriptu odkomentujeme poslední řadek (vymazáním #).
  11. Připraveno k ostrému testu.

Categories: Blog nástroje linux

Tags: linux killswitch skript