Wyłącz uprawnienia sudo dla użytkownika z wiersza poleceń


18

Aktywowałem użytkownika root w Ubuntu i chcę używać Ubuntu jako serwera bez DE. W tym celu chcę wyłączyć uprawnienia sudo przyznane pierwszemu użytkownikowi. Jak mogę to zrobić z wiersza poleceń? Wiem, że mogę korzystać z GUI, ale jak to zrobić z wiersza poleceń?


W zależności od konfiguracji grup wpisz visudo
wojox

Odpowiedzi:


14

Dany użytkownik ma uprawnienia sudo, ponieważ jest w admingrupie. Jak skomentował wojox, możesz używać visudoi usuwać uprawnienia sudo z grupy administracyjnej, ale to usunie możliwości sudo ze wszystkich członków grupy administracyjnej, nie tylko jednego użytkownika.

Alternatywnie możesz usunąć użytkownika z grupy administracyjnej. Jeśli zorientowany na ekran vijest uważany za wystarczający wiersz poleceń, uruchom vigri usuń nazwę użytkownika z odpowiedniego wiersza.

Aby uzyskać „czyste” rozwiązanie wiersza polecenia, spróbuj gpasswd, ponieważ administruje ono / etc / group i może dodawać i usuwać użytkowników z grup.

root@toki:~# id -Gn username
username adm dialout cdrom plugdev lpadmin admin sambashare
                                         # ^- the group to remove
root@toki:~# gpasswd -d username admin
Removing user username from group admin

root@toki:~# id -Gn username
username adm dialout cdrom plugdev lpadmin sambashare
                                        # ^- username not a member
root@toki:~# gpasswd -a username admin
Adding user username to group admin
root@toki:~# id -Gn username
username adm dialout cdrom plugdev lpadmin admin sambashare

Poniżej moja pierwsza odpowiedź, zanim zdałem sobie sprawę, że jest mniej głupi sposób na zrobienie tego.

Jeśli chcesz to zrobić w bardziej skomplikowany sposób, możesz użyć usermod.

Oto cytat ze strony podręcznika usermod:

-G, --groups GROUP1[,GROUP2,...[,GROUPN]]]
    A list of supplementary groups which the user is also a member of.
    Each group is separated from the next by a comma, with no intervening
    whitespace. The groups are subject to the same restrictions as the
    group given with the -g option.

    If the user is currently a member of a group which is not listed, the
    user will be removed from the group. This behaviour can be changed via
    the -a option, which appends the user to the current supplementary group
    list.

Musisz więc określić wszystkie grupy dla użytkownika oprócz admin.

root@toki:~# id username
uid=1000(username) gid=1000(username) groups=1000(username),4(adm),20(dialout),24(cdrom),46(plugdev),111(lpadmin),119(admin),122(sambashare)

root@toki:~# usermod -G 4,20,24,46,111,122 username

root@toki:~# id username
uid=1000(username) gid=1000(username) groups=1000(username),4(adm),20(dialout),24(cdrom),46(plugdev),111(lpadmin),122(sambashare)

Wreszcie narusza ducha pytania, ale można pisać users-adminz wiersza poleceń, aby modyfikować użytkowników i grupy.


Wygląda na to, że grupa do usunięcia w Precise jest teraz sudozamiast
Joril

2

Jakąkolwiek mądrość można znaleźć w powyższych odpowiedziach, rozwiązałem problem włączania konta root i wyłączania sudo dla określonego użytkownika w następujący sposób.

Najpierw włącz konto root:

$ sudo passwd root

Więcej informacji w dokumentacji Ubuntu .

Następnie:

  • stać się rootem
  • wykonaj kopię zapasową, a następnie edytuj / etc / group
  • zostań ponownie użytkownikiem, aby przetestować zmiany

To jest:

$ su
# cp /etc/group /etc/group.bak
# nano /etc/group               # find a line like 'sudo:x:27:guest', remove the
                                # user name (i.c. 'guest') and save the file
# exit,
$ [try any sudo command]

Użytkownik „guest” jest teraz usuwany z pliku sudoers. Jeśli wszystko poszło dobrze, każde polecenie sudo powinno zwrócić komunikat podobny do tego:

guest is not in the sudoers file.  This incident will be reported.

Gość logujący się na tym komputerze nie może już przypadkowo lub dobrowolnie zadzierać z systemem, ponieważ aby to zrobić, musisz być rootem. Oczywiście, jeśli dodasz nowego użytkownika, będziesz musiał powtórzyć edycję pliku / etc / group.

Twoje zdrowie!

- linuxrev

(Ubuntu 12.04)


1

Ostrzeżenie

Ostrożnie, możesz w ten sposób zablokować się w naszym systemie! Zawsze upewnij się, że użytkownik root zachowuje swoje prawa i masz do niego dostęp. Najpierw otwórz terminal główny, aby móc cofnąć zmiany. Sprawdź ustawienia w innym terminalu przed zamknięciem głównego terminalu!

soduers

Jak opisano w innej odpowiedzi . Edytuj /etc/sudoers, wywołując visudo w powłoce:

sudo select-editor # this is optional. it will allow you to select your default editor in shell
sudo visudo

Następnie zmień wiersz, który mówi coś podobnego do tego:

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

do tego:

# root may gain root privileges
root ALL=(ALL) ALL

Lub usuń wiersz, jeśli masz pewność, że twoje konto użytkownika root jest włączone.

Grupa

Domyślny użytkownik jest członkiem grupy „admin”. Jeśli wolisz, równie dobrze możesz odwołać członkostwo użytkowników w tej grupie. Zrób to, podążając za moim ostatnim linkiem lub usuń jego nazwisko z wiersza admin:x:120:defaultuserw /etc/grouppliku:

cp -n /etc/group /etc/group.bak && \
sed -i 's/\(admin:x.*\)defaultuser\(.*\)/\1\2/g' /etc/group

1
@psusi: Nie, jesteś ŹLE. MOŻE to usunąć. Jak powiedział „Aktywowałem użytkownika root w Ubuntu”, może on ZAWSZE ZALOGOWAĆ SIĘ JAK UŻYTKOWNIK URUCHOMIENIA, ABY UZYSKAĆ ​​DOSTĘP. Proszę poprawić zdanie mojego postu.
con-f-use
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.