Czy jest jakaś różnica między zachowaniem gksu foo
a gksudo foo
?
Czy można ich używać zamiennie?
Oba pliki wskazują to samo miejsce:
$ ls -l /usr/bin/gksudo
lrwxrwxrwx 1 root root 4 2010-09-27 18:23 /usr/bin/gksudo -> gksu
... gksudo
jest dowiązany do gksu
. Ale to nie znaczy, że robią to samo, wręcz przeciwnie.
Aplikacje mogą wykryć polecenie użyte do jego uruchomienia. Zazwyczaj jest to argv[0]
w językach $0
w stylu C lub w skryptach powłoki w stylu Bourne'a. Aplikacja może na to patrzeć iw tym przypadku faktycznie zmienia sposób działania. Pierwsze wskazanie tego znajduje się na man gksu
stronie:
gksu is a frontend to su and gksudo is a frontend to sudo.
Jeśli spojrzysz na źródło ( apt-get source gksu
) run_mode
, zobaczysz, jak to wykrywa:
{ /* support gksu_sudo_run */
gchar *myname = g_path_get_basename (argv[0]);
if (!strcmp(myname, "gksudo"))
run_mode = SUDO_MODE;
g_free (myname);
}
Możesz to zmienić za pomocą argumentów --su-mode
/ -w
i --sudo-mode
/ -S
(abyś mógł uruchamiać równoważne polecenia bez potrzeby użycia gksudo
dowiązania symbolicznego ... Ale to zależy od ciebie.
Jeśli chcesz wiedzieć, jak naprawdę różnią się te „tryby”, możesz tylko trochę uciec gksu
. Musisz to śledzić libgksu
. Jest to biblioteka, która faktycznie sprawdza uprawnienia przed przekazaniem do systemu.
Jeśli nie zostanie określony żaden tryb (np. Wywołujeszgksu
bez argumentów), zanim osiągnie libgksu
, sprawdzi Gconf (jak wskazuje Stefano), a jeśli nadal nie będzie mógł zdecydować, przejdzie w su
tryb domyślny .
bash
włącza tryb ścisły POSIX po wywołaniu jakosh
. Igksu
jest również świadomy nazwy wywołania.W Ubuntu (!) Nie ma różnicy.
gksu
normalnie logowałby się jako użytkownik root i uruchamiał aplikację w tej sesji. Jednak w Ubuntu domyślnie używa „trybu sudo”, który jest równoważny z uruchomieniemgksudo
. Wynika to z faktu, że na Ubuntu domyślnie nie można zalogować się jako root .gksudo
jest graficznym odpowiednikiemsudo
(i jak zauważa Oli, tylko symboliczny link do gksu)Z wpisu gksu w gconf:
Ponadto na temat różnicy między sudo i gksudo:
źródło
Wiem, że to stary wątek, ale zostałem poproszony o opowiedzenie o subtelnej, ale zasadniczej różnicy między
gksu
igksudo
.Chociaż długo i intensywnie szukałem, nigdzie nie mogę znaleźć udokumentowanej różnicy, a jednak ona istnieje. Nie dowiedziałem się również, dlaczego jest taka różnica. Znalazłem to w trudny sposób, gdy przypadkowo usunąłem niektóre pliki systemowe właśnie z powodu tej różnicy (omówione w wątku na forach Ubuntu ) - korzystałem
gksu
, ale od tego czasu zawsze starałem się używaćgksudo
.Podsumowując, spróbuj tego.
touch abc
touch abc.tmp
touch abctmp
Uruchom następujące sześć poleceń. Pierwsze pięć daje taki sam (oczekiwany) wynik (tj. Po prostu
abc.tmp
), podczas gdy szósty zawiera dodatkowy plik (abctmp
), którego nie powinien.Wyobraź sobie problemów podczas wymiany
-print
ze-delete
wfind
poleceniu (co jest dokładnie to, co się ze mną stało, powodując niektóre pliki systemowe do usunięcia).Więc użyj
gksudo
zamiastgksu
.źródło
gksudo
jest to równoważne z pisaniemgksu --sudo-mode