¿Cómo habilitar el inicio de sesión ssh para _www usuario?

1

Para implementar los archivos del servidor apache que se ejecuta en el host OS X, quiero ssh / scp utilizando el usuario _www .

No quiero usar root porque quiero estar seguro de que siempre coloco los archivos con los permisos correctos.

El problema es que no puedo iniciar sesión con _www . Cambié la contraseña de la cuenta, pero el inicio de sesión en ssh sigue fallando después de pedirme la contraseña dos veces.

    
pregunta sorin 10.06.2011 - 15:59

2 respuestas

4

El usuario _www está diseñado para nunca tener un shell y faltan muchos de los atributos de usuario necesarios para que se ejecute ssh. Una vez que inicie sesión como cualquier otro usuario administrador, puede pasar fácilmente al usuario _www para obtener los permisos de archivo correctos.

mac:~ me$ dscl . -read /Users/_www
AppleMetaNodeLocation: /Local/Default
GeneratedUID: FFFFEEEE-DDDD-CCCC-BBBB-AAAA00000046
NFSHomeDirectory: /Library/WebServer
Password: *
PrimaryGroupID: 70
RealName:
 World Wide Web Server
RecordName: _www www
RecordType: dsRecTypeStandard:Users
UniqueID: 70
UserShell: /usr/bin/false

mac:~ me$ sudo -u _www -s
Password:
bash-3.2$ id
uid=70(_www) gid=70(_www) groups=70(_www),61(localaccounts),12(everyone)

Puedes comparar con un usuario real para ver los atributos que faltan. Si desea piratear, puede intentar hacer que el NFSHomeDirectory pueda escribirse y editar el shell, pero eso dejaría todo tipo de archivos de usuario en / Biblioteca / Servidor web, y sus modificaciones personalizadas podrían eliminarse con cada actualización o causar efectos no deseados en el futuro. .

Cualquier motivo por el que no creas un usuario administrador de apache con un UID inferior a 500 para que no se mostrará en la pantalla de inicio de sesión como un usuario normal ?

¿

(o simplemente usa un usuario normal para ssh antes de usar sudo para convertirse en _www )?

Es mucho menos trabajo y más seguro. _www se coloca intencionalmente en una caja de arena para reducir la posibilidad de que la navegación web haga cosas malas para un mac en ejecución.

    
respondido por el bmike 10.06.2011 - 16:25
1

Como se mencionó, no pudo ssh directamente como _www porque la contraseña puede no estar establecida y el shell puede estar configurado como /usr/bin/false .

Alternativamente, puedes hacer ssh como usuario regular, y si tu usuario tiene privilegios de administrador, puedes hacer esto:

(me@local)$ ssh me@myserver
(me@myserver)$ sudo -u _www -s
Password: (type it in)
(_www@myserver)$ whoami
_www

Acabo de hacer esto en Mac OS X Snow Leopard y Lion. Es genial para comprobar que los permisos están configurados correctamente.

    
respondido por el Matt Connolly 23.01.2012 - 01:38

Lea otras preguntas en las etiquetas