Làm cách nào tôi có thể giải quyết lỗi này khi gặp phải các thay đổi trên kho SVN từ thiết bị đầu cuối Ubuntu?


12

Khi tôi cam kết thay đổi trên kho lưu trữ SVN, tôi luôn gặp phải sự cố sau trong thiết bị đầu cuối trong Ubuntu:

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

Bất kỳ ý tưởng làm thế nào để giải quyết nó?


Như bạn có thể thấy, có rất nhiều ý tưởng về cách giải quyết nó, nhưng nó phụ thuộc vào lý do tại sao chính xác bạn đang gặp vấn đề ngay từ đầu.
David Z

Để sao chép: sudo rm -f ~/.nano_history(xóa tệp), sudo nano somefile(chỉnh sửa một số tệp dưới dạng root), ^K sometext(tìm kiếm một số văn bản), ^X(thoát), nano somefile(chỉnh sửa một số tệp như bạn). Bạn sẽ thấy Lỗi đọc /home/ssylee/.nano_history: Quyền bị từ chối . nano tạo .nano_history để lưu trữ lịch sử tìm kiếm của bạn. Các tập tin thuộc về root nếu nó được tạo trong một sudo nanophiên.
Iain Samuel McLean Elder

Câu trả lời:


28

Điều này thường được gây ra bởi chạy sudo nano [file]. Điều này chạy quy trình nano dưới dạng root, nhưng $HOMEđược đặt thành thư mục chính của người dùng thông thường, vì vậy nếu nano tạo bất kỳ tệp nào (bao gồm tệp .nano_history), nó sẽ được sở hữu bởi root và được đặt trong thư mục chính của bạn.

Bạn có thể xác minh điều này bằng cách chạy:

ls -l /home/ssylee/.nano_history

Nếu lsbáo cáo rằng tập tin được sở hữu bởi root, thì bạn có thể chắc chắn chắc chắn đây là nguyên nhân. Nếu có, thì tình huống có thể được sửa chữa bằng cách chạy:

sudo chown $USER: ~/.nano_history

hoặc đánh vần lệnh đó:

sudo chown ssylee: /home/ssylee/.nano_history

Một thói quen tốt hơn để có được là sử dụng sudoedithoặc sudo -ethay vì sudo nano. Điều này chạy $EDITORchương trình trên một bản sao của tệp đang được chỉnh sửa, và sau đó thay thế nguyên bản tệp gốc khi trình chỉnh sửa thoát (rất hữu ích khi chỉnh sửa tệp hệ thống).

Theo mặc định, điều này có thể khởi chạy vi, nhưng bạn có thể khắc phục điều này tạm thời bằng cách gọi nó như vậy:

EDITOR=nano sudoedit [filename]

Bạn có thể định cấu hình vĩnh viễn $EDITORtrong .bashrchoặc bằng cách đặt

EDITOR=nano

trong /etc/environment.


4
chown $USER:là một cách ngắn hơn để áp dụng nhóm chính.
Tobu

1
@Tobu, cảm ơn! tôi không biết về mánh khóe đó. Tôi đã cập nhật câu trả lời để phản ánh điều đó.
Ức chế

1

Đơn giản nhất là loại bỏ các tập tin trong câu hỏi. Cách dễ nhất tiếp theo là làm cho nó dễ đọc với chmod/ chown. Cách dễ nhất tiếp theo là sử dụng một trình soạn thảo khác.


1

Tôi luôn luôn sử dụng điều này:
sudo chown -R username:username /home/username

Nó giải quyết vấn đề khi các quyền bị rối tung.


1

Tôi thà làm một

ls -la /home/ssylee/.nano_history

đầu tiên, để xem các quyền hiện tại. Điều này có thể giúp bạn tìm ra lý do tại sao họ đã sai ở nơi đầu tiên. Nếu ssylee là chủ sở hữu của tệp này, có thể bạn đã bị hỏng ô mặc định?


1

Chỉ cần thay đổi quyền của .nano_historytập tin như sau:

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

LÀM XONG! Tin nhắn đã biến mất! =) Thực sự là đơn giản.


0

Việc khắc phục yêu cầu chỉnh sửa tệp cấu hình nano / etc / nanorc và xóa /home//.nano_history.

Đầu tiên nhận xét tham số historylog thiết lập của nanorc bằng lệnh này: sudo nano / etc / nanorc

#set historylog

Điều này sẽ vô hiệu hóa tệp ~ / .nano_history được sử dụng để lưu và đọc chuỗi tìm kiếm / thay thế.

Điều này vẫn để lại tệp .nano_history trong thư mục người dùng của bạn. Xóa tệp này như sau:

sudo rm .nano_history

Đó là nó!

Nguồn


Điều này sẽ hoàn toàn vô hiệu hóa lịch sử trong nano, có lẽ không phải là điều người dùng muốn làm ..
Mxx
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.