Tidak dapat menjalankan skrip pada drive eksternal yang dipasang

23

/ Mnt / ext di-mount ke sistem file ext2, hard drive eksternal. Untuk beberapa alasan saya tidak dapat menjalankan skrip dari sana. Silakan lihat sesi di bawah ini.

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 $ 

Saya ingin tahu mengapa saya melihat kesalahan.

luntain
sumber

Jawaban:

22

Mungkin ada noexecset atribut ketika sistem file di-mount; mungkin itu adalah 'fitur' distribusi Anda.

Untuk memeriksanya, Anda dapat mengeksekusi mountyang akan menampilkan opsi mount dalam tanda kurung, dan untuk menghapus noexecflag yang dapat Anda gunakan di mount -o remount,exec /mnt/extbawah root.

Juga, pastikan Anda menempatkan opsi exec setelah opsi pengguna, atau sistem masih akan me-mount drive Anda sebagai noexec.

whitequark
sumber
3

Sistem file dipasang dengan opsi noexec.

James Reinstate Monica Polk
sumber
3

Filesystem yang dipasang noexechanya mencegah mengeksekusi skrip (yaitu, meminta kernel untuk mengeksekusinya dengan tepat berdasarkan angka ajaib atau garis shebang). Itu tidak mencegah Anda memanggil juru bahasa pada sistem berkas lain yang dipasang execdan meneruskan skrip sebagai argumen (atau pada stdin) ke juru bahasa tersebut. Ergo, jika tidak root, Anda bisa menyelesaikannya dengan adil sh k.sh.

pilona
sumber