การทำงานกับความสามารถของ 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 บนไฟล์สั่งการของคุณให้พิจารณาแทนที่ด้วยความสามารถเฉพาะที่จำเป็น

ฝากความเห็น

วิธีการติดตั้ง Directus 6.4 CMS บน CentOS 7 LAMP VPS

วิธีการติดตั้ง Directus 6.4 CMS บน CentOS 7 LAMP VPS

เรียนรู้วิธีการติดตั้ง Directus 6.4 CMS บน CentOS 7; ระบบการจัดการเนื้อหา Headless ที่มีความยืดหยุ่นสูงและปลอดภัย

ตั้งค่า Nginx บน Ubuntu เพื่อสตรีมวิดีโอสด HLS

ตั้งค่า Nginx บน Ubuntu เพื่อสตรีมวิดีโอสด HLS

เรียนรู้วิธีการตั้งค่า Nginx บน Ubuntu สำหรับการสตรีมวิดีโอสด HLS ด้วยคำแนะนำที่ชัดเจนและเป็นประโยชน์

การสำรองข้อมูลยอดนิยมด้วย Percona XtraBackup บนแอพ WordPress แบบคลิกเดียว

การสำรองข้อมูลยอดนิยมด้วย Percona XtraBackup บนแอพ WordPress แบบคลิกเดียว

เรียนรู้การใช้ Percona XtraBackup สำหรับการสำรองข้อมูลด้วยวิธีที่เป็นระบบและง่ายดายบน WordPress ออนไลน์ของคุณ

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