การทำงานกับความสามารถของ Linux

บทนำ

ความสามารถของ Linux เป็นคุณลักษณะพิเศษในเคอร์เนล Linux ที่ให้สิทธิ์กระบวนการเฉพาะและสิทธิพิเศษที่สามารถเรียกทำงานแบบไบนารีที่สงวนไว้สำหรับกระบวนการที่ ID ผู้ใช้ที่มีประสิทธิภาพคือ 0 (ผู้ใช้รูทและผู้ใช้รูทเท่านั้นมี UID 0)

บทความนี้จะอธิบายถึงความสามารถที่มีอยู่การใช้งานและวิธีตั้งค่าและการลบออก โปรดทราบว่าการตั้งค่าความสามารถในการปฏิบัติการมีแนวโน้มที่จะลดความปลอดภัยของระบบของคุณ ดังนั้นคุณควรพิจารณาทดสอบระบบที่ไม่ใช่ผลิตภัณฑ์ก่อนใช้งานความสามารถในการผลิต

ข้อกำหนดเบื้องต้น

  • ระบบ Linux ที่คุณมีสิทธิ์เข้าถึงรูท (ผ่านผู้ใช้รูทหรือผู้ใช้ที่มีสิทธิ์เข้าถึง sudo)

คำอธิบาย

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

ความสามารถในการตั้งค่ากระบวนการและไฟล์ที่ปฏิบัติการได้ กระบวนการที่เกิดจากการเรียกใช้ไฟล์สามารถเพิ่มความสามารถของไฟล์นั้นได้

ความสามารถในการใช้งานบนลีนุกซ์นั้นมีมากมายและหลายอย่างได้เพิ่มเข้ามาตั้งแต่รีลีสดั้งเดิม บางส่วนของพวกเขามีดังนี้:

  • CAP_CHOWN: ทำการเปลี่ยนแปลง ID ผู้ใช้และ ID กลุ่มของไฟล์
  • CAP_DAC_OVERRIDE: แทนที่ DAC (การควบคุมการเข้าถึงตามอำเภอใจ) ตัวอย่างเช่น vto บายพาสการอ่าน / เขียน / ดำเนินการตรวจสอบสิทธิ์
  • CAP_KILL: ข้ามการตรวจสอบสิทธิ์สำหรับการส่งสัญญาณไปยังกระบวนการต่างๆ
  • CAP_SYS_NICE: เพิ่มความสวยงามของกระบวนการ ( คำอธิบายของความดีสามารถพบได้ที่นี่ )
  • CAP_SYS_TIME: ตั้งค่าระบบและนาฬิกาฮาร์ดแวร์ตามเวลาจริง

man 7 capabilitiesสำหรับรายการเต็มรูปแบบเรียกใช้

ความสามารถถูกกำหนดเป็นชุดคือ "อนุญาต", "สืบทอดได้", "มีผลบังคับใช้" และ "ล้อมรอบ" สำหรับเธรดและ "อนุญาต", "สืบทอดได้" และ "มีผลบังคับ" สำหรับไฟล์ ชุดเหล่านี้กำหนดพฤติกรรมที่ซับซ้อนที่แตกต่างกันคำอธิบายแบบเต็มอยู่นอกเหนือขอบเขตของบทความนี้

เมื่อตั้งค่าความสามารถในไฟล์เราจะใช้ "ได้รับอนุญาต" และ "มีประสิทธิภาพ" เกือบทุกCAP_DAC_OVERRIDE+epครั้ง แจ้งให้ทราบ+epซึ่งหมายถึงชุดดังกล่าวข้างต้น

การทำงานกับความสามารถของไฟล์

แพ็คเกจที่จำเป็น

มีสองเครื่องมือหลักที่มีgetcapและsetcapที่ตามลำดับสามารถดูและตั้งค่าแอตทริบิวต์เหล่านี้

  • บน Debian และ Ubuntu เครื่องมือเหล่านี้จัดทำโดยlibcap2-binแพ็คเกจซึ่งสามารถติดตั้งได้กับ:apt install libcap2-bin
  • บน CentOS และ Fedora libcapจำเป็นต้องมีแพ็คเกจ:yum install libcap
  • บน Arch Linux มีการจัดเตรียมโดยlibcap:pacman -S libcap

ความสามารถในการอ่าน

หากต้องการดูว่าไฟล์มีชุดความสามารถใด ๆ คุณสามารถเรียกใช้getcap /full/path/to/binaryตัวอย่างเช่น:

 root@demo:~# getcap /usr/bin/ping
 /usr/bin/ping = cap_net_raw+ep
 root@demo:~# getcap /usr/bin/rcp
 /usr/bin/rcp = cap_net_bind_service+ep

หากคุณต้องการค้นหาความสามารถที่ตั้งค่าไว้แล้วในระบบของคุณคุณสามารถค้นหาทั้งระบบไฟล์ซ้ำโดยใช้คำสั่งต่อไปนี้:

getcap -r /

เนื่องจากความจริงที่ว่าระบบไฟล์เสมือน (เช่น/proc) ไม่สนับสนุนการดำเนินการเหล่านี้คำสั่งด้านบนจะสร้างข้อผิดพลาดหลายพันข้อดังนั้นผลลัพธ์ที่ดีกว่าควรใช้สิ่งต่อไปนี้:

getcap -r / 2>/dev/null 

การกำหนดและการลบความสามารถ

การตั้งค่าความสามารถโดยเฉพาะอย่างยิ่งในไฟล์, setcap "capability_string" /path/to/fileการใช้งาน

setcap -r /path/to/fileในการลบความสามารถทั้งหมดจากแฟ้มใช้

สำหรับการสาธิตเราจะสร้างไฟล์เปล่าในไดเรกทอรีปัจจุบันให้ความสามารถแล้วลบออก เริ่มต้นด้วยสิ่งต่อไปนี้:

root@demo:~# touch testfile
root@demo:~# getcap testfile

คำสั่งที่สองไม่สร้างเอาต์พุตหมายความว่าไฟล์นี้ไม่มีความสามารถใด ๆ

ถัดไปตั้งค่าความสามารถสำหรับไฟล์:

root@demo:~# setcap "CAP_CHOWN+ep" testfile
root@demo:~# getcap testfile
testfile = cap_chown+ep

"CAP_CHOWN + ep" ถูกใช้เป็นตัวอย่าง แต่สามารถกำหนดได้ในลักษณะนี้

ตอนนี้ลบความสามารถทั้งหมดออกจากtestfile:

root@demo:~# setcap -r testfile
root@demo:~# getcap testfile

อีกครั้งจะไม่มีผลลัพธ์เนื่องจาก "CAP_CHOWN + ep" ถูกลบ

ข้อสรุป

ความสามารถมีประโยชน์หลายอย่างและสามารถช่วยกระชับความปลอดภัยของระบบของคุณ หากคุณใช้บิต SUID บนไฟล์สั่งการของคุณให้พิจารณาแทนที่ด้วยความสามารถเฉพาะที่จำเป็น



Leave a Comment

ReactOS: นี่คืออนาคตของ Windows หรือไม่?

ReactOS: นี่คืออนาคตของ Windows หรือไม่?

ReactOS ซึ่งเป็นโอเพ่นซอร์สและระบบปฏิบัติการฟรีพร้อมเวอร์ชันล่าสุดแล้ว สามารถตอบสนองความต้องการของผู้ใช้ Windows ยุคใหม่และล้ม Microsoft ได้หรือไม่? มาหาข้อมูลเพิ่มเติมเกี่ยวกับรูปแบบเก่านี้ แต่เป็นประสบการณ์ OS ที่ใหม่กว่ากัน

AI สามารถต่อสู้กับการโจมตีของแรนซัมแวร์ที่เพิ่มขึ้นได้หรือไม่

AI สามารถต่อสู้กับการโจมตีของแรนซัมแวร์ที่เพิ่มขึ้นได้หรือไม่

การโจมตีของ Ransomware กำลังเพิ่มขึ้น แต่ AI สามารถช่วยจัดการกับไวรัสคอมพิวเตอร์ตัวล่าสุดได้หรือไม่? AI คือคำตอบ? อ่านที่นี่รู้ว่า AI boone หรือ bane

เชื่อมต่อผ่าน WhatsApp Desktop App 24*7

เชื่อมต่อผ่าน WhatsApp Desktop App 24*7

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

AI จะนำกระบวนการอัตโนมัติไปสู่อีกระดับได้อย่างไร

AI จะนำกระบวนการอัตโนมัติไปสู่อีกระดับได้อย่างไร

อ่านข้อมูลนี้เพื่อทราบว่าปัญญาประดิษฐ์กำลังได้รับความนิยมในหมู่บริษัทขนาดเล็กอย่างไร และเพิ่มโอกาสในการทำให้พวกเขาเติบโตและทำให้คู่แข่งได้เปรียบ

การอัปเดตเสริม macOS Catalina 10.15.4 ทำให้เกิดปัญหามากกว่าการแก้ปัญหา

การอัปเดตเสริม macOS Catalina 10.15.4 ทำให้เกิดปัญหามากกว่าการแก้ปัญหา

เมื่อเร็ว ๆ นี้ Apple เปิดตัว macOS Catalina 10.15.4 การอัปเดตเสริมเพื่อแก้ไขปัญหา แต่ดูเหมือนว่าการอัปเดตทำให้เกิดปัญหามากขึ้นที่นำไปสู่การสร้างเครื่อง Mac อ่านบทความนี้เพื่อเรียนรู้เพิ่มเติม

13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data

13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data

13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data

ระบบไฟล์บันทึกคืออะไรและทำงานอย่างไร

ระบบไฟล์บันทึกคืออะไรและทำงานอย่างไร

คอมพิวเตอร์ของเราจัดเก็บข้อมูลทั้งหมดในลักษณะที่เรียกว่าระบบไฟล์บันทึก เป็นวิธีการที่มีประสิทธิภาพที่ช่วยให้คอมพิวเตอร์สามารถค้นหาและแสดงไฟล์ได้ทันทีที่คุณกดค้นหาhttps://wethegeek.com/?p=94116&preview=true

ภาวะเอกฐานทางเทคโนโลยี: อนาคตอันห่างไกลของอารยธรรมมนุษย์?

ภาวะเอกฐานทางเทคโนโลยี: อนาคตอันห่างไกลของอารยธรรมมนุษย์?

ในขณะที่วิทยาศาสตร์มีวิวัฒนาการไปอย่างรวดเร็ว โดยรับช่วงต่อความพยายามของเราอย่างมาก ความเสี่ยงในการทำให้ตัวเองตกอยู่ในภาวะภาวะเอกฐานที่อธิบายไม่ได้ก็เพิ่มขึ้นเช่นกัน อ่านว่าภาวะเอกฐานอาจมีความหมายสำหรับเราอย่างไร

ข้อมูลเชิงลึกเกี่ยวกับ 26 เทคนิคการวิเคราะห์ข้อมูลขนาดใหญ่: ตอนที่ 1

ข้อมูลเชิงลึกเกี่ยวกับ 26 เทคนิคการวิเคราะห์ข้อมูลขนาดใหญ่: ตอนที่ 1

ข้อมูลเชิงลึกเกี่ยวกับ 26 เทคนิคการวิเคราะห์ข้อมูลขนาดใหญ่: ตอนที่ 1

ผลกระทบของปัญญาประดิษฐ์ในการดูแลสุขภาพ 2021

ผลกระทบของปัญญาประดิษฐ์ในการดูแลสุขภาพ 2021

AI ในการดูแลสุขภาพได้ก้าวกระโดดอย่างมากจากทศวรรษที่ผ่านมา ดังนั้นอนาคตของ AI ในการดูแลสุขภาพจึงยังคงเติบโตทุกวัน