Questo utente non è attualmente disponibile, ma consente l'esecuzione di script da parte di questo utente


22

Ho creato un utente speciale in / etc / passwd con:

secure:x:2000:2000:secure:/bin:/usr/sbin/nologin

Non voglio consentire l'accesso di questo utente (tramite console, ssh, ftp, in ogni caso).

È solo per eseguire uno script tramite:

sudo su secure -c '/home/someuser/secure.script'

Ma mi dà This user is currently not available.. Come configurarlo per poter eseguire lo script in questo modo, ma impedire qualsiasi accesso (console, ssh, ftp, ...) di questo utente al sistema?


Ho notato che quando digito /usr/sbin/nologinsulla riga di comando, il computer risponde This account is currently not available..


Risposte:


27

Questo è un tipico caso d'uso per sudo.

Stai mescolando sudoche consente di eseguire comandi come un altro utente ed è altamente configurabile (puoi specificare in modo selettivo quale utente può eseguire quale comando come quale utente) e suquale passa a un altro utente se conosci la password (o sei root). suesegue sempre la shell scritta /etc/passwd, anche se su -cviene utilizzata. Per questo sumotivo non è compatibile con /usr/sbin/nologin.

Dovresti usare

sudo -u secure /home/someuser/secure.script

Come sudoè configurabile, puoi controllare chi può usare questo comando e se ha bisogno di inserire una password per eseguirlo. È necessario modificare /etc/sudoersutilizzando visudoper fare questo. (Fai attenzione quando modifichi / etc / sudoers e usa sempre visudo per farlo. La sintassi non è banale e un errore può bloccarti dal tuo account di root.)

Questa riga in sudoers consente a chiunque nel gruppo somegroupesegua il comando come secure:

%somegroup    ALL=(secure) /home/someuser/secure.script

Ciò consente a chiunque nel gruppo somegroupdi eseguire il comando come securesenza immettere una password:

%somegroup    ALL=(secure) NOPASSWD: /home/someuser/secure.script

Ciò consente user1di eseguire il comando come securesenza immettere una password:

user1    ALL=(secure) /home/someuser/secure.script

13

Ho scoperto che il problema principale è " /usr/sbin/nologin" in /etc/passwd Quando voglio eseguire su in questo caso, deve avere -s /bin/bashdentro, quindi per esempio:su -s /bin/bash -c '/home/someuser/secure.script' secure


1
Sì, suusa la shell scritta in / etc / passwd per impostazione predefinita. L'utilizzo suè un modo per accedere come utente da un altro utente. nologinstampa il messaggio "Questo utente non è attualmente disponibile." ed esce. sudonon usa una shell per eseguire un comando, quindi anche usare sudosenza sufunzionerà. Vedi la mia risposta per ulteriori informazioni sudo.
cg909,

2

susta usando la shell specificata in /etc/passwd.

Non è necessario utilizzare sucon sudo.

Pertanto non mescolare sucon sudo: usare sudo -u secure '/home/someuser/secure.script'.


-2

Questo potrebbe non essere rilevante al 100% per la domanda, ma può aiutare qualcuno con un messaggio di avviso simile This user is currently not available

1) Verifica con la tua società di hosting se ti è stato concesso l'accesso alla shell.

2) se si utilizza CWP7: impostare Shell Access su ON inserisci qui la descrizione dell'immagine


2
1) è chiaramente disponibile la questione parla di esecuzione accesso Shell su, sudoe ogni sorta di altre cose. 2) Non vi è alcuna indicazione nella domanda che l'installazione in questione sia dietro un pannello di controllo web di qualsiasi forma.
Philip Kendall,

1
Sì (a parte un sito di domande e risposte, non un forum). Ma parte dell'essere utile è assicurarsi che la tua risposta sia effettivamente pertinente alla domanda, e non penso che questa risposta sia effettivamente pertinente: il poster ha chiaramente accesso alla shell già, quindi come accenderlo tramite un pannello di controllo (che potrebbe anche non esistere) risolvere il problema?
Philip Kendall,

3
@ShapCyber: nota che questa domanda riguarda qualcuno che ha creato manualmente un nuovo utente speciale per conto proprio. Le risposte in questo "thread" (domanda) dovrebbero affrontare la situazione in quella domanda. Se hai riscontrato un problema diverso che ha questa come una soluzione, la cosa giusta da fare è quello di Chiedi e Self-Risposta vostra nuova domanda.
Jeff Schaller

1
Quello che @JeffSchaller ha detto è corretto. E ti incoraggio, ShapCyber, a fare davvero, per favore, poni e rispondi autonomamente a una domanda con il problema e la soluzione che hai incontrato (in modo sufficientemente dettagliato per essere utile); e quindi aggiungi un commento a questa domanda per collegarti al tuo. Ecco come aiutare al meglio i futuri lettori nel quadro della configurazione di questo sito. :)
Wildcard il

2
@ShapCyber ​​è per questo che ti stiamo incoraggiando ad aprire una nuova domanda, in modo che le ricerche trovino la risposta giusta per il loro problema.
Jeff Schaller
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.