Su

Z wiki linux-user
Skocz do: nawigacji, wyszukiwania

Polecenie su

su pozwala danemu użytkownikowi na tymczasowe bycie innym użytkownikiem. Uruchamia polecenie (często powłokę interaktywną) z rzeczywistym i efektywnym id użytkownika oraz id grupy i grupami dodatkowymi, należącymi do użytkownika. Jeśli nie podano użytkownika, domyślnym jest root, czyli superużytkownik. Nazwa powłoki jest pobierana ze wpisu w /etc/passwd, a jeśli tam nic nie będzie, używany jest /bin/sh. Jeśli użytkownik ma hasło, to su zapyta o hasło, chyba że wywołujący je użytkownik miał efektywny identyfikator użytkownika ustawiony na 0 (superużytkownik).

Domyślnie su nie zmienia bieżącego katalogu. Ustawia zmienne środowiskowe HOME i SHELL według zapisów w pliku haseł dla użytkownika, a jeśli nie jest on superużytkownikiem, ustawia też USER i LOGNAME na użytkownik. Domyślnie powłoka nie jest powłoką zgłoszeniową (zalogowania).

Jeśli podano więcej argumentów, to są one przekazywane jako dodatkowe argumenty dla powłoki.

su nie obsługuje specjalnie /bin/sh czy innych powłok (ustawianie argv[0] na ”-su”, przekazywanie -c do niektórych powłok, itp.).

Na systemach, które mają sysloga, su może zostać tak skompilowane, by raportowało nieudane, lub opcjonalnie również udane próby zmiany id przy użyciu su. Jednak su w wersji GNU nie sprawdza czy użytkownik jest członkiem grupy ‘wheel’ – patrz poniżej.

Opcje

  • -c polecenie, --command=polecenie

Przekazuje polecenie, pojedynczy wiersz poleceń do wykonania, do powłoki z użyciem parametru -c, zamiast uruchamiać powłokę interaktywną.

  • -f, --fast

Przekazuje powłoce opcję -f. Prawdopodobnie ma to zastosowanie tylko dla csh i tcsh, dla których opcja -f powoduje nieczytanie pliku startowego (.cshrc). W powłokach typu bourne, opcja -f wyłącza rozszerzanie wzorców nazw plików, co raczej nie jest przydatne.

  • -, -l, --login

Sprawia, że powłoka będzie powłoką zgłoszeniową. Znaczy to, co następuje. Unieważnia wszelkie zmienne środowiskowe poza TERM, HOME i SHELL (które są ustawiane, jak opisano wyżej), i USER oraz LOGNAME (ustawiane, nawet dla superużytkownika, w sposób wyżej opisany ). Ustawia zmienną PATH na wkompilowaną wartość domyślną. Zmienia katalog na katalog domowy użytkownika. Dodaje do nazwy powłoki ”-”, aby przeczytał pliki startowe logowania.

  • -m, -p, --preserve-environment

Nie zmienia zmiennych środowiskowych HOME, USER, LOGNAME czy SHELL. Zamiast powłoki użytkownika określonej w pliku passwd, uruchamia powłokę podaną w zmiennej SHELL, chyba że użytkownik wywołujący su nie jest superużytkownikiem, a powłoka użytkownika jest okrojona. Powłoka okrojona, to taka, która nie jest wymieniona w pliku /etc/shells, lub we wkompilowanej liście powłok. Częściowo opcja ta może być przesłonięta opcjami –login i –shell.

  • -s powłoka, --shell=powłoka

Zamiast powłoki użytkownika określonej w passwd, uruchamia zadaną powłokę, chyba że uruchamiający su użytkownik nie jest superużytkownikiem, a powłoka użytkownika jest ograniczona.

  • –help Wyświetla informację o stosowaniu programu i dostępnych opcjach, kończy pracę.
  • –version Wyświetla numer wersji programu i kończy pracę.


Dlaczego GNU su nie obsługuje grupy ‘wheel

(Sekcję tę napisał Richard Stallman)

Czasami kilku użytkowników usiłuje sprawować nieograniczoną władzę nad pozostałymi. Na przykład, w 1984, kilku użytkowników w laboratorium AI MIT zdecydowało się ‘przejąć władzę’ zmieniając hasło operatora systemu Twenex i trzymając je w tajemnicy przed wszystkimi innymi. (Udało mi się udaremnić ten zamach i przywrócić władzę użytkownikom łatając jądro, lecz nie wiedziałbym jak zrobić to w Uniksie.)

Jednak, od czasu do czasu panujący wyjawiają komuś. Przy zwykłym mechanizmie ‘su’, ktoś, kto poznał hasło root’a i sympatyzuje ze zwykłymi użytkownikami, może przekazać je pozostałym. Funkcja „grupy wheel” uniemożliwiałaby to, i w ten sposób umacniała władzę rządzących.

Jestem po stronie mas, nie po stronie rządzących. Jeżeli zwykłeś popierać szefów i administratorów systemów we wszystkim, co robią, podejście to może początkowo wydać Ci się dziwne.


Osobiste
Przestrzenie nazw

Warianty
Działania
Nawigacja
Narzędzia


Sponsor serwisu

Firma informatyczna ITProjek Bydgoszcz usługi informacztyczne, serwery, linux, windows, strony www, hosting, sieci komputerowe, system archiwizacji danych