Score:0

ขอรหัสผ่าน sudo เสมอเมื่อรีบูต/ปิดระบบ

ธง es

ดังนั้น,

ฉันสังเกตเห็นว่าใน manjaro หากมีผู้ใช้เพียงคนเดียวให้พิมพ์ รีบูต ปราศจาก ซูโดจะล้มเหลวและขอรหัสผ่าน sudo ในขณะที่บนเซิร์ฟเวอร์ Ubuntu การพิมพ์สิ่งนี้จะไม่ขอรหัสผ่าน sudo และรีบูตระบบได้สำเร็จ คำถามของฉันคือฉันจะทำอย่างไรเมื่อฉันพิมพ์ รีบูต / ปิด / หยุด, ubuntu จะถามรหัสผ่าน sudo เสมอแม้ว่าจะมีผู้ใช้เพียงรายเดียวที่ล็อกอินอยู่ ? สิ่งนี้อาจเกี่ยวข้องกับ polkit หรือไม่ ถ้าเป็นเช่นนั้น ฉันจะเปลี่ยนสิ่งนี้ได้อย่างไร ?

เหตุผลที่ฉันถามนี้คือฉันต้องการให้แน่ใจว่าทุกคนที่สามารถเข้าถึงเซิร์ฟเวอร์ของฉันได้จะไม่สามารถรีบูตได้ (เว้นแต่แน่นอนว่าจะถอดปลั๊กสายไฟซึ่งเป็นสิ่งที่แตกต่างออกไป lol)

ขอขอบคุณ

Score:2
ธง in

วิธีหนึ่งที่ฉันทำคือโดย กำบัง ระบบ เป้าหมายซึ่งป้องกันไม่ให้มีการดำเนินการบางอย่าง โดยไม่คำนึงว่าใครเป็นผู้ป้อนคำสั่ง ตัวอย่างเช่น เพื่อป้องกันไม่ให้ปิดระบบ คุณสามารถทำได้ดังนี้:

sudo systemctl มาสก์ poweroff.target

ตอนนี้ความพยายามที่จะปิดระบบผ่าน ปิด sudo หรือ ปิด sudo systemctl จะล้มเหลวอย่างเงียบๆ สามารถทำได้เช่นเดียวกันกับการหยุดและรีบูต:

sudo systemctl มาสก์ runlevel0.target
sudo systemctl มาสก์ halt.target
sudo systemctl มาสก์ runlevel6.target
sudo systemctl มาสก์ reboot.target

บันทึก: รันเลเวล6 เทียบเท่ากับ รีบูต, และ ระดับการวิ่ง 0 เทียบเท่ากับ ปิดตัวลง และ หยุด.

หากต้องการเลิกทำสิ่งนี้ คำสั่งเหล่านี้สามารถรันได้อีกครั้ง แต่ด้วย เปิดโปง:

sudo systemctl เปิดหน้ากาก runlevel0.target
sudo systemctl เปิดโปงการปิดระบบเป้าหมาย
sudo systemctl เปิดโปง halt.target
sudo systemctl เปิดหน้ากาก runlevel6.target
sudo systemctl เปิดโปง reboot.target

เมื่อคำนึงถึงสิ่งนี้ ตอนนี้คุณสามารถเขียนสคริปต์ที่สามารถดำเนินการได้ เท่านั้น สำหรับคนที่มี ซูโด เข้าไป:

#!/bin/bash

## กำหนดการดำเนินการที่จะรัน (มาสก์ | เปิดโปง)
op=หน้ากาก

ถ้า [[ $1 = เปิดโปง ]]
แล้ว
        op=เปิดหน้ากาก
ไฟ

## กำหนดเป้าหมายที่เราต้องการมาส์ก
ประกาศ -a arr=("runlevel0" "runlevel6" "ปิดเครื่อง" "รีบูต" "หยุด")

## เรียกใช้คำสั่ง
สำหรับฉันใน "${arr[@]}"
ทำ
        cmd=$( sudo systemctl $op $i.target )
        เสียงสะท้อน "$i :: $op"
เสร็จแล้ว

คำเตือน: รหัสนี้จะใช้งานได้ แต่มันค่อนข้างหยาบ ตรวจสอบให้แน่ใจว่าได้ตรวจสอบสุขภาพจิตด้วย VM หรือที่ไหนสักแห่งที่ "ปลอดภัย" ก่อนเรียกใช้บนกล่องที่ใช้งานจริง

ตอนนี้คุณสามารถเรียกใช้สคริปต์นี้เพื่อปกปิดเป้าหมายหลังจากบูทเครื่อง และปิด/รีบูตดังนี้:

sudo ~./setTargetMask.sh เปิดโปง
ปิด sudo ทันที

บันทึก: เรียกสคริปต์ได้ตามต้องการ

Liwinux avatar
es flag
นั่นเป็นวิธีหนึ่งที่ฉันไม่สามารถคิดได้ด้วยตัวเอง ขอบคุณสำหรับสิ่งนี้ มันง่ายกว่ามาก ! สิ่งหนึ่งที่ฉันค้นพบคือเมื่อระบบไม่มีอุปกรณ์ (ซึ่งหมายถึงไม่มีสภาพแวดล้อมเดสก์ท็อป) วิธีเดียวในการบำรุงรักษาคือการใช้ Sudo ในขณะที่ระบบที่ติดตั้ง เช่น xfce จะไม่ต้องการคำสั่ง sudo ใดๆฉันคิดว่าเป็นเพราะ xfce (หรือ DE อะไรก็ตาม) ต้องติดตั้งชุดนโยบายเพื่อให้ปุ่มรีสตาร์ท/ปิดเครื่องทำงานโดยไม่มีสิทธิ์พิเศษของระบบ แต่สิ่งนี้ใช้ได้กับทั้งระบบ แก้ไขฉันถ้าฉันผิด !

โพสต์คำตอบ

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