Computer >> คอมพิวเตอร์ >  >> การแก้ไขปัญหา >> Linux

แก้ไข:ขณะนี้คุณไม่มีสิทธิ์เข้าถึงโฟลเดอร์นี้

หากคุณกำลังใช้ระบบย่อย Linux ใน Windows, cygwin หรือวิธีอื่นๆ ในการเชื่อมต่อ Unix และ Windows เข้าด้วยกัน คุณอาจพบว่าขณะนี้คุณไม่มีสิทธิ์เข้าถึงข้อผิดพลาดของโฟลเดอร์นี้ ในสภาพแวดล้อม Linux หรือ Unix ล้วนๆ คุณอาจได้รับข้อผิดพลาดที่อ่านบางอย่างเช่นข้อผิดพลาดในการเปิดไดเร็กทอรี:การอนุญาตถูกปฏิเสธ สิ่งเดียวกันนี้สามารถเกิดขึ้นได้กับไดรฟ์เครือข่ายที่ให้บริการจากระบบไฟล์ที่เข้ากันได้กับ POSIX ไม่ว่าข้อมูลจะเข้าถึงจากระบบปฏิบัติการใด

สาเหตุของปัญหานี้เหมือนกันทุกกรณี คุณมีไดเร็กทอรีที่กำหนดค่าให้จำกัดการเข้าถึง จากนั้นจึงพยายามเข้าถึงไดเร็กทอรีจากบัญชีที่ไม่มีสิทธิ์อนุญาต การแก้ไขปัญหานี้ง่ายพอๆ กับการลงชื่อเข้าใช้บัญชีอื่นหรือเปลี่ยนการอนุญาตของโฟลเดอร์

วิธีที่ 1:การเปลี่ยนบัญชีเพื่อเข้าถึงไดเรกทอรี

ลองเข้าถึงโฟลเดอร์ที่คุณพยายามจะเข้าไป หากคุณพยายาม cd จากพรอมต์คำสั่ง คุณจะได้รับคำสั่งที่อ่านเช่น bash:cd :Permission denied.

แก้ไข:ขณะนี้คุณไม่มีสิทธิ์เข้าถึงโฟลเดอร์นี้ คุณจะได้รับข้อผิดพลาดที่คล้ายกันหากคุณพยายามเข้าถึงไดเรกทอรีจากสภาพแวดล้อมแบบกราฟิก

แก้ไข:ขณะนี้คุณไม่มีสิทธิ์เข้าถึงโฟลเดอร์นี้

ในกรณีนี้ เรากำลังพยายามเข้าถึงไดเร็กทอรี /lost+found ซึ่งทุกคนจะล็อกไม่ให้เข้าถึงได้ ยกเว้นผู้ใช้รูทในการติดตั้ง Linux ส่วนใหญ่ กลับไปที่เทอร์มินัล พิมพ์ sudo -i แล้วกด Enter คุณจะได้รับพร้อมท์ให้ใส่รหัสผ่าน แต่จากนั้นคุณจะมีรูทล็อกอินเชลล์ คุณสามารถ cd ลงในไดเร็กทอรีและมองไปรอบๆ ได้ แต่โปรดจำไว้ว่า คุณกำลังดำเนินการจากรูทเชลล์และอาจเป็นอันตรายได้

หากคุณต้องการอยู่ในบัญชีปกติของคุณ ให้ลอง sudo ls /lost+found เพื่อดูว่ามีอะไรอยู่ในไดเรกทอรีนั้นโดยไม่ต้องเรียกใช้คำสั่ง sudo -i คุณสามารถแทนที่ /lost+found ด้วยชื่อของไดเร็กทอรีใดก็ได้ รวมถึงไดเร็กทอรี /root โปรดทราบว่าคำสั่งนำหน้าด้วย sudo ยังคงอนุญาตให้คุณทำลายเกือบทุกอย่าง

วิธีที่ 2:การเปลี่ยนการอนุญาตเริ่มต้นในโฟลเดอร์

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

เรียกใช้ sudo chmod -R 755 /path/to/folder โดยแทนที่พาธด้วยพาธจริงของไดเร็กทอรีที่คุณต้องการให้สามารถเข้าถึงได้ เมื่อคุณมีแล้ว ให้ลองเข้าถึงจากบัญชีผู้ใช้ทั่วไป วิธีนี้จะซับซ้อนกว่าวิธีการด้านบนเล็กน้อย แต่ปลอดภัยกว่าและถาวรกว่าเนื่องจากไม่ต้องใช้บัญชีรูทหลังจากครั้งแรก

ในสถานการณ์ส่วนใหญ่ คุณสามารถสร้างไดเร็กทอรีตั้งแต่เริ่มต้นโดยใช้สิทธิ์เหล่านี้ ลองใช้ mkdir -m 755 เพื่อตั้งค่าให้อนุญาตเป็นสีแดง เขียนและดำเนินการสำหรับผู้ใช้ด้วยการอ่านและดำเนินการสำหรับผู้อื่น ไม่ว่าในกรณีใด คุณสามารถใช้ 777 แทนได้ ซึ่งจะทำให้ทุกคนที่เข้าสู่ระบบในโครงสร้างไฟล์มีสิทธิ์ทำตามที่ต้องการกับไดเร็กทอรีดังกล่าว แม้ว่าจะมีบางกรณีที่คุณต้องการทำเช่นนี้ เช่น ในที่จัดเก็บข้อมูลแบบถอดได้เพื่อย้ายไฟล์ระหว่างสองเครื่องด้วยตนเอง ให้คิดให้รอบคอบว่าการดำเนินการนี้ฉลาดหรือไม่ หากคุณดำเนินการบนระบบไฟล์ในเครื่อง การใช้แฟล็ก -p จะให้ไดเร็กทอรีใหม่แทนการอนุญาตใดๆ ก็ตามที่ถือว่าเป็นค่าเริ่มต้น ซึ่งโดยปกติแล้วการรันแบบเปลือยจะทำงานเช่นกัน

คุณสามารถตรวจสอบให้แน่ใจว่าไฟล์มีสิทธิ์ที่ถูกต้องเมื่อทำการคัดลอกเช่นกัน ลองใช้ rsync –perms –chmod Fu+w หากคุณต้องการให้สิทธิ์ในการเขียนแก่เจ้าของไฟล์ คุณสามารถระบุชุดค่าผสมอื่นๆ ได้เช่นกัน คุณสามารถใช้ –chown=กับ rsync ตามด้วยชื่อผู้ใช้ ทวิภาค และกลุ่ม ดังนั้นไฟล์ที่คัดลอกมาจึงได้รับการมอบหมายที่ถูกต้องเช่นกัน

เนื่องจาก rsync มีประโยชน์มากสำหรับการคัดลอกโครงสร้างไฟล์ที่เข้ากันได้กับ POSIX ระหว่าง Windows และ Linux คุณจึงอาจต้องการทดลองกับการกำหนดค่า chmod ที่แตกต่างกันสองสามตัวในขณะที่ใช้งาน คำสั่งอื่นที่คุณอาจสนใจลองคือติดตั้ง เรียกใช้ install -m 777 ตามด้วยต้นทางและปลายทางของไฟล์เพื่อให้ทุกคนเข้าถึงเพื่ออ่านและเขียนได้ทันที คุณสามารถใช้ 755 หรือชุดอื่นๆ เพื่อความปลอดภัย

แน่นอนว่าสิ่งนี้ไม่เร็วเท่ากับ rsync แต่อาจใช้งานได้ในสถานการณ์ที่คุณต้องการระบุการอนุญาตเพื่อแก้ไขข้อผิดพลาดประเภท “ขณะนี้คุณไม่มีสิทธิ์เข้าถึงโฟลเดอร์นี้”