2010-10-01 41 views
6

Gần đây tôi đã quyết định thử học một số tập lệnh bash và làm bài tập vui nhộn. Tôi quyết định tạo một tập lệnh để mở một tập tin hàng ngày để viết ghi chú bất cứ khi nào tập lệnh chạy.Bash: Quyền bị từ chối khi cố gắng mở một tập tin

Nó hoạt động tốt cho đến khi tôi đăng xuất khỏi và trở lại vào hệ thống sau, khi tôi nhận được một lỗi

/usr/local/bin/notes: line 45: /home/MY_USERNAME/notes/2010-10-01:Permission denied

Code

tôi có thể bị nhầm lẫn, nhưng điều này chắc chắn dường như không như cái gì đó không nên yêu cầu thêm quyền, phải không?

Editor được thiết lập để cho phép nano

file của đang -rw-rw-r--

quyền Script là -rwxr-xr-x

+1

$ EDITOR của bạn được đặt thành? Các quyền trên tệp như thế nào? Ngoài ra, tốt hơn nên đưa mã vào chính câu hỏi đó (trong khối mã) để câu hỏi lưu trữ tốt hơn và không trở thành vô nghĩa khi cây con đã biến mất. – zigdon

+0

** mọi thứ ** yêu cầu quyền. Không có quyền "bổ sung". Bạn phải thực hiện một 'ls -l' hoặc' ls -ld' để xem những quyền nào mà các tập tin có. –

+0

Bạn nên cập nhật để bao gồm mã cho tính đầy đủ của câu hỏi. Id trong quá khứ không còn hợp lệ. – Chris

Trả lời

6

tôi đoán là trong

$EDITOR $DAILY_FILENAME 

$EDITOR là null, vì vậy nó đang cố gắng để thực hiện $DAILY_FILENAME mà không thực thi. Có lẽ trong khi bạn đang thử nghiệm bạn đặt EDITOR theo cách thủ công, nhưng không thêm nó vào tệp .bashrc (hoặc bất kỳ tệp nào của bạn).

Sử dụng tùy chọn -x để chứng minh điều đó.

+0

Vâng, tôi đoán tôi đã không đặt vĩnh viễn biến biên tập, tôi chỉ có nó được thiết lập cho phiên đó. Cảm ơn – Michi

7

kiểm tra sự cho phép trên các tập tin với

ls -l /path/to/your/file 

bạn sẽ thấy một cái gì đó giống như

-rw-r--r-- 

r có thể đọc được, có thể ghi được và thực thi x.

nhóm đầu tiên dành cho người dùng của bạn, nhóm thứ ba là dành cho nhóm của bạn và nhóm thứ ba dành cho bất kỳ ai.

vì vậy trong ví dụ của tôi, tệp tôi đã hiển thị là đọc/ghi cho tôi và chỉ đọc cho nhóm của tôi và cho bất kỳ người dùng nào khác.

Sử dụng lệnh chmod để thay đổi quyền.

chmod 744 file 

sẽ làm cho tệp đọc/ghi/thực hiện cho bạn và chỉ đọc cho người dùng/thế giới.

0

Nếu tôi phải đoán, tôi sẽ đề nghị biến môi trường $EDITOR là không xác định vì một lý do nào đó. Dường như tập lệnh của bạn đang cố thực thi tệp ghi chú - vì điều này không thực thi được, bạn nhận được thông báo lỗi không hữu ích.

Các vấn đề liên quan