Tworzenie użytkownika, który nie może uzyskać interaktywnej powłoki

17

Co to jest powłoka interaktywna i nieinteraktywna?

Pytania: Utwórz użytkownika, który nie powinien otrzymywać interaktywnej powłoki.

Jak możemy to zrobić?

użytkownik2914
źródło

Odpowiedzi:

9

/etc/passwdPlik ma jako ostatni element w wierszu użytkownika program do uruchamiania podczas logowania. Dla zwykłych użytkowników jest to zwykle ustawione na /bin/shlub inną powłokę (np. Bash, zsh).

Tradycyjnie tożsamości używane do procesów lub plików lub innych zasobów mają ustawioną „powłokę” na „ /bin/falsein”

syslog:x:101:102::/home/syslog:/bin/false

Pseudo-użytkownik syslog jest właścicielem /var/log/syslogi jest jedynym UID, który ma uprawnienia do zapisu dla tego pliku, ale nie można zalogować się jako syslog użytkownika, ponieważ nie ma uruchomionego interpretera poleceń.

msw
źródło
9

Jeśli chodzi o pytanie, na które próbujesz odpowiedzieć:

Utwórz użytkownika Johna, który nie powinien otrzymywać interaktywnej powłoki.

Pytanie oznacza „Utwórz użytkownika o nazwie, johnktóry nie będzie mógł się zalogować i uruchamiać poleceń z powłoki”. Interaktywny opisuje sposób działania powłoki: użytkownik coś pisze, a powłoka robi coś odpowiednio (istnieje rodzaj komunikacji między użytkownikiem a powłoką). Słowo „interaktywne” tak naprawdę nie dodaje żadnych informacji do pytania, ponieważ dopóki istnieje polecenie wpisywania przez użytkownika, sesja powłoki jest interaktywna.

Istnieje również tryb nieinteraktywny, w którym użytkownik zapisuje serię poleceń, które chce uruchomić w pliku (zwany skryptem powłoki), a następnie wykonuje plik. Niektóre polecenia zachowują się inaczej w zależności od tego, czy powłoka jest uruchamiana interaktywnie, czy nie. Możesz przeczytać więcej tutaj (ten dokument dotyczy bash, ale ta sama koncepcja dotyczy innych powłok).

Jak utworzyć takiego użytkownika, jeśli przejrzysz, man useraddistnieje możliwość ustawienia powłoki logowania -slub --shell. Możesz także utworzyć użytkownika normalnie, w każdym razie, co chcesz (co zakładam, że już wiesz?), A następnie edytować /etc/passwdjak w odpowiedzi msw .

phunehehe
źródło
3

Tak, zmienić powłokę w pliku haseł (/ etc / passwd) do jakiegoś programu, który nie nie pozwalają na ucieczkę powłoki.

jeśli chcesz być bofh / bin / false, zrobi dokładnie to, co chcesz.

David Harris
źródło
-1
adduser username -s /sbin/nologin
H2 Mac
źródło
2
Zauważ, że nazwa użytkownika jest podana w pytaniu jako „John”. Nie zaszkodzi użyć odrobiny prozy, aby wyjaśnić, co robi twoje polecenie i dlaczego spełnia wymagania.
Jeff Schaller