Nonaktifkan izin sudo kepada pengguna dari baris perintah


18

Saya telah mengaktifkan pengguna root di ubuntu dan ingin menggunakan ubuntu sebagai server tanpa DE. Untuk ini saya ingin menonaktifkan hak istimewa sudo yang diberikan kepada pengguna pertama. Bagaimana saya bisa melakukan ini dari baris perintah? Saya tahu saya bisa menggunakan GUI tetapi bagaimana melakukannya dari command line?


Bergantung pada bagaimana Anda mengatur grup Anda, ketikkan visudo
wojox

Jawaban:


14

Pengguna yang bersangkutan memiliki hak sudo karena berada dalam admingrup. Seperti yang dikomentari oleh wojox, Anda bisa menggunakan visudodan menghapus hak istimewa sudo dari grup admin, tetapi itu akan menghapus kemampuan sudo dari semua anggota grup admin, tidak hanya satu pengguna.

Atau, Anda dapat menghapus pengguna dari grup admin. Jika berorientasi layar vidianggap cukup baris perintah, jalankan vigrdan hapus nama pengguna dari baris yang sesuai.

Untuk solusi baris perintah "murni", cobalah gpasswd, karena ia mengelola / etc / group dan dapat menambah dan menghapus pengguna dari 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

Di bawah ini adalah jawaban pertama saya sebelum saya menyadari ada cara yang kurang bodoh untuk melakukannya.

Jika Anda ingin cara yang lebih rumit untuk melakukan ini, Anda dapat menggunakannya usermod.

Berikut kutipan dari usermodhalaman manual:

-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.

Jadi, Anda harus menentukan semua grup untuk pengguna kecuali untuk 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)

Akhirnya, itu melanggar semangat pertanyaan, tetapi orang bisa mengetik users-admindari baris perintah untuk memodifikasi pengguna dan grup.


Sepertinya kelompok yang harus dihapus di Precise sekarang sudomalah
Joril

2

Apapun kebijaksanaan yang ditemukan dalam jawaban di atas, saya telah memecahkan masalah mengaktifkan akun root dan menonaktifkan sudo untuk pengguna tertentu sebagai berikut.

Pertama-tama aktifkan akun root:

$ sudo passwd root

Informasi lebih lanjut di Dokumentasi Ubuntu .

Kemudian:

  • menjadi root
  • backup lalu edit / etc / group
  • menjadi pengguna lagi untuk menguji perubahan

Itu adalah:

$ 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]

'Tamu' pengguna sekarang dihapus dari file sudoers. Jika semua berjalan dengan baik, perintah sudo apa pun harus mengembalikan pesan seperti ini:

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

Seorang tamu yang masuk di komputer ini tidak dapat lagi secara tidak sengaja atau dengan sengaja mengacaukan sistem, karena Anda harus melakukan root untuk melakukannya. Tentu saja, jika Anda menambahkan pengguna baru, Anda harus mengulang pengeditan / etc / group.

Bersulang!

- linuxrev

(Ubuntu 12.04)


1

Peringatan

Hati-hati, Anda dapat mengunci diri dari sistem kami dengan cara ini! Selalu pastikan, bahwa pengguna root mempertahankan haknya dan Anda dapat mengaksesnya. Biarkan terminal root tetap terbuka sebelumnya sehingga Anda dapat membatalkan perubahan. Uji pengaturan di terminal lain sebelum menutup terminal root Anda!

soduers

Seperti dijelaskan dalam jawaban lain . Edit /etc/sudoersdengan menggunakan visudo di shell:

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

Kemudian ubah baris yang mengatakan sesuatu yang mirip dengan ini:

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

untuk ini:

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

Atau hapus baris, jika Anda yakin, akun pengguna root Anda diaktifkan.

kelompok

Pengguna default adalah anggota dari grup 'admin'. Jika Anda lebih suka, Anda bisa mencabut keanggotaan pengguna ke grup itu. Lakukan itu dengan mengikuti tautan terakhir saya atau menghapus namanya dari baris admin:x:120:defaultuserdalam /etc/groupfile:

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

1
@psusi: Tidak, kamu SALAH. Dia BISA menghapusnya. Ketika dia berkata "Saya telah mengaktifkan pengguna root di ubuntu" yang berarti, dia dapat SELALU LOGIN SEBAGAI PENGGUNA ROOT KE GAIN AKSES. Harap perbaiki downvote Anda dari posting saya.
con-f-use
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.