Czy edytowanie globalnej zmiennej środowiskowej PATH jest bezpieczne?

9

Niedawno dowiedziałem się, że nie mogę uruchomić mysql bez wpisania całej ścieżki lub znalezienia się we właściwym katalogu - chyba że dodałem ścieżkę do zmiennej środowiskowej PATH.

Udało mi się to zrobić i teraz mogę uruchomić mysql po uruchomieniu mojej linii poleceń. Jestem leniwy i nie chciałem wpisywać całej ścieżki, aby uruchomić mysql z cmd. Poza tym nie wiedziałem o tym, jak to zrobić. Losowo natrafiłem na rozwiązanie na forum.

Zastanawiam się teraz tylko, czy jest to w porządku / bezpieczne dla wszystkich moich programów.

Chociaż nie jest to praktyczne, jest to tylko środek ostrożności.

Zauważyłem, że w niektórych samouczkach online niektóre osoby miały zmienną PATH dla swojej zmiennej użytkownika, podczas gdy ja nie. Zmienną środowiskową PATH znalazłem tylko w sekcji zmiennych systemowych. Czy to źle?

Jedynym kontem na moim komputerze jest konto administratora. Przynajmniej to jedyne konto, z którego korzystam.

Czy mogę uzyskać trochę jasności / informacji na ten temat?

ThatRandomGuy
źródło

Odpowiedzi:

9

Zwykle dodawanie katalogów nie jest niebezpieczne PATH. Może powodować problemy tylko na dwa sposoby:

  1. Podczas korzystania z wiersza polecenia możesz przypadkowo uruchomić program, którego nie zamierzałeś. Z drugiej strony, jeśli znasz programy, które instalujesz PATH, nic złego się nie stanie.
  2. Programy mogą tam znaleźć biblioteki DLL, które zwykle nie są ładowane. W DLL wyszukiwania Zamówienie określa, że jeżeli wniosek DLL nie można znaleźć w zwykłych miejscach, to zostanie ostatecznie szukać w PATHmiejscach. Jeśli, powiedzmy, program opcjonalnie załadował moduł, próbując załadować bibliotekę DLL według nazwy i nie dbając o to, jeśli się nie powiedzie, ktoś kontrolujący PATHfolder może spowodować, że program załaduje dowolną bibliotekę DLL, jeśli jej nazwa nie zostanie znaleziona wcześniej w wyszukiwaniu. Nawiasem mówiąc, ten możliwy problem z bezpieczeństwem jest powodem, dla którego próba załadowania bibliotek DLL, które mogą, ale nie muszą być, jest złym pomysłem. Dobrze napisane programy nie będą miały tego problemu.

Można również maksymalniePATH zwiększyć zmienną długość , ale tak naprawdę nie jest to problem bezpieczeństwa.

Jeśli chodzi o to, że nie znalazłeś PATHzmiennej użytkownika : jeśli utworzysz wersję tej zmiennej dla użytkownika, efektywną PATHbędzie systemowa automatycznie łączona ze zmienną dla użytkownika.

Ben N.
źródło
1
Dzięki. Prawie pokryłeś wszystko, czego potrzebowałem zapewnienia. Bardzo doceniam. Zwykle nie lubię udzielać akceptowanych odpowiedzi, dopóki nie otrzymam wystarczającej liczby opinii, ale twoja odpowiedź obejmowała wszystko i więcej. Poza tym szczerze wątpię, aby ktokolwiek zadał sobie trud odpowiedzi na moje pytanie.
ThatRandomGuy