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

Para implementar archivos en el servidor apache que se ejecuta en el host OS X, quiero usar ssh/scp usando el _wwwusuario.

No quiero usar la raíz porque quiero estar seguro de que siempre pongo 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 ssh sigue fallando después de pedirme la contraseña dos veces.

Respuestas (2)

El _wwwusuario está diseñado para no tener nunca un shell y faltan muchos de los atributos de usuario necesarios para que ssh se ejecute. Una vez que inicie sesión como cualquier otro usuario administrador, puede cambiar fácilmente al usuario _wwwpara 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)

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

¿Alguna razón por la que no cree un usuario administrador de apache con un UID inferior a 500 para que no se muestre en la pantalla de inicio de sesión como un usuario normal ?

(o simplemente use un usuario normal para ingresar antes de usar Sudo para convertirse _www)?

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

Gracias por la extensa respuesta. El problema es que uso algunas otras herramientas para la implementación y estas herramientas no pueden hacerlo chown. ¿Conoce alguna solución alternativa que no me arriesgue a romper el servidor web debido a los permisos de archivo?
Debería poder hacer que el usuario que usa esté en un grupo apropiado para los archivos existentes: ¿en qué directorios se implementa? _wwwno tiene problemas para leer archivos propiedad de root (o cualquier otro usuario), es más un umaskproblema chmodque la propiedad.
Software de implementación, que no puede chown? ¿En realidad? Creo que necesitas encontrar un software mejor, personalmente.

Como se mencionó, no puede usar ssh directamente como _www porque es posible que la contraseña no esté configurada y que el shell esté configurado en /usr/bin/false.

Alternativamente, puede ingresar como un usuario regular, y si su usuario tiene privilegios de administrador, puede 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 tanto en Mac OS X Snow Leopard como en Lion. Es genial para comprobar que los permisos están configurados correctamente.