drobnoziarnista konfiguracja sudoers (dozwolone argumenty wiersza poleceń)


20

czy istnieje prosty sposób, aby pozwolić użytkownikowi na uruchomienie (na przykład)

/usr/bin/pacman -S -u

jako root, nie pozwalając mu na bieganie

/usr/bin/pacman -S -u some_package

?

Linia

user ALL=(root) NOPASSWD: /usr/bin/pacman -S -u

pozwala zarówno, jak i

user ALL=(root) NOPASSWD: /usr/bin/pacman -S -u ""

wydaje się semantycznie równoważny.

Odpowiedzi:


27

W twoim przypadku spróbuj czegoś takiego:

Cmnd_Alias PACMAN = /usr/bin/pacman -S -u, ! /usr/bin/pacman -S -u some_package
user ALL=(root) NOPASSWD: PACMAN

Możesz użyć wzorców globu powłoki, takich jak [az], [0-9], * itd. W pliku sudoers, aby wykluczyć pakiety pasujące do określonego wzorca.


3

Napisz skrypt, który robi, co chcesz i daj sudo do niego dostęp.

Upewnij się także, że w jakimkolwiek środowisku, w którym jest uruchomiony, nie ma w ogóle dostępu do sieci, lub mogą po prostu użyć własnych dns, aby sfałszować kopię lustrzaną, a następnie uruchomić dowolny kod jako root, gdy zostanie zainstalowany przez Pacmana.


to nie jest elegancki sposób, sudo domyślnie obsługuje dokładnie podany przypadek
matthias krull

1
Nie najlepsze rozwiązanie, ale +1 za ostrzeżenie dotyczące bezpieczeństwa
Aaron J Lang
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.