Creé un usuario especial en / etc / passwd con:
secure:x:2000:2000:secure:/bin:/usr/sbin/nologin
No quiero permitir el inicio de sesión de este usuario (a través de la consola, ssh, ftp, de ninguna manera).
Es solo para ejecutar un script a través de:
sudo su secure -c '/home/someuser/secure.script'
Pero me da This user is currently not available.
. ¿Cómo configurarlo para poder ejecutar el script de esta manera pero evitar cualquier inicio de sesión (consola, ssh, ftp, ...) de este usuario al sistema?
He notado que cuando escribo /usr/sbin/nologin
en la línea de comandos, la computadora responde con This account is currently not available.
.
sudo su
, consulte unix.stackexchange.com/questions/218169/…Respuestas:
Este es un caso de uso típico para
sudo
.Está mezclando lo
sudo
que permite ejecutar comandos como otro usuario y es altamente configurable (puede especificar selectivamente qué usuario puede ejecutar qué comando como qué usuario) ysu
qué cambia a otro usuario si conoce la contraseña (o es root).su
siempre ejecuta el shell escrito/etc/passwd
, incluso sisu -c
se usa. Debido a estosu
no es compatible con/usr/sbin/nologin
.Deberías usar
sudo -u secure /home/someuser/secure.script
Como
sudo
es configurable, puede controlar quién puede usar este comando y si necesita ingresar una contraseña para ejecutarlo. Necesita editar/etc/sudoers
usandovisudo
para hacer esto. (Tenga cuidado al editar / etc / sudoers y siempre use visudo para hacerlo. La sintaxis no es trivial y un error puede bloquearlo de su cuenta raíz).Esta línea en sudoers permite a cualquier persona en el grupo
somegroup
ejecutar el comando comosecure
:Esto permite que cualquier persona del grupo
somegroup
ejecute el comandosecure
sin ingresar una contraseña:Esto permite
user1
ejecutar el comandosecure
sin ingresar una contraseña:fuente
Descubrí que el problema principal es "
/usr/sbin/nologin
" en/etc/passwd
Cuando quiero ejecutar su en este caso, debe tener-s /bin/bash
dentro, por ejemplo:su -s /bin/bash -c '/home/someuser/secure.script' secure
fuente
su
usa el shell escrito en / etc / passwd por defecto. Usarsu
es una forma de iniciar sesión como usuario de otro usuario.nologin
imprime el mensaje "Este usuario no está disponible actualmente". y salidassudo
no usa un shell para ejecutar un comando, por lo que usarsudo
sinsu
también funcionará. Vea mi respuesta para más informaciónsudo
.su
está utilizando el shell especificado en/etc/passwd
.No necesitas usar
su
consudo
.Por lo tanto, no mezclar
su
consudo
: usosudo -u secure '/home/someuser/secure.script'
.fuente
Esto puede no ser 100% relevante para la pregunta, pero puede ayudar a alguien que haya recibido un mensaje de advertencia similar
This user is currently not available
1) Verifique con su empresa de alojamiento si se le ha otorgado acceso de shell.
2) si está utilizando CWP7: configure el acceso de Shell en ON
fuente
su
,sudo
y todo tipo de otras cosas. 2) No hay ninguna indicación en la pregunta de que la instalación en cuestión esté detrás de un panel de control web de ninguna forma.