Come abilitare il login ssh per _www utente?

1

Per distribuire i file sul server Apache in esecuzione su host OS X, desidero eseguire ssh / scp utilizzando l'utente _www .

Non voglio usare root perché voglio essere sicuro di mettere sempre i file con le autorizzazioni corrette.

Il problema è che non riesco ad accedere con _www . Ho cambiato la password dell'account ma il login ssh non riesce ancora dopo aver chiesto la password due volte.

    
posta sorin 10.06.2011 - 15:59
fonte

2 risposte

4

L'utente _www è progettato per non avere mai una shell e molti degli attributi utente necessari per l'esecuzione di ssh mancano. Una volta effettuato l'accesso come qualsiasi altro utente amministratore, puoi facilmente aggiungere all'utente _www per ottenere le autorizzazioni file corrette.

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)

Puoi confrontare con un utente reale per vedere gli attributi mancanti. Se vuoi hackerare, potresti provare a rendere NFSHomeDirectory scrivibile e modificare la shell, ma lascerebbe tutti i tipi di file utente in / Library / Webserver - e le tue mod personalizzate potrebbero essere cancellate da ogni aggiornamento o causare effetti indesiderati lungo la strada .

Qualsiasi motivo per cui non devi solo creare un utente amministratore di Apache con un UID inferiore a 500 in modo che non verrà mostrato nella schermata di accesso come un utente normale ?

(o semplicemente usa un utente normale per ssh in prima di usare sudo per diventare _www )?

È molto meno lavoro e più sicuro. _www è intenzionalmente inserito in una sandboxbox per ridurre le possibilità che la navigazione sul Web faccia brutte cose su un Mac in esecuzione.

    
risposta data 10.06.2011 - 16:25
fonte
1

Come accennato, non potresti ssh direttamente come _www perché la password non può essere impostata, e la shell può essere impostata su /usr/bin/false .

In alternativa, puoi ssh come utente normale e se il tuo utente ha i privilegi di amministratore puoi fare questo:

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

L'ho appena fatto su Mac OS X Snow Leopard e Lion. È ottimo per verificare che le autorizzazioni siano configurate correttamente.

    
risposta data 23.01.2012 - 01:38
fonte

Leggi altre domande sui tag