web-dev-qa-db-ja.com

起動時に非ルートユーザーを所有者としてNTFSパーティションをマウントする

現在、/ etc/fstabの次の行を使用して、起動時にNTFSパーティションをマウントしています。

/dev/sda3        /media/data           ntfs      nls=iso8859-1,umask=000

Ubuntu 11.10のインストールでは、すべてのファイルとフォルダーがrootによって所有されているように見えます。NTFSはとにかく同じ権利管理システムを実際にサポートしていないため、マウント完了後に変更することはできません。私が何をしても、NTFSパーティション上のls -lには、root:rootが所有するすべてのファイルとフォルダーがリストされます。

しかし、これは私にとっていくつかの問題を引き起こします。最も注目すべきは、私のアカウント(tomasと呼ばれる)で実行されている一部のアプリケーションが、アクセス権について文句を言います。また、ext3パーティションの1つからNTFSパーティションにファイルをコピー(cp)または移動(mv)しようとすると、エラーメッセージが表示されます

mv: preserving times for `[path to new file]`: Operation not permitted

または、同様に

mv: preserving permissions for ...

ルートの代わりに私の名前でパーティションをマウントするのに役立ちますか?もしそうなら、どのように私はfstabでそれを達成できますか?


更新:

私は今、提案に従ってオプションを変更し、これに到達しました:

nls=iso8859-1,permissions,users,umask=000,uid=tomas,gid=tomas

ls -lに、ルートではなく自分が所有するすべてのファイルが表示されるようになりました。これまでの問題の一部は解決されたようです。ただし、すべてではありません。

Eclipseを起動すると、Android SDKに関連するファイルを実行できないというエラーが表示されます。許可が拒否されました。 ls -lは、ファイルについて次のことを教えてくれます。

-rwxrwxrwx 1 tomas tomas 159620 2011-11-29 14:50 adb*

これは私が望むように見えます。しかし、それを実行しようとすると(ターミナルで./adb)、許可拒否エラーも取得します。しかし、Sudoで実行すると動作します(少なくとも、エラーメッセージは表示されませんが、出力はまったく表示されないはずです。 ..)

なぜ上記のファイルは、anyoneの実行権限を持ち、root以外の誰によっても実行できないのですか?ファイルシステムをマウントする方法を変更するにはどうすればよいですか?


更新2:

OK、もう少し先に来ました。これらのオプションでマウントすることにより

nls=iso8859-1,permissions,users,auto

すべての権限を期待どおりに設定し、chownchmodは実際にファイルの設定を変更します(少なくともls -lに従って)= D

しかし、私のシステムはまだ奇妙な方法で動作します。 adbスクリプトファイルのアクセス許可は上記のようになりますが、私もEclipseも "Permission denied"エラーなしで実行できません。しかし、私が見る限り、ファイルには必要なフラグがすべて設定されています(o=rwxで十分でしょうか?)。なぜ機能しないのですか?


更新

OK、Ubuntu側ですべてが機能するようにしました。次のオプションがあります。

nls=iso8859-1,permissions,users,auto,exec

ただし、Windowsからパーティション上のファイルにアクセスしようとすると、セキュリティ設定がすべて台無しになります。 (私が調べた少数の)すべてのファイルで、Account Unknown(long GUID)と呼ばれる新しいアカウントがユーザーのリストに追加され、完全な権限を持ちます。他のほとんどのユーザーの権利は減らされているので、私が期待することをする権利はありません。特に「Everyone」には「Traverse folder/execute」の権利がないようです。

このmightは、パーティションを選択するだけで解決でき、Everyoneがルートフォルダで何でもできるようにしてから、再帰的に実行するように指示しますが、むしろ、完了までに数日かかると思いますが...

26
Tomas Aschan

オプション列にpermissionsautoを追加します(そしておそらくuserまたはusers

nls=iso8859-1,permissions,users,auto
  • permissions:(NTFS-3Gオプション)作成されたファイルに標準のアクセス許可を設定し、標準のアクセス制御を使用します。
  • auto:ブート時およびmount -aからマウントされます
  • user:一般ユーザーにファイルシステムのマウントを許可します
  • userseveryユーザーにファイルシステムのマウントとマウント解除を許可します

次に、ファイルシステムの所有権を変更します。

Sudo chown -R thomas:thomas /media/data 

/etc/fstabの私の行

/dev/sda5 /media/ntfs ntfs-3g users,permissions,auto 0 0

マウントおよびリスト許可

Sudo mount /media/ntfs
Using default user mapping

bodhi@ufbt:~$ ls -l /media

drwxr-xr-x 1 root root 4096 2012-01-04 17:08 ntfs

所有権を変更し、新しい権限をリストする

bodhi@ufbt:~$ Sudo chown bodhi:bodhi /media/ntfs

bodhi@ufbt:~$ ls -l /media

drwxr-xr-x 1 bodhi bodhi 4096 2012-01-04 17:10 ntfs

デフォルトでは、ntfs-3gはパーティションnoexec、nosuid、およびnodevをマウントします。

  • noexec:マウントされたファイルシステム上のバイナリの直接実行を許可しません。
  • nosuid:set-user-identifierまたはset-group-identifierビットを有効にしないでください。
  • nodev:ファイルシステム上の文字を解釈したり、特殊なデバイスをブロックしたりしません。

これをオーバーライドしてファイルの実行を許可するには、execを使用します

/dev/sda5 /media/ntfs ntfs-3g exec,permissions,auto 0 0

今、私たちは得る

bodhi@ufbt:~$ ls -l /media/ntfs

-rwx------ 1 bodhi bodhi 28 2012-01-04 17:16 file

bodhi@ufbt:~$ /media/ntfs/file
It works
24
Panther

Fstabの行を

UUID=761C84B31C846FC3 /media/d        ntfs    defaults,umask=022,uid=1000 0       0
2
e01

mount.ntfs(8)uidおよびgidオプションを使用する(またはユーザーマッピング機能を使用する)

2
tumbleweed

udisksの使用はどうですか?ユーザーを所有者としてNTFSパーティションを簡単にマウントできます。

例(コマンドラインに入力):

/usr/bin/udisks --mount /dev/sda3

このコマンドをスタートアップアプリケーションに追加することもでき、ログインすると自動的にマウントされます。

リファレンス: AutomaticallyMountPartitions

1
amfcosta