ฉันจะเปลี่ยนชื่อรายการในสถานที่ที่ฉันไม่ได้เป็นเจ้าของเช่น / และทำไมฉันถึงไม่ควรทำ


14

ฉันได้รับPermission deniedข้อความเมื่อพยายามที่จะเปลี่ยนชื่อไฟล์และโฟลเดอร์ในสถานที่เช่น/, /usrและคนอื่น ๆ ไดเรกทอรีบ้าน ฉันเป็นผู้ดูแลระบบ ฉันจะทำสิ่งนี้ได้อย่างไร

นอกจากนี้ฉันเคยได้ยินว่าการเปลี่ยนชื่อไฟล์และโฟลเดอร์เช่นนี้อาจเป็นอันตรายได้ มันเป็นเรื่องจริงเหรอ? ฉันไม่ควรทำสิ่งนี้หรือไม่?


ทำไมจะไม่ล่ะ ? เนื่องจากคุณในฐานะผู้ใช้ดีกว่ามีเหตุผลที่ถูกต้องสำหรับการเปลี่ยนชื่อสิ่งที่ถูกตั้งค่าโดยการติดตั้งเริ่มต้น> :)
Sergiy Kolodyazhnyy

คำตอบ:


17

โดยปกติจะไม่ดีในการเปลี่ยนชื่อรายการที่อยู่โดยตรง/หรือโดยตรงในโฟลเดอร์ย่อยใด ๆ (เช่น/usr) ในความเป็นจริงคุณควรหลีกเลี่ยงการเปลี่ยนชื่อสิ่งใดนอกไดเรกทอรีบ้านของคุณจนกว่าคุณจะแน่ใจว่าคุณต้องทำและทำอย่างถูกต้อง มิฉะนั้นคุณอาจเปลี่ยนชื่อบางอย่างที่สำคัญต่อการทำงานของระบบ Ubuntu ของคุณทำให้หยุดทำงาน (หรือหยุดทำงานอย่างถูกต้อง)

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

ในอาคารผู้โดยสาร

ในการเปลี่ยนชื่อไฟล์หรือโฟลเดอร์ใน Terminal ให้ใช้mvคำสั่ง (คำสั่งเดียวกับที่ใช้ในการย้ายไฟล์หรือโฟลเดอร์จากที่หนึ่งไปอีกที่หนึ่งบนพาร์ติชันเดียวกัน):

mv old-name new-name

หากไฟล์หรือโฟลเดอร์อยู่ในโฟลเดอร์ที่คุณไม่มีสิทธิ์ในการเขียน (ซึ่งมักเป็นกรณีเมื่อคุณไม่ใช่เจ้าของ ) คุณต้องรันคำสั่งนี้เช่นเดียวrootกับsudo:

sudo mv old-name new-name

(หรือคุณสามารถใช้ในการดำเนินการเปลี่ยนชื่อเป็นผู้อื่นที่ไม่ใช่ผู้ใช้ถ้าคุณต้องการนอกจากนี้โปรดทราบว่าถ้าคุณมีสิทธิ์ในการเขียนในไดเรกทอรีที่คุณไม่ได้เป็นเจ้าของ แต่ตั้งเหนียวบิตคุณจะไม่ สามารถเปลี่ยนชื่อไฟล์ภายในไฟล์ที่คุณไม่ได้เป็นเจ้าของโดยไม่ต้องใช้)sudo -u username mv old-name new-namerootsudo

ใน Nautilus

คุณสามารถเรียกตัวจัดการไฟล์ Nautilus เช่นrootโดยการกดAlt+ และเรียกใช้คำสั่งF2 gksu nautilusวิธีนี้จะช่วยให้คุณเปลี่ยนชื่อไฟล์และโฟลเดอร์ได้ทุกที่และทำสิ่งที่ทรงพลังและอันตรายอื่น ๆ

ระวังและจำไว้ว่าโปรแกรมใด ๆ ที่คุณเปิดตัว (เช่นโดยการเปิดเอกสาร) จากrootหน้าต่าง Nautilus จะทำงานด้วยเช่นrootกันและให้แน่ใจว่าได้ปิดหน้าต่างเมื่อคุณทำเสร็จดังนั้นคุณจะไม่สับสนในภายหลังด้วยวิธีที่ปลอดภัยกว่าปกติ หน้าต่าง

แต่โปรดอย่าเปลี่ยนชื่อสิ่งที่อยู่นอกไดเรกทอรีบ้านของคุณเว้นแต่คุณจะรู้จริงๆว่าคุณกำลังทำอะไรอยู่ มันอาจจะทำลายระบบ Ubuntu ของคุณอย่างรุนแรง และมันอาจจะไม่สำเร็จในสิ่งที่คุณพยายามจะทำ

ขอบคุณRichard ที่ช่วยอธิบายเงื่อนไขที่ผู้ใช้สามารถเปลี่ยนชื่อรายการได้โดยไม่มีPermission deniedข้อผิดพลาด


3

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

ในการเรียกใช้โปรแกรมที่มีสิทธิ์ระดับผู้ดูแลระบบคุณต้องใช้gksuแบบฟอร์มAlt-F2แจ้งหรือsudoในเทอร์มินัล ตัวอย่างเช่นการกดAlt+F2และพิมพ์gksu nautilusจะแจ้งให้คุณใส่รหัสผ่าน (เพื่อพิสูจน์ว่าเป็นของคุณจริงๆ) และเปิดเบราว์เซอร์ไฟล์ที่มีสิทธิ์ระดับผู้ดูแลระบบ ด้วยหน้าต่างนี้คุณจะสามารถแก้ไขสิ่งใด ๆ ในระบบได้แต่ต้องระวัง

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

ตัวอย่างเช่นการเปลี่ยนชื่อ/usrโฟลเดอร์จะทำลายเกือบทุกโปรแกรมในคอมพิวเตอร์ของคุณรวมถึงโปรแกรมที่จำเป็นในการใช้ส่วนต่อประสานกราฟิกของคุณ ...

กล่าวอีกนัยหนึ่งคุณต้องมีประสบการณ์กับ Linux ค่อนข้างมากเพื่อแก้ไขปัญหาดังกล่าว


0

ฉันสามารถเสนอวิธีแก้ปัญหาต่อไปนี้ หากต้องการเปลี่ยนชื่อโฟลเดอร์ภายใต้ / directory เพียง:

  1. สร้างไดเรกทอรีใหม่ด้วยชื่อที่ต้องการ: sudo mkdir /newdir
  2. ให้สิทธิ์การเข้าถึงไดเรกทอรีนี้: sudo chown -R user:group /newdir
  3. คัดลอกไฟล์ไปยังโฟลเดอร์ของคุณ: cp /olddir/filename.ext /newdir
  4. ลบไดเรกทอรีเก่า: sudo rm -r -f /olddir
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.