ฉันจะแก้ไขข้อผิดพลาดนี้ได้อย่างไรเมื่อฉันทำการเปลี่ยนแปลงที่เก็บ SVN จากเทอร์มินัล Ubuntu


12

เมื่อฉันคอมมิชชันการเปลี่ยนแปลงในที่เก็บ SVN ฉันมักจะพบปัญหาต่อไปนี้ใน terminal ใน Ubuntu:

Error reading /home/ssylee/.nano_history: Permission denied

ความคิดใด ๆ วิธีการแก้ปัญหาหรือไม่


อย่างที่คุณเห็นมีแนวคิดมากมายเกี่ยวกับวิธีแก้ปัญหา แต่มันขึ้นอยู่กับว่าทำไมคุณถึงประสบปัญหาในตอนแรก
David Z

ในการทำซ้ำ: sudo rm -f ~/.nano_history(ลบไฟล์), sudo nano somefile(แก้ไขไฟล์บางไฟล์ในฐานะรูท), ^K sometext(ค้นหาข้อความ), ^X(ออก), nano somefile(แก้ไขไฟล์ตามที่คุณ) คุณจะเห็นข้อผิดพลาดในการอ่าน /home/ssylee/.nano_history: ไม่อนุญาต nano สร้าง. nano_history เพื่อเก็บประวัติการค้นหาของคุณ ไฟล์เป็นของรูทหากสร้างขึ้นระหว่างsudo nanoเซสชัน
เลนซามูเอลแมคลีนผู้อาวุโส

คำตอบ:


28

sudo nano [file]นี้มักจะเกิดจากการทำงาน สิ่งนี้รันกระบวนการ nano ในฐานะรูท แต่ปล่อย$HOMEให้ตั้งค่าเป็นโฮมไดเร็กทอรีของผู้ใช้ทั่วไปดังนั้นหาก nano สร้างไฟล์ใด ๆ (รวมถึงไฟล์. nano_history) มันจะเป็นเจ้าของโดยรูทและวางไว้ในโฮมไดเร็กทอรีของคุณ

คุณสามารถยืนยันสิ่งนี้ได้ด้วยการเรียกใช้:

ls -l /home/ssylee/.nano_history

หากlsรายงานว่าไฟล์นั้นเป็นเจ้าของโดยrootคุณสามารถมั่นใจได้ว่านี่เป็นสาเหตุ ถ้าเป็นเช่นนั้นสถานการณ์สามารถซ่อมแซมได้ด้วยการรัน:

sudo chown $USER: ~/.nano_history

หรือสะกดคำสั่งนั้น:

sudo chown ssylee: /home/ssylee/.nano_history

นิสัยดีกว่าที่จะได้รับในการที่จะใช้sudoeditหรือแทนsudo -e sudo nanoสิ่งนี้จะรัน$EDITORโปรแกรมบนสำเนาของไฟล์ที่ถูกแก้ไขแล้วอะตอมแทนไฟล์ต้นฉบับเมื่อตัวแก้ไขออก (ซึ่งมีประโยชน์มากเมื่อแก้ไขไฟล์ระบบ)

โดยค่าเริ่มต้นสิ่งนี้อาจเปิดตัวviแต่คุณสามารถแก้ไขได้ชั่วคราวโดยเรียกใช้ดังนี้:

EDITOR=nano sudoedit [filename]

คุณสามารถกำหนดค่าอย่างถาวร$EDITORใน.bashrcหรือโดยการวาง

EDITOR=nano

ใน/etc/environment.


4
chown $USER:เป็นวิธีที่สั้นกว่าในการใช้กลุ่มหลัก
Tobu

1
@Tobu ขอบคุณ! ฉันไม่รู้เกี่ยวกับกลอุบายนั้น ฉันได้อัปเดตคำตอบเพื่อแสดงว่า
ระงับ

1

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


1

ฉันใช้สิ่งนี้เสมอ:
sudo chown -R username:username /home/username

มันจะแก้ปัญหาเมื่อสิทธิ์ถูกทำให้ยุ่งเหยิง


1

ฉันอยากจะทำ

ls -la /home/ssylee/.nano_history

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


1

เพียงแค่เปลี่ยนการอนุญาตของ.nano_historyไฟล์ดังนี้:

sudo chown youruser:yourgroup /home/<username>/.nano_history

ทำ! ข้อความหายไป! =) จริงๆแล้วเป็นเรื่องง่าย


0

การแก้ไขต้องการการแก้ไขไฟล์การกำหนดค่านาโน / etc / nanorc และการลบ /home//.nano_history

ก่อนแสดงความคิดเห็นพารามิเตอร์ชุด historylog ของ nanorc ด้วยคำสั่งนี้: sudo nano / etc / nanorc

#set historylog

สิ่งนี้จะปิดใช้งานไฟล์ ~ / .nano_history ที่ใช้สำหรับการบันทึกและอ่านการค้นหา / แทนที่สตริง

สิ่งนี้ยังคงอยู่ในไฟล์. nano_history ในไดเรกทอรีผู้ใช้ของคุณ ลบไฟล์นี้ดังนี้:

sudo rm .nano_history

แค่นั้นแหละ!

แหล่งที่มา


นี่จะเป็นการปิดการใช้งานประวัติใน nano อย่างแน่นอนอาจไม่ใช่สิ่งที่ผู้ใช้ต้องการจะทำ ..
Mxx
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.