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.

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.



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.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.