Para implementar archivos en el servidor apache que se ejecuta en el host OS X, quiero usar ssh/scp usando el _www
usuario.
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.
El _www
usuario 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 _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)
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. _www
se 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.
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.
sorín
chown
. ¿Conoce alguna solución alternativa que no me arriesgue a romper el servidor web debido a los permisos de archivo?bmike
_www
no tiene problemas para leer archivos propiedad de root (o cualquier otro usuario), es más unumask
problemachmod
que la propiedad.jason salaz
chown
? ¿En realidad? Creo que necesitas encontrar un software mejor, personalmente.