Jak zezwolić użytkownikowi na zalogowanie się za pomocą „ su -
użytkownika ”, ale uniemożliwić mu zalogowanie się przy użyciu SSH?
Próbowałem ustawić powłokę na, /bin/false
ale kiedy próbuję su
, nie działa.
Czy istnieje kilka sposobów, aby zezwolić tylko na logowanie su
?
Czy SSH jest właściwą AllowUser
drogą? (jak bym to zrobił, jeśli to jest droga)
su - -s /bin/bash user
Jeśli nadal chcesz, aby su działało, możesz użyć
sudo -u [username]
lub przekazać-s /bin/bash
su jako tymczasową powłokę. Obie robią to samo bez powłoki/etc/passwd
.źródło
Jeśli konto nie ma hasła ( passwd -d nazwa użytkownika ), nie może zalogować się interaktywnie (konsola, SSH itp.). Jeśli mają prawidłową powłokę, su nadal będzie działać. Zwróć jednak uwagę na „interaktywnie”; jeśli ktoś zdecyduje się ustawić parę kluczy SSH dla konta, zadziała!
źródło
W sshd_config dodaj linię
DenyUser [username]
Pamiętaj, że nie uniemożliwi to temu użytkownikowi zalogowania się za pomocą konsoli.
źródło
DenyUsers
z „s”.Oprócz tego, co zostało wspomniane powyżej (wyłączanie i / lub brak ustawiania hasła użytkownika), moduł pam_access (wyszukaj stronę podręcznika na pam_access i access.conf) może służyć do kontrolowania dostępu do logowania.
źródło
jak powiedzieli inni;
DenyUser username
lubDenyGroup groupname
insshd_config
uniemożliwiłoby zalogowanie pary kluczy / hasła za pośrednictwem ssh.chociaż zwykle robię coś podobnego
AllowGroup ssh
lub coś w tym stylu i wyraźnie dodaję osoby, które potrzebują dostępu ssh do tej grupy.następnie możesz zrobić tak, jak powiedzieli inni:
passwd -d username
usunąć hasło użytkownika, aby nie mogli zalogować się do konsoli lub w inny sposób. lub jeszcze lepiej,passwd -l username
aby „zablokować” konto. możliwe, że ssh odmówi dostępu do zablokowanego konta, nawet z kluczami, ale nie jestem pozytywny.źródło
Jak wspomniałem w komentarzu, myślę, że nadal możesz su na konto z nieprawidłową powłoką. Więc jeśli ustawisz powłokę użytkownika na / dev / null lub cokolwiek to jest powłoka bin, powinieneś móc nadal su do tego użytkownika ... ale każda próba zalogowania się w jakikolwiek sposób spowoduje wycofanie się z powrotem ...
źródło
edytuj / etc / shadow, dodając! na początku skrótu hasła.
Podczas zabezpieczania nowej instalacji jest to pierwsza rzecz, którą robię po zainstalowaniu sudo, więc nikt nie może użyć użytkownika root do zalogowania się lub ssh w systemie, użytkownicy sudo mogą nadal wykonywać jako użytkownik root.
źródło
Nie podawaj hasła dla użytkownika, któremu nie wolno się logować ani go usuwać.
źródło
Zakładając, że chcesz tylko su suć użytkownika z konta roota i wyłączyć wszystkie inne prawa dostępu:
Użyj tego (uruchom jako root):
To wyłącza logowanie za pomocą hasła (jak sugerowało wiele innych odpowiedzi), ale także wygasa konto . Nie możesz zalogować się na wygasłe konto, np. Za pomocą kluczy SSH. Nadal możesz
su user
, chociaż wyświetli się powiadomienie o wygaśnięciu konta.źródło
Wiedza, który mechanizm jest najlepszy, zależy od wymagań. Jeśli znasz wymagania, możesz wybrać odpowiedni mechanizm. Wszystkie powyższe odpowiedzi są ważne dla pewnego zestawu wymagań.
Czy chcesz tylko ograniczyć dostęp do SSH? Czy potrzebujesz dostępu do metod poczty lub ssh? Czy dostęp jest tylko z poziomu roota?
su - user
będzie wymagał hasła dla użytkownika, jeśli zostanie uruchomiony jako użytkownik inny niż root. Jednaksudo -u user -i
nie wymaga hasła dla użytkownika.źródło