Press "Enter" to skip to content

Killswitch pro Linux

0

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.

Sdílet / Share