Zezwól niektórym gościom na wykonywanie określonych poleceń

19

Chciałbym utworzyć nowego użytkownika na niektórych moich hostach Debian / Ubuntu, który jest w stanie zaktualizować serwer za pomocą poleceń apt-get updatei apt-get dist-upgrade, ale nie chcę dać im pełnego dostępu do sudo, aby móc robić cokolwiek innego. czy to możliwe? Być może istnieje sposób na stworzenie skryptu, którego nie mogą edytować, ale mogą zostać wykonane, co zostanie wykonane jako użytkownik root?

Programista
źródło
2
Zobacz man sudoersi sudo cat /etc/sudoers.
goldilocks,
Dzięki @goldilocks Zawsze myślałem, że plik sudoers ma na celu umożliwienie ludziom wcześniejszego dostępu do roota.
Programster

Odpowiedzi:

30

Sudoa /etc/sudoersplik nie służy wyłącznie do zapewnienia użytkownikom pełnego dostępu do katalogu głównego.

Możesz edytować plik sudoers za pomocą istniejącego użytkownika sudo za pomocą polecenia sudo visudo

Możesz pogrupować polecenia, którym chcesz udzielić dostępu, jak poniżej:

Cmnd_Alias SHUTDOWN_CMDS = /sbin/poweroff, /sbin/halt, /sbin/reboot
Cmnd_Alias UPDATE_COMMANDS = /usr/bin/apt-get

Następnie możesz nadać określone uprawnienia użytkownika tym poleceniom:

[User's name] ALL=(ALL) NOPASSWD: SHUTDOWN_CMDS, UPDATE_COMMANDS

Można to zobaczyć na poniższym obrazku wprowadź opis zdjęcia tutaj:

Teraz, jeśli spróbujesz sudo apt-get updatelub sudo apt-get dist-upgradete polecenia będą wykonywane bez pytania o hasło . Jeśli chcesz otrzymać monit o hasło, usuń NOPASSWDbit, w którym przyznajesz użytkownikowi dostęp do grup poleceń.

Jeśli spróbujesz uruchomić cokolwiek innego jako sudoużytkownik, zostaniesz poproszony o podanie hasła i nie powiedzie się.

Bibliografia

Programista
źródło
6
Pamiętaj, że udzielenie użytkownikom uprawnień do uruchamiania apt-get, a nawet jedynie apt-get upgrade, daje im pełny dostęp do roota ! Wiele skryptów aktualizacji umożliwia interaktywnemu użytkownikowi wykonanie powłoki, na przykład po zmianie pliku konfiguracyjnego. Aby być bezpiecznym, ogranicz się apt-getdo niektórych poleceń i wymuś, aby nie był interaktywny. Zobacz Czy mojemu użytkownikowi ssh bezpiecznie jest otrzymywać sudo bez hasła dla apt-get updatei apt-get upgrade?
Gilles 'SO - przestań być zły'
W moim przypadku musiałem postawić linię po%sudo ...
Aleksey
Czy można to zrobić tylko z wiersza poleceń?
Kamil Dziedzic