Jak zalogować się jako inny użytkownik bash w terminalu?

16

Muszę sprawdzić, czy moja strona internetowa działająca lokalnie na nginx nie działa z powodu problemów z uprawnieniami. Moje skrypty sieciowe działają jako _wwwużytkownik, więc próbowałem się przełączyć na, _wwwale to nie działa:

maciek@macus:~$ sudo su - _www
Password:
maciek@macus:~$ whoami
maciek

Jak mogę to zrobić w 10.8.5?

Maciej Sz
źródło

Odpowiedzi:

12

sudoSię niepowodzeniem, ponieważ _wwwużytkownik ma /usr/bin/falsejako jego powłoki, powodując sesję do końca jak najszybciej przełączeniu użytkownika.

Rozwiązaniem jest użycie -sopcji, która uruchomi twoją bieżącą powłokę zamiast _wwwpowłoki:

$ sudo -s -u _www
Password:
$ whoami
_www

Właśnie przetestowany na systemie 10.9, ale powinien działać dobrze na 10.8.

mjturner
źródło
zwykli użytkownicy nie powinni korzystać sudo.
CousinCocaine
1
@CousinCocaine zdefiniować normalne? czy jesteśmy normalni?
Ray Foss,
16

Użyj login:

$ login
login: username
Password:
Last login: Day Month Date HH:MM:SS on ttys000
$ whoami
username

grg
źródło
1
Nie sądzę, że użytkownicy systemu mają hasła. Monituje o hasło, a pusty nie działa.
Maciej Sz
3
to jest właściwy sposób, aby to zrobić.
CousinCocaine
Jak skomentował PO, nie będzie to działać dla użytkowników, którzy nie mają haseł (których _wwwużytkownik nie będzie miał domyślnie, ani nie powinien go mieć).
mjturner