Potrzebuję sprawdzić katalog w katalogu osobistym innego użytkownika. Zwykle robiłbym sudo, ale to rozprasza inny proces i tracę też środowisko.Jak mogę zrobić sudo w Bash?
Na przykład mam:
if [[ -d "/home/otheruser/svn" ]];
then
echo "SVN exists"
else
echo "SVN does not exist"
fi
muszę stan testu, aby uruchomić z uprawnieniami administratora.
Ta odpowiedź pracował też ssie mogę przyjąć tylko jedną odpowiedź. –
+1 - Jedno z rzadkich zastosowań '/ bin/test', które jest uzasadnione. –
Lepsza odpowiedź zdecydowanie, ponieważ nie ma ryzyka podwójnej oceny: jeśli ktoś próbował sparametryzować drugą odpowiedź, ale zrobił to źle (tj. 'Sudo bash -c" [[-d $ nazwa_pliku]] "') mógłbyś być złośliwy nazwy plików wykonywane jako komendy (weź pod uwagę 'filename = 'foo]] || rm -rf $ HOME || [[true''). W przeciwieństwie do tego, ta odpowiedź jest całkowicie bezpieczna: 'jeśli sudo test -d" $ filename "' nie uruchomi żadnego polecenia poza 'testem'. –