ปิดใช้งานสิทธิ์ sudo สำหรับผู้ใช้จากบรรทัดคำสั่ง


18

ฉันได้เปิดใช้งานผู้ใช้รูทในอูบุนตูและต้องการใช้อูบุนตูเป็นเซิร์ฟเวอร์โดยไม่มี DE สำหรับสิ่งนี้ฉันต้องการปิดใช้งานสิทธิ์ sudo ที่มอบให้กับผู้ใช้รายแรก ฉันจะทำสิ่งนี้จากบรรทัดคำสั่งได้อย่างไร ฉันรู้ว่าฉันสามารถใช้ GUI ได้ แต่จะทำอย่างไรจากบรรทัดคำสั่ง


พิมพ์คำว่า visudo
wojox

คำตอบ:


14

ผู้ใช้ที่สงสัยมีสิทธิ์ sudo เพราะอยู่ในadminกลุ่ม ตามที่แสดงความคิดเห็น wojox คุณสามารถใช้visudoและลบสิทธิ์ sudo ออกจากกลุ่มผู้ดูแลระบบได้ แต่นั่นจะเป็นการลบความสามารถของ sudo ออกจากสมาชิกทั้งหมดของกลุ่มผู้ดูแลระบบไม่ใช่แค่ผู้ใช้เพียงคนเดียว

หรือคุณสามารถลบผู้ใช้ออกจากกลุ่มผู้ดูแลระบบ หากการวางviแนวหน้าจอถือเป็นบรรทัดคำสั่งให้รันvigrและลบชื่อผู้ใช้จากบรรทัดที่เหมาะสม

สำหรับโซลูชันบรรทัดคำสั่ง "pure" ให้ลองgpasswdขณะที่มันจัดการ / etc / group และสามารถเพิ่มและลบผู้ใช้ออกจากกลุ่ม

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

ด้านล่างนี้เป็นคำตอบแรกของฉันก่อนที่ฉันจะรู้ว่ามีวิธีโง่น้อยลงในการทำ

usermodหากคุณต้องการเป็นวิธีที่มีความซับซ้อนมากขึ้นในการทำเช่นนี้คุณสามารถใช้

นี่คือคำพูดจาก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.

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)

ในที่สุดมันละเมิดจิตวิญญาณของคำถาม แต่สามารถพิมพ์users-adminจากบรรทัดคำสั่งเพื่อแก้ไขผู้ใช้และกลุ่ม


ดูเหมือนว่ากลุ่มที่จะลบบน Precise ตอนนี้sudoแทน
Joril

2

ไม่ว่าจะพบภูมิปัญญาใดในคำตอบข้างต้นฉันได้แก้ไขปัญหาการเปิดใช้งานบัญชีรูทและปิดการใช้งาน sudo สำหรับผู้ใช้ที่ระบุดังนี้

เปิดใช้งานบัญชีรูทก่อน:

$ sudo passwd root

ข้อมูลเพิ่มเติมได้ในเอกสารอูบุนตู

แล้ว:

  • กลายเป็นราก
  • สำรองข้อมูลจากนั้นแก้ไข / etc / group
  • เป็นผู้ใช้อีกครั้งเพื่อทดสอบการเปลี่ยนแปลง

นั่นคือ:

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

ตอนนี้ 'แขก' ของผู้ใช้จะถูกลบออกจากไฟล์ sudoers หากทุกอย่างเป็นไปด้วยดีคำสั่ง sudo ใด ๆ ควรกลับข้อความเช่นนี้

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

แขกที่เข้าสู่ระบบบนคอมพิวเตอร์เครื่องนี้ไม่สามารถบังเอิญหรือยุ่งกับระบบได้อีกต่อไปเนื่องจากคุณต้องเป็น root ในการทำเช่นนั้น แน่นอนถ้าคุณเพิ่มผู้ใช้ใหม่คุณจะต้องแก้ไข / etc / group ซ้ำ

ไชโย!

- linuxrev

(Ubuntu 12.04)


1

คำเตือน

อย่างระมัดระวังคุณสามารถล็อคตัวเองออกจากระบบของเราด้วยวิธีนี้! ตรวจสอบให้แน่ใจเสมอว่าผู้ใช้รูทรักษาสิทธิ์ของเขาไว้และคุณสามารถเข้าถึงได้ เปิดรูเทอร์มินัลไว้ล่วงหน้าเพื่อให้คุณสามารถเลิกทำการเปลี่ยนแปลงได้ ทดสอบการตั้งค่าในเทอร์มินัลอื่นก่อนที่จะปิดรูทเครื่องของคุณ!

soduers

ตามที่อธิบายไว้ในคำตอบอื่น แก้ไข/etc/sudoersโดยเรียกใช้ visudo ในเชลล์:

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

จากนั้นเปลี่ยนบรรทัดที่ระบุสิ่งที่คล้ายกับสิ่งนี้:

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

สำหรับสิ่งนี้:

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

หรือลบบรรทัดถ้าคุณแน่ใจว่าบัญชีผู้ใช้รูทของคุณเปิดใช้งานแล้ว

กลุ่ม

ผู้ใช้เริ่มต้นคือสมาชิกของกลุ่ม 'admin' หากคุณต้องการมันคุณสามารถเพิกถอนการเป็นสมาชิกของผู้ใช้ในกลุ่มนั้นได้เช่นกัน ทำอย่างนั้นโดยไปที่ลิงค์สุดท้ายของฉันหรือลบชื่อของเขาจากบรรทัดadmin:x:120:defaultuserใน/etc/groupไฟล์:

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

1
@psusi: ไม่คุณผิด เขาสามารถลบได้ ในขณะที่เขาพูดว่า "ฉันได้เปิดใช้งานผู้ใช้รูทในอูบุนตู" ความหมายเขาสามารถเข้าสู่ระบบได้เสมอเพื่อให้ผู้ใช้เข้าถึงการเข้าถึง โปรดแก้ไข downvote ของโพสต์ของฉัน
con-f-use
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.