Um Dateien auf dem Apache-Server bereitzustellen, der auf dem OS X-Host ausgeführt wird, möchte ich mit dem _www
Benutzer ssh/scp darauf zugreifen.
Ich möchte nicht root verwenden, weil ich sicher sein möchte, dass ich die Dateien immer mit den richtigen Berechtigungen ablege.
Das Problem ist, dass ich mich nicht anmelden kann _www
. Ich habe das Passwort für das Konto geändert, aber die SSH-Anmeldung schlägt immer noch fehl, nachdem ich zweimal nach dem Passwort gefragt wurde.
Der _www
Benutzer ist so konzipiert, dass er niemals eine Shell hat, und viele der Benutzerattribute, die zum Ausführen von ssh erforderlich sind, fehlen. Sobald Sie sich als ein anderer Admin-Benutzer angemeldet haben, können Sie einfach per Sudo zum Benutzer wechseln, _www
um die Dateiberechtigungen korrekt zu erhalten.
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)
Sie können mit einem echten Benutzer vergleichen, um die fehlenden Attribute zu sehen. Wenn Sie hacken wollen, könnten Sie versuchen, das NFSHomeDirectory beschreibbar zu machen und die Shell zu bearbeiten – aber das würde alle möglichen Benutzerdateien in /Library/Webserver hinterlassen – und Ihre benutzerdefinierten Mods könnten bei jedem Update gelöscht werden oder später unbeabsichtigte Effekte verursachen .
Gibt es Gründe, warum Sie nicht einfach einen Apache-Administratorbenutzer mit einer UID von weniger als 500 erstellen, damit er nicht als normaler Benutzer auf dem Anmeldebildschirm angezeigt wird ?
(oder verwenden Sie einfach einen normalen Benutzer, um sich einzuloggen, bevor Sie sudo verwenden, um zu werden _www
)?
Es ist viel weniger Arbeit und sicherer. _www
wird absichtlich in einer Sandbox platziert, um die Wahrscheinlichkeit zu verringern, dass das Surfen im Internet einem laufenden Mac schadet.
Wie bereits erwähnt, können Sie nicht direkt als _www ssh, da das Passwort möglicherweise nicht festgelegt ist und die Shell möglicherweise auf /usr/bin/false
.
Alternativ können Sie sich als normaler Benutzer per SSH anmelden, und wenn Ihr Benutzer über Administratorrechte verfügt, können Sie dies tun:
(me@local)$ ssh me@myserver
(me@myserver)$ sudo -u _www -s
Password: (type it in)
(_www@myserver)$ whoami
_www
Ich habe das gerade auf Mac OS X Snow Leopard und Lion gemacht. Es ist großartig, um zu überprüfen, ob die Berechtigungen korrekt eingerichtet sind.
Sorin
chown
. Kennen Sie eine Problemumgehung, bei der ich nicht riskiere, den Webserver aufgrund von Dateiberechtigungen zu beschädigen?Fahrrad
_www
hat keine Probleme beim Lesen von Dateien, die root (oder einem anderen Benutzer) gehören, es ist eher einumask
/chmod
-Problem als der Besitz.Jason Salaz
chown
? Wirklich? Ich denke, Sie müssen persönlich eine bessere Software finden.