Stworzyłem specjalnego użytkownika w / etc / passwd za pomocą:
secure:x:2000:2000:secure:/bin:/usr/sbin/nologin
Nie chcę zezwalać na logowanie tego użytkownika (przez konsolę, ssh, ftp, w jakikolwiek sposób).
On jest po prostu do uruchomienia jednego skryptu poprzez:
sudo su secure -c '/home/someuser/secure.script'
Ale to mi daje This user is currently not available.
. Jak skonfigurować, aby można było uruchamiać skrypt w ten sposób, ale zapobiegać logowaniu (konsoli, ssh, ftp, ...) tego użytkownika do systemu?
Zauważyłem, że po wpisaniu /usr/sbin/nologin
w wierszu polecenia, komputer reaguje This account is currently not available.
.
sudo su
, patrz unix.stackexchange.com/questions/218169/…Odpowiedzi:
Jest to typowy przypadek użycia dla
sudo
.Miksujesz,
sudo
co pozwala na uruchamianie poleceń jako inny użytkownik i jest wysoce konfigurowalne (możesz selektywnie określić, który użytkownik może uruchomić które polecenie jako który użytkownik) isu
który przełącza się na innego użytkownika, jeśli znasz hasło (lub jesteś rootem).su
zawsze uruchamia napisaną powłokę/etc/passwd
, nawet jeślisu -c
jest używana. Z tego powodusu
nie jest kompatybilny z/usr/sbin/nologin
.Powinieneś użyć
sudo -u secure /home/someuser/secure.script
W miarę
sudo
konfigurowalności możesz kontrolować, kto może korzystać z tego polecenia i czy musi wprowadzić hasło, aby je uruchomić. Aby to zrobić, musisz dokonać edycji/etc/sudoers
za pomocąvisudo
. (Zachowaj ostrożność podczas edytowania / etc / sudoers i zawsze używaj do tego visudo. Składnia nie jest trywialna, a jeden błąd może zablokować ci konto root).Ta linia w sudoers pozwala każdemu w grupie
somegroup
na uruchomienie polecenia jakosecure
:Dzięki temu każdy w grupie
somegroup
może uruchomić poleceniesecure
bez wprowadzania hasła:Pozwala to
user1
na uruchomienie poleceniasecure
bez wprowadzania hasła:źródło
Odkryłem, że głównym problemem jest „
/usr/sbin/nologin
” w/etc/passwd
Kiedy chcę wykonać su w tym przypadku, musi mieć-s /bin/bash
wewnątrz, więc na przykład:su -s /bin/bash -c '/home/someuser/secure.script' secure
źródło
su
domyślnie używa powłoki napisanej w / etc / passwd. Używaniesu
jest sposobem na zalogowanie się jako użytkownik od innego użytkownika.nologin
drukuje komunikat „Ten użytkownik jest obecnie niedostępny”. i wychodzi.sudo
nie używa powłoki do wykonania komendy, więc użyciesudo
bezsu
będzie również działać. Więcej informacji na temat mojej odpowiedzisudo
.su
używa powłoki określonej w/etc/passwd
.Nie musisz używać
su
zsudo
.Dlatego nie mieszaj
su
zsudo
: użyjsudo -u secure '/home/someuser/secure.script'
.źródło
To może nie być w 100% istotne dla pytania, ale może pomóc komuś, kto miał podobny komunikat ostrzegawczy
This user is currently not available
1) Skontaktuj się z firmą hostingową, czy uzyskałeś dostęp do powłoki.
2) jeśli używasz CWP7: Ustaw Shell Access na ON
źródło
su
,sudo
i wszelkiego rodzaju inne rzeczy. 2) Nic nie wskazuje na to, że dana instalacja znajduje się za panelem sterowania w dowolnej formie.