No se puede ejecutar el comando como www-data usando su


14
# 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 suo www-data? Solía ​​funcionar ...

Presumiblemente esto se debe a la /usr/sbin/nologin, pero ¿cómo puedo abandonar rooteste script, sin comprometer otros servicios en el sistema ( nologinha sido elegido por el Debianequipo por una buena razón, quiero creer)?

Respuestas:


18

Sin debatir suvs. sudopuede intentar agregar -s /bin/sha su línea de comando. (No pude verificar que esta opción esté disponible para jessie ya que el servidor web de páginas de manual de Debian no funciona: https://manpages.debian.org/ )


Asumí incorrectamente que /bin/shse usa de forma predeterminada y debe especificar la -sopción solo si desea cambiar a /bin/basho similar.
— NarūnasK

3
Gracias, funciona en Debian 9 su www-data -s /bin/shpara volver a la raíz simplemente escriba su.
— PJ Brunet

44
@PJBrunet - "para volver a la raíz" (suponiendo que lo hiciste desde la raíz), escribirías "exit". Para iniciar un nuevo shell raíz, debe escribir su.
— ChronoFish

31

Está utilizando el suque se utiliza para "cambiar de usuario". Por supuesto, no funcionará porque www-dataes 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 sudoque se usa para "ejecutar un comando como otro usuario".

sudo -u www-data ./http-app.py

Siempre lo usé supara este propósito y siempre solía funcionar. sudoes un paquete adicional para instalar, pero tienes razón, puedo usarlo para lograr lo que quiero.
— NarūnasK

1

Si desea no solo ejecutar un comando, sino cambiar a www-datapara probar algunas cosas para ese usuario, esto funcionó para mí:

sudo -u www-data sh

Es un poco más corto. Salga de la sesión con [ctrl] + [d] oexit


0

Con este tipo de problema he usado la opción -p:

su -pc ./http-app.py www-data

-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..

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.