欲求:USBメモリ上でコンパイルしてそのまま実行したい!
USBメモリ上の実行ファイルが実行できない。。。前提条件
Ubuntu12.04USBメモリ(ntfsフォーマット)
ntfs-3gがインストールされていること。
現状の詳細
- ntfsフォーマットされたUSBメモリ上の実行ファイルを実行出来なかった。
- ls -lコマンドで調べてみると、読み取り書き込み権限はあるものの実行権限が無い。
- chmod +xコマンドを実行しても実行権限が付加されなかった。
- 実行ファイルtestにたいして、./testとしても「許可がありません」 や、sudo ./testでも「コマンドはありません」等返ってきた。
解決方法
/etc/fstabに該当するUSBメモリを追記して、バイナリ実行権限を付加した。- blkidコマンドを使ってUUIDを調べる。/mediaディレクトリにある該当USBメモリのディレクトリ名もUUIDになっているので、そこから持ってきても良い。
- sudo vim /etc/fstabでfstabファイルに以下について追記する。
- UUID=調べたUUID /mdia/調べたUUID ntsf async,dev,exec,rw 0 1
- 一つ目の引数はデバイス、二つ目の引数はマウントするディレクトリ、3つ目の引数はフォーマットタイプ、4つ目の引数(コンマで繋がっているもの)はオプション、5つ目6つ目の数字はマウント設定を示す。
- また、4つ目の引数のうちexecがバイナリ実行権限を付加するオプションである。
- 保存して再起動する。
結果
該当USBメモリ上ファイルのぜんぶに実行権限がつくようになった。参考
/etc/fstabのマウントオプション/etc/fstabに記述されている数字の意味