Tworzenie konta UNIX, które wykonuje tylko jedno polecenie


13

Czy istnieje sposób utworzenia konta użytkownika w systemie Solaris, który umożliwia użytkownikom uruchamianie tylko jednego polecenia? Bez powłoki logowania lub czegokolwiek innego. Mógłbym zrobić to /usr/bin/falsew /etc/passwdi po prostu użytkownikowi ssh <hostname> <command>, ale czy istnieje sposób ładniejszy to zrobić?

Odpowiedzi:


15

Można użyć polecenia wymuszonego, jeśli użytkownicy mogą łączyć się tylko przez ssh. Zasadniczo, ilekroć użytkownik łączy się przez ssh z pewnym kluczem i określoną nazwą użytkownika, zmuszasz go do wykonania polecenia (lub skryptu lub) określonego w .ssh / Polecenia wydane przez użytkowników zostaną zignorowane.

Na przykład:

# in .ssh/authorized_keys
command="cd /foo/bar && /path/to/scripts/my_script.sh arg1 arg2",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty ssh-rsa public_key

Oboje mieliście rację. To, co zrobiłem, stworzyłem skrypt, który wyświetla menu w wierszu polecenia i użyłem polecenia wymuszonego sprawdzania w .ssh / uprawnione_klucze na serwerze przed kluczem dla autoryzowanego użytkownika. Umożliwia to teraz ssh do serwera i po wyświetleniu monitu otrzymuje ładne menu z kilkoma poleceniami do wykonania. Nic więcej nie można uruchomić. Szczęśliwe dni!
Will Dowling

2
Edytowane; potrzebujesz tych opcji, aby zabezpieczyć wymuszone polecenie: „bez przekierowania portu, bez przekierowania X11, bez przekierowania agenta, bez pty”.
Tobu

11

Możesz ustawić powłokę tego użytkownika na skrypt uruchamiający polecenie, na które chcesz zezwolić: Za każdym razem, gdy użytkownik się loguje, polecenie jest uruchamiane, a następnie użytkownik jest wylogowywany. A ponieważ nie ma „pełnej powłoki”, nie musisz radzić sobie z użytkownikiem próbującym fajne rzeczy;)


0

Zastanawiam się, czy można to zrobić za pomocą RBAC i nadania użytkownikowi uprzywilejowanej powłoki (pfsh, pfcsh lub pfksh) i utworzenia profilu dla poleceń, które użytkownik (użytkownicy) mogliby uruchomić.

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.