# su -l www-data ./http-app.py
This account is currently not available.
# su -l www-data -c ./http-app.py
This account is currently not available.
# su -c ./http-app.py www-data
This account is currently not available.
# su -lc ./http-app.py www-data
This account is currently not available.
# getent passwd www-data
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
# getent shadow www-data
www-data:*:16842:0:99999:7:::
# lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux 8.6 (jessie)
Release: 8.6
Codename: jessie
¿Qué le pasa a mi su
o www-data
? Solía funcionar ...
Presumiblemente esto se debe a la /usr/sbin/nologin
, pero ¿cómo puedo abandonar root
este script, sin comprometer otros servicios en el sistema ( nologin
ha sido elegido por el Debian
equipo por una buena razón, quiero creer)?
/bin/sh
se usa de forma predeterminada y debe especificar la-s
opción solo si desea cambiar a/bin/bash
o similar.su www-data -s /bin/sh
para volver a la raíz simplemente escribasu
.Está utilizando el
su
que se utiliza para "cambiar de usuario". Por supuesto, no funcionará porquewww-data
es una cuenta de usuario que no se puede usar para iniciar sesión. Usted ha dicho que:/usr/sbin/nologin
.Quizás lo que quiere es lo
sudo
que se usa para "ejecutar un comando como otro usuario".fuente
su
para este propósito y siempre solía funcionar.sudo
es un paquete adicional para instalar, pero tienes razón, puedo usarlo para lograr lo que quiero.Si desea no solo ejecutar un comando, sino cambiar a
www-data
para probar algunas cosas para ese usuario, esto funcionó para mí:Es un poco más corto. Salga de la sesión con [ctrl] + [d] o
exit
fuente
Con este tipo de problema he usado la opción
-p
:-p: se preserva el medio ambiente. En particular no se trate de inicio de sesión con la nueva cuenta, por lo que no recibe el mensaje:
This account is currently not available.
.fuente