Co robi sudo-H?
Po próbie zainstalowania virtualenv z pip
$ pip install virtualenv
Dostałem błąd odmowy pozwolenia
IOError: [Errno 13] Permission denied: '/Library/Python/2.7/site-packages/virtualenv.py'
Więc użyłem sudo do zainstalowania virtualenv
$ sudo pip install virtualenv
Ale wtedy pojawiło się Ostrzeżenie:
Katalog '/ Users / petertao/Library/Caches/pip / http' lub jego rodzic katalog nie jest własnością bieżącego użytkownika, a pamięć podręczna została niepełnosprawni. Sprawdź uprawnienia i właściciela tego katalogu. Jeśli wykonując pip z sudo, możesz chcieć użyć flagi-H sudo.
Katalog '/ Users / petertao/Library/Caches / pip' lub jego rodzic katalog nie jest własnością bieżącego użytkownika i koła buforujące zostały niepełnosprawni. sprawdź uprawnienia i właściciela tego katalogu. Jeśli wykonując pip z sudo, możesz chcieć użyć flagi-H sudo.
Co robi flaga sudo-H?
1 answers
Ogólnie
man sudo
(dokładny tekst może się różnić, ale będzie podobny):
-H
Opcja-H (HOME) wymaga, aby polityka bezpieczeństwa ustawiła zmienną środowiskową HOME do katalogu domowego użytkownika docelowego (domyślnie root), jak określono w bazie haseł. W zależności od zasad może to być zachowanie domyślne.
Więc dlaczego jest to w ogóle opcja? normalnie użycie "sudo" nie zmienia środowiska $HOME zmienna.
Na przykład:
echo $HOME $USER
/home/testuser testuser
sudo bash -c 'echo $HOME $USER'
/home/testuser root
sudo -H bash -c 'echo $HOME $USER'
/home/root root
Widać, że zwykłe sudo zmienia użytkownika, którym jestem z "testuser" na "root" , ale nie to, na co ustawia się $HOME, podczas gdy sudo-H zmienia również zmienną z" my " katalogu domowego na katalog domowy roota.
W Twoim przypadku
Pip ostrzega cię, że został wykonany jako root użytkownika i chciał zmodyfikować rzeczy w $HOME, który został ustawiony na '/ Users / petertao', który nie jest własnością roota (najprawdopodobniej użytkownika "petertao"). na ostrzeżenie wskazuje, że pip używa $HOME do buforowania plików, ale wyłączył własne buforowanie z powodu rozbieżności w własności folderów.
Oczywiście podczas wykonywania jako root pip może modyfikować '/ Users / petertao/Library/Caches / pip', ponieważ root jest (prawie) Wszechmogący. Może to stać się kłopotliwe później, ponieważ program działający bez roota nie może już nadpisywać lub modyfikować tych plików. Zamiast tego pip odmawia zapisu do katalogu należącego do innego użytkownika.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-05-02 14:03:17