web-dev-qa-db-ja.com

USBでファイルを実行可能にしようとしていますが、許可が「固執」していません

可能性のある複製:
NTFS(またはFAT32)パーティションで「chmod」する方法?

パスワードマネージャーとして LastPass を使用し、多要素認証に Sesame を使用しています。 Windowsではこれは問題ありませんでしたが、WindowsコンピューターとLinuxコンピューターを交互に使用するため、両方のケースでSesameを使用可能にする必要があります。

私のラップトップでは、Ubuntu 10.10を実行しています。32ビットのLastPass Sesame(Ubuntu 10.04 LTS)をダウンロードし、ファイル(実行可能ファイルと.bin)をUSBデバイスに移動しました。指示どおり、実行可能ファイル(名前はsesame)でchmod +x sesameを実行しようとしました。

ターミナルウィンドウからこれを試してみましたが、ls -laを実行した後、ファイルのアクセス許可が少しも変更されていないことに気付きました。最初に同じSudoを追加してみましたが、それでも違いはありませんでした(また、エラーメッセージなども表示されませんでした)。 Nautilus>プロパティ>許可で実行可能ファイルを右クリックし、「プログラムとしてのファイルの実行を許可する」チェックボックスをオフにして、「グラフィカル」な方法で試しました-チェックされたマークは1秒後に再び消えただけです。

同じ実行可能ファイルをハードドライブに移動した場合、非常にうまく機能して実行可能になりました(そして実行されました)。

私はLinuxの経験があまりないので、明らかな何かを見逃しているのではないかと疑っています。 USBがfat32であることに関係があるかもしれません(しかし、fat32パーティション上のファイルはデフォルトで実行可能であるべきだと思いましたか?)、もしそうなら-私のオプションは何ですか?

言っておくと、Wineを使用してWindowsバージョンのSesameを実行するのは非常にうまく機能しますが、少し面倒です(少なくとも、Wineがまだインストールされていない場合は必要です)。

10
Julian

Fat32ファイルをchmodできません... LinuxファイルシステムのみがLinuxの許可を「受け入れ」ます。

最も簡単な方法は、たとえば、ホームフォルダーから実行することです。..そこにコピーしてchmodし、前に試していたように、新しい場所で実行します。

また、これを確認できます: 実行可能ビットが設定されていない場合、CDから実行可能ファイルを実行するにはどうすればよいですか? 。基本的に、ファイルが実際にバイナリファイルであるか、拡張子が.binのテキストスクリプトであるかを知ることについて説明します。この場合、bash、python、Rubyなどを使用して実行できます。

8
luri

この回答 を参照してください。基本的に、デバイスをマウントするときに権限を定義できます。あなたの場合、あなたは次のようなことをするでしょう:

Sudo mount -t vfat -o rw,user,umask=000 /path/to/device /path/to/mount/dir

永続的な変更の場合、これを/etc/fstabに追加できます。

  • Sudo blkidを使用して、デバイスのUUID(Universally Unique Identifier)を見つけます。
  • マウント行を/etc/fstabに追加します。

    UUID=your-uuid /path/to/mount/dir vfat rw,auto,user,umask=000 0 0
    
5
htorque