Score:0

เป็นไปได้ไหมที่จะอนุญาต NOPASSWD ในนามแฝงของคำสั่งที่ต้องการ sudo

ธง in

ฉันเพิ่มนามแฝงนี้:

นามแฝง shutdown2h='sudo ปิด -h +120'

ซึ่งฉันต้องการเรียกใช้โดยไม่ต้องป้อนรหัสผ่าน แต่ไม่ต้องเพิ่ม NOPASSWD สำหรับคำสั่งปิดทั้งหมด

เป็นไปได้ไหมที่จะเพิ่มนามแฝงในไฟล์ sudoers ด้วย NOPASSWD ทั้งหมด ฉันลองด้วยตำแหน่งของคำสั่ง ~/.bash_aliases/shutdown2h ซึ่งทำให้ฉันมีข้อผิดพลาดทางไวยากรณ์ หรือมีวิธีอื่น?

ขอบคุณมาก ๆ!

waltinator avatar
it flag
วางสคริปต์ของคุณใน `https://shellcheck.net` ซึ่งเป็นตัวตรวจสอบไวยากรณ์เสมอ หรือติดตั้ง `shellcheck` ในเครื่อง ใช้ `shellcheck` เป็นส่วนหนึ่งของกระบวนการพัฒนาของคุณ อ่าน `man sudoers visudo` ด้วย เนื่องจาก `alias` ถูกแทนที่ด้วยการขยายโดยเชลล์หลักก่อนดำเนินการ `shutdown2h` จึงไม่ถูกดำเนินการ `sudo shutdown -h +120` จึงดำเนินการ
Score:3
ธง it

คุณต้องการให้แน่ใจว่าผู้ใช้ของคุณไม่สามารถเปลี่ยนแปลงสิ่งที่ได้รับอนุญาตให้ทำงานได้ ตัวอย่างเช่น โดยพยายามเพิ่มสคริปต์ของผู้ใช้ของคุณ (~/.bash_aliases/shutdown2h) เพื่อเรียกใช้ในฐานะรูทผ่าน ซูโด หากไม่มีรหัสผ่าน คุณจะอนุญาตให้เรียกใช้คำสั่งใดก็ได้ตามอำเภอใจ เพียงแก้ไขไฟล์นั้นและเรียกใช้ ก็จะเหมือนกับการอนุญาตให้ผู้ใช้เรียกใช้คำสั่งใด ๆ ผ่าน ซูโดเออร์. ตัวอย่างเช่น ผู้ใช้จะแก้ไขไฟล์เพื่ออ่าน ตอนนี้ แทน -h +120 และปิดเครื่องทันที

แทนที่จะเป็นความคิดที่ดีกว่าที่จะเพิ่มสคริปต์ที่เป็นของผู้ใช้ root ลงในระบบ ซึ่งอาจจะเป็นใน /usr/local/bin/. ตัวอย่างเช่น, /usr/local/bin/shutdown2h, เรียกใช้งานได้โดยทุกคน แต่สามารถเขียนได้โดยรูทเท่านั้น ด้วยวิธีนี้ คุณจะมั่นใจได้ว่าผู้ใช้สามารถเรียกใช้สคริปต์เฉพาะ และสคริปต์นั้นไม่สามารถเปลี่ยนแปลงโดยผู้ใช้เพื่อเรียกใช้อย่างอื่นได้ เส้นทางที่คุณวางสคริปต์ควรอยู่ในของคุณ $เส้นทาง, ที่ /usr/local/bin ควรเป็นค่าเริ่มต้น

  1. สร้างสคริปต์
sudo vim /usr/local/bin/shutdown2h

#!/bin/bash
ปิดเครื่อง -h +120
  1. อนุญาตให้เรียกใช้สคริปต์
sudo chmod +x /usr/local/bin/shutdown2h
  1. อนุญาตให้ USER เรียกใช้สคริปต์เฉพาะ
ซูโด วิซูโด

#เพิ่มรายการนี้
ผู้ใช้ทั้งหมด=(ทั้งหมด) NOPASSWD: /usr/local/bin/shutdown2h

ตอนนี้ ผู้ใช้ของคุณสามารถเรียกใช้ sudo ปิดเครื่อง 2 ชม โดยไม่ต้องถามรหัสผ่าน และต้องแน่ใจว่าผู้ใช้รายนั้นจะสามารถเรียกใช้ได้เท่านั้น ปิดเครื่อง -h +120 โดยไม่มีรหัสผ่าน

นอกจากนี้เมื่อทำ ซูโดเออร์ ตรวจสอบให้แน่ใจว่าได้ระบุเส้นทางแบบเต็มไปยังไฟล์เรียกทำงาน/สคริปต์ และอย่าใช้ทางลัดใดๆ เช่น ~/ หรือ $บ้าน.

Alin Anca avatar
in flag
ขอบคุณมาก ๆ!
vanadium avatar
cn flag
" อาจอยู่ใน /usr/bin/": ทำให้เป็น `/usr/local/bin`

โพสต์คำตอบ

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