Không thể thực thi tập lệnh trên ổ đĩa ngoài được gắn


23

/ Mnt / ext được gắn vào hệ thống tập tin ext2, ổ cứng ngoài. Vì một số lý do tôi không thể chạy các tập lệnh từ đó. Xin vui lòng xem phiên dưới đây.

luntain@plato /mnt/ext $ echo "echo success" > k.sh
luntain@plato /mnt/ext $ chmod 777 k.sh
luntain@plato /mnt/ext $ ./k.sh
-bash: ./k.sh: Permission denied
126luntain@plato /mnt/ext $ ll k.sh
-rwxrwxrwx 1 luntain luntain 13 Jan 23 15:08 k.sh*
luntain@plato /mnt/ext $ 

Tôi rất thích tìm hiểu tại sao tôi thấy lỗi.

Câu trả lời:


22

Có lẽ đã có một noexecthuộc tính được thiết lập khi hệ thống tập tin được gắn kết; có thể đó là bản phân phối của bạn, 'tính năng'.

Để kiểm tra, bạn có thể thực thi mountsẽ hiển thị các tùy chọn gắn kết trong ngoặc đơn và để xóa noexeccờ bạn có thể sử dụng mount -o remount,exec /mnt/extdưới quyền root.

Ngoài ra, hãy đảm bảo bạn đặt tùy chọn exec sau tùy chọn người dùng, nếu không hệ thống sẽ gắn ổ đĩa của bạn dưới dạng noexec.



3

Một hệ thống tập tin được gắn kết noexecchỉ ngăn việc thực thi tập lệnh (nghĩa là yêu cầu kernel thực thi nó một cách thích hợp dựa trên số ma thuật hoặc một dòng shebang). Nó không ngăn bạn gọi một trình thông dịch trên một hệ thống tập tin khác được gắn execvà chuyển tập lệnh dưới dạng đối số (hoặc trên stdin) cho trình thông dịch nói. Ergo, nếu không root, bạn có thể đã làm việc xung quanh điều này chỉ với sh k.sh.

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.