Przeczytałem wiele wątków na temat usuwania gksu z wielu wersji Linuksa, w tym z Ubuntu 18.04. Wiele osób twierdzi, że gksu jest obrzydliwością i żaden użytkownik nigdy nie powinien używać czegoś takiego. Mam 2 przykłady, w których, o ile wiem, muszę mieć coś, co pozwala mi działać jako root (nie tylko do edycji plików).
Po pierwsze, muszę uruchomić mysql dopiero po otwarciu zaszyfrowanego folderu w poleceniu (GUI). Oznacza to uruchomienie skryptu przez system szyfrujący, który uruchamia usługę mysql. To musi być zrobione jako root, więc używam gksu w tym skrypcie startowym, który prosi mnie o hasło. Jak inaczej mogę uruchomić usługę z systemu GUI?
Kopie zapasowe systemu Ubuntu uruchamiam również jako root, w przeciwnym razie nie można wykonać kopii zapasowej wielu plików systemowych. Tak więc plik na pulpicie używa gksu do rozpoczęcia tworzenia kopii zapasowej.
pkexec wygląda na skomplikowany i wymaga plików zasad. Czy to jedyna alternatywa, a jeśli tak, to dlaczego jest bezpieczniejsza?
Inne odpowiedzi na podobne pytania nie wydają się odnosić do indywidualnych problemów, które ludzie mają teraz, gdy gksu już nie ma (lub trudniej znaleźć ...). Myślę, że takie pytania użytkowników niebędących ekspertami skorzystałyby na bardziej szczegółowych odpowiedziach. Teraz mam kilka, więc chciałbym odpowiedzieć na moje własne pytanie.
pkexec
działa dla ciebie zamiastgksu
?pkexec
. (musisz na to polować)sudo -H GUI-program
a jeśli Wayland zawiera ten link, który może być przydatny ... istnieją obejścia, jeśli masz narzędzie GUI, które działa dobrze dla Ciebie i wymaga podwyższonych uprawnień.Odpowiedzi:
Znalazłem to polecenie
na stronie poniżej:
https://sites.google.com/site/installationubuntu/home/ubuntu-17-10/alternatives-for-gksu-and-gksudo
źródło
Wiem, że podobno istnieją odpowiedzi na to pytanie gdzie indziej, ale nie znalazłem żadnej z nich wystarczająco jasnej i prostej, aby rozwiązać ten problem. Więc przekopałem się w wielu miejscach i wymyśliłem to. Nadal nie rozumiem, dlaczego społeczność Linuksa postanowiła utrudnić nam życie zwykłym użytkownikom komputerów stacjonarnych (próbowałem zrozumieć wiele wyjaśnień), ale takie jest życie. Używam GUI do wszystkiego, używając okna terminala tylko w razie potrzeby. O ile wiem, rozwiązania korzystające z opcji sudo nie pomagają w tym. Mam więc
.desktop
pliki i skrypty, które wykonują wszystkie zadania, z których regularnie korzystam.Istnieją dwa podstawowe rozwiązania.
1. Zainstaluj ponownie
gksu
To rozwiązanie może, ale nie musi trwać. Technicy anty-gksu mogą znaleźć sposób, aby to zatrzymać. Tymczasem pobierz 2
.deb
pliki z libgksu (x64) i gksu (x64) . Zainstaluj libgksu2, a następnie gksu za pomocą gdebi lub innego narzędzia instalacyjnego, którego chcesz użyć. To zadziałało dla mnie.2. Użyj
pkexec
Jako (mam nadzieję) długoterminowe rozwiązanie udało mi się przekonać pkexec do pracy z potrzebnymi narzędziami.
Aby uruchomić usługę ze skryptu. Okazuje się, że ani gksu, ani pkexec nie są potrzebne. Tylko
start service xyz
i poprosi o podanie hasła.Aby edytować pliki root lub otworzyć nautilus jako root, zobacz Jak uruchomić Gedit i Nautilus jako root z pkexec zamiast z gksu - Web Upd8 . Zapewnia to dwa pliki „polkit” dla pkexec, które pozwalają na użycie skryptu zawierającego
pkexec gedit
do edycji pliku głównego i podobnie dla nautilus. Wszystkie instrukcje znajdują się na tej stronie internetowej. Teraz używam „filemanager-action” do zapewnienia akcji prawym przyciskiem myszy, aby uruchomić gedit lub nautilus jako root.Uruchamiam deja-dup jako root do tworzenia kopii zapasowych systemu podstawowego. Robię to rzadko, z wyjątkiem
/home
(/home
ponieważ często wykonuję kopie zapasowe, które nie wymagają dostępu do konta root). Aby to zadziałało, wziąłem kopię pliku używanego w kroku 2 dla gedit i edytowałem go dla deja-dup. Naprawdę nie rozumiem zawartości, ale działa, zarówno w przypadku kopii zapasowych, jak i przywracania plików, używającpkexec backup
skryptu zainicjowanego z pliku .desktop. Dodałem ten nowy plik do/usr/share/polkit-1/actions
:Zauważ, że w tym katalogu znajduje się inny plik deja-dup, który twierdzi, że pomaga w przywracaniu plików, ale nie udało mi się go uruchomić. Ten nowy plik musi mieć unikalną nazwę, na przykład
org.gnome.DejaDupNew.policy
.Na razie działam bez gksu. Spróbuję kontynuować…
źródło
pkexec deja-dup
dla mnie po dodaniu pliku zgodnie z opisem. Okno dialogowe pozwala mi najpierw wybrać ustawienia, co jest świetne./usr/share/polkit-1/actions
było rzeczywiście sposobem na uruchomienie programu uruchamiającego pulpit z podwyższonymipkexec
uprawnieniami. Oto inny przykład .Nautilus Admin ( nautilus-admin ) to proste rozszerzenie Pythona dla menedżera plików Nautilus, które dodaje pewne czynności administracyjne do menu po kliknięciu prawym przyciskiem myszy:
Aby zainstalować Nautilus Admin we wszystkich obecnie obsługiwanych wersjach Ubuntu, otwórz terminal i wpisz:
Testowałem wszystkie alternatywy dla gksu w 18.04 dla innych aplikacji oprócz Files i Gedit, a ta, która wydaje się działać najbardziej konsekwentnie, to:
pkexec
jest najlepszym zamiennikiem gksu, gdy działa, ponieważ zapewnia większe bezpieczeństwo, ale jest bardzo niespójny w różnych aplikacjach (na przykład nie działa z Gedit) i może powodować awarie niektórych aplikacji.sudo -i
jest niepotrzebnie trudny w zarządzaniu, ponieważ podnosi Twoje uprawnienia do rootowania przez dłuższy czas, gdy potrzebujesz tylko roota, aby uruchomić jedno polecenie.źródło
Używam skryptu o nazwie,
sgedit
który dziedziczy preferencje użytkownika dotyczące czcionek, kart i rozszerzeń. Używasudo -H gedit
zamiastgksu gedit
dla stabilności w środowisku GUI. Wyświetla monit o podanie hasła.Mają
sudo
dziedziczyć swoje konto użytkownikagedit
ustawieniaW tym przykładzie ustawienia użytkownika dla nazwy czcionki, rozmiaru czcionki, tabulatorów, konwersji tabulatorów na spacje, podświetlenia kolumn 80 i suwaka miniatur po prawej stronie zostały odziedziczone przez
sudo
.Zwykle
sudo -H gedit
nie można tworzyć ani zapisywać tych ustawień konfiguracji. W skrypcie poniżejsgedit
ustawienia są dziedziczone z konta użytkownika.Ten skrypt rozwiązuje również problemy związane z problemami „
gksu
jest zły i domyślnie nie zainstalowany” oraz „pkexec
trudno jest go skonfigurować”.tło
Ten sam problem od lat mnie dręczy. W ten weekend projekt polegał na napisaniu
sgedit
scenariusza:sgedit filename1 filename2...
sudo -H
aby zachować własność pliku, jednocześnie uzyskując uprawnienia roota.gsettings set
na różnicach (redukuje 174set
poleceń do kilkunastu lub mniej. Następnym razem jest uruchamiany może tylko jedna lub dwie zmiany, ale często nie ma żadnej.Skrypt Bash
sgedit
Gospodarowanie
Skopiuj powyższy skrypt bash do nowego pliku o nazwie
sgedit
. Zalecam umieszczenie go w$HOME/bin
katalogu, tj/home/YOURNAME/bin
. Najpierw może być konieczne utworzenie katalogu.Oznacz plik jako wykonywalny, używając:
Uwaga
~
to skrót do/home/YOURNAME
.źródło
Ubuntu 18.04: Niektóre programy instalacyjne, a inne wymagają gksudo lub gksu, aby były dostępne pod tą samą nazwą. Aby te działały:
Zainstaluj wersję gnome
ssh-askpass
. Bez tego okno dialogowe hasła może być ukryte za innym oknem:Utwórz nowy plik
my-gksudo.sh
:zawartość pliku:
Utwórz nowe pliki gksudo i gksu o identycznej zawartości:
i
zawartość pliku dla obu:
Uczyń gksudo i gksu wykonywalnym:
I
Uruchom ponownie komputer.
źródło