ฉันกำลังเรียนรู้ Ubuntu และทดลองกับสิ่งต่าง ๆ
ฉันสังเกตเห็นว่าฉันไม่สามารถสร้างไดเรกทอรีภายใน / sys
นี่เป็นไดเรกทอรีพิเศษหรือบางอย่าง มีไดเรกทอรีประเภทอื่นหรือไม่
(ฉันทำsudo -i
และกchmod a+w /sys
)
ฉันกำลังเรียนรู้ Ubuntu และทดลองกับสิ่งต่าง ๆ
ฉันสังเกตเห็นว่าฉันไม่สามารถสร้างไดเรกทอรีภายใน / sys
นี่เป็นไดเรกทอรีพิเศษหรือบางอย่าง มีไดเรกทอรีประเภทอื่นหรือไม่
(ฉันทำsudo -i
และกchmod a+w /sys
)
คำตอบ:
ก่อนอื่นคุณควรเปลี่ยนการ/sys
อนุญาตกลับคืน ( sudo chmod a-r /sys
จะทำได้เนื่องจากการอนุญาตเริ่มต้นคือdr-xr-xr-x
) /sys
ไม่ควรเขียนได้ทั่วโลก!
โดยทั่วไปในการสร้างไฟล์และไดเรกทอรีในส่วนของระบบนอกโฟลเดอร์บ้านของคุณสื่อภายนอกและ/tmp
โฟลเดอร์ที่คุณควรจะทำมันเป็นroot
ที่มีsudo
มากกว่าโดยสิทธิ์ในการเปลี่ยนแปลงหรือความเป็นเจ้าของเพื่อให้ตัวเองเข้าถึง ไม่แนะนำให้สร้างไดเรกทอรีที่เขียนได้ทั่วโลก
สำหรับข้อมูลเกี่ยวกับวิธีที่แนะนำดู:
คุณสามารถใช้gksudo nautilus
(หรือsudo -H nautilus
หากไม่มีgksudo
) เพื่อเปิดหน้าต่างเบราว์เซอร์ไฟล์ที่เป็นเจ้าของรูท แต่ระวังด้วยสิ่งนี้ - มันสามารถทำอะไรก็ได้และสิ่งเหล่านั้นส่วนใหญ่เป็นสิ่งที่คุณอาจไม่ต้องการทำ นอกจากนี้โปรดทราบว่าหากคุณเปิดโปรแกรมจากหน้าต่างเบราว์เซอร์ไฟล์ที่เป็นเจ้าของรูทโปรแกรมนั้นก็จะทำงานในฐานะรูทด้วย
นั่นคือโดยทั่วไปroot
สิ่งที่คุณควรจะทำอย่างไรที่จะแก้ไขหรือสร้างเนื้อหาใหม่ของไดเรกทอรีที่เป็นเจ้าของโดย อย่างไรก็ตาม ...
/sys
แตกต่าง; แม้root
จะไม่สามารถสร้างสิ่งที่นั่นโดยตรงชอบ/proc
และ/dev
ใน Ubuntu และระบบปฏิบัติการอื่น ๆ ที่ใช้ลินุกซ์/sys
เป็นระบบแฟ้มเสมือนสิ่งที่มันหมายถึงไม่ได้เป็นไฟล์จริงบนฮาร์ดดิสก์ของคุณ (หรือที่ใดก็ได้)
กล่าวโดยย่อ/sys
คือวิธีที่เคอร์เนลให้ข้อมูลเกี่ยวกับอุปกรณ์ (ฟิสิคัลและเสมือน)
บางรายการใน/sys
ระบบไฟล์นั้นสามารถเขียนได้อย่างมีความหมายและการเขียนลงในรายการเป็นวิธีการตั้งค่าคอนฟิกแบบไดนามิกสำหรับอุปกรณ์ (สิ่งนี้ไม่ควรสับสนกับ/dev
ระบบไฟล์การเขียนลงในรายการ/dev
เป็นวิธีการส่งข้อมูลไปยังอุปกรณ์ )
แต่สิ่งนี้ยังคงต้องทำในฐานะที่เป็นราก แทนที่จะเปลี่ยนการอนุญาตใน/sys
หรือส่วนใดส่วนหนึ่งของมันคุณควรจะดำเนินการตามsudo
ที่อธิบายไว้ข้างต้น
คำตอบสำหรับ Unix.SE นี้จะอธิบายถึงวิธีการทำเช่นนั้นและวิธีอนุญาตให้ผู้ที่ไม่ใช่ผู้ดูแลระบบบางคน (ที่ไม่สามารถดำเนินการในฐานะ root) เพื่อเปลี่ยน/sys
การตั้งค่าบางอย่าง
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการ/sys
ทำงานดู:
รายการ/sys
จะถูกสร้างขึ้นโดยเคอร์เนลและโดยไดรเวอร์; คุณไม่สามารถสร้างพวกเขาจากบรรทัดคำสั่ง (ตามที่ระบุไว้ข้างต้นคุณสามารถแก้ไขบางอย่างเป็นรูทได้ แต่โดยทั่วไปคุณไม่สามารถสร้างใหม่ได้จาก userspace ยกเว้นโดยการโหลดโมดูลเคอร์เนลหรือติดตั้งไดรเวอร์หรือแก้ไขเคอร์เนล)
หากคุณสนใจเขียนไดรเวอร์ดูที่:
ใช่/sys
เป็นไดเรกทอรี "พิเศษ" จากWikipedia :
การแจกจ่าย Linux สมัยใหม่รวมถึงไดเร็กทอรี / sys เป็นระบบไฟล์เสมือน (sysfs, เทียบเท่ากับ / proc, ซึ่งเป็น procfs) ซึ่งจัดเก็บและอนุญาตการแก้ไขอุปกรณ์ที่เชื่อมต่อกับระบบในขณะที่ระบบปฏิบัติการ UNIX และ Unix ที่ใช้ระบบปฏิบัติการ Unix / sys เป็นลิงก์สัญลักษณ์ไปยังแผนผังซอร์สเคอร์เนล
"ร้านค้าและอนุญาตให้แก้ไขอุปกรณ์ที่เชื่อมต่อกับระบบ" เป็นสิ่งสำคัญมาก ความจริงที่/sys
ใช้เป็นระบบไฟล์เสมือนติดตั้งเป็นพิเศษคือสาเหตุที่คุณ (และรูท) ไม่สามารถเขียนลงไปได้ /sys
ฉันจะหลีกเลี่ยงล้อเล่นกับ ด้วย Linux ซึ่งเปิดกว้างและโปร่งใสสิ่งต่าง ๆ มักไม่เปลี่ยนแปลงด้วยเหตุผลที่ดี ไม่ว่าจะเพื่อความปลอดภัยหรือในกรณีนี้เนื่องจากมีวิธีอื่นในการบรรลุเป้าหมายที่มีความเสี่ยงน้อยกว่ามาก