GNU/Linux >> Znalost Linux >  >> Linux

Jak nechat uživatele provést příkaz obsahující uvozovky v sudoers?

Jednoduchým řešením je vložit příkaz do skriptu a poté umožnit uživatelům přístup ke skriptu pomocí sudo.

user ALL = (root) NOPASSWD: /path/to/yourscript

Potom

#/bin/bash
chroot /chroots/box /bin/bash -c 'cd /repos/system && git pull'

Ujistěte se, že vaši uživatelé nemají přístup k zápisu do vašeho skriptu.


edit:Upozornění, zdá se, že sudo nezvládá bezpečně mezery v příkazu, takže není bezpečné používat sudo tímto způsobem. https://unix.stackexchange.com/a/279142/39281

Místo použití uvozovek v souboru sudoers můžete mezery ukončit pomocí zpětného lomítka:

user ALL = (root) NOPASSWD: chroot /chroots/box /bin/bash -c cd\ /repos/system\ &&\ git\ pull

Stále jej můžete používat následovně, protože uživatelský shell stejně zpracuje citovaný argument:

chroot /chroots/box /bin/bash -c 'cd /repos/system && git pull'

Osobně se mi líbí druhá odpověď, dát ji do skriptu, ale tato odpovídá na skutečnou otázku.


Linux
  1. Jak spustit kód v prostředí Django pomocí externího skriptu python?

  2. Jak zobrazit historii příkazů jiného uživatele v Linuxu?

  3. Jak vzdáleně spustit příkaz ssh a příkaz sudo bez hesla

  1. Jak provést příkaz před přihlášením uživatele v systému Linux?

  2. Jak používat příkaz id v Linuxu:5 užitečných příkladů

  3. Jak zaznamenám každý příkaz provedený uživatelem?

  1. Jak spustit příkaz jako konkrétní uživatel ve skriptu init?

  2. Jak spustit příkaz bash s právy sudo v Javě?

  3. Jak mohu přidat běžného uživatele do souboru sudoers?