web-dev-qa-db-ja.com

自動マウントされたNTFSパーティション上のすべてのファイルは実行可能としてマークされます

NTFSパーティションをセットアップして、fstabを介して自動マウントします。

# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
proc            /proc           proc    nodev,noexec,nosuid 0       0
# / was on /dev/sda7 during installation
UUID=e63fa8a2-432f-4749-b9db-dab328807d04 /               ext4    errors=remount-ro 0          1
# /boot was on /dev/sda4 during installation
UUID=e9ad1bb4-7c1f-4ea9-a6a5-799dfad71c0a /boot           ext4    defaults        0       2
# /home was on /dev/sda8 during installation
UUID=eda8c755-5448-4de8-b58c-9cb75823c22d /home           ext4    defaults        0       2
# swap was on /dev/sda9 during installation
UUID=804ff3a7-e5dd-406a-b63c-e8f3c635fbc5 none            swap    sw              0       0

#Windows-Partition
UUID=368CEBC57807FDCD   /media/Share  ntfs    defaults,uid=1000,gid=1000,noexec    0   0

ご覧のとおり、noexecビットを構成に追加しました。どうして?パーティション上で作成したり、パーティションに移動したファイルはすべて自動的に実行可能としてマークされるためです。

問題は、ノーチラスを介してそれを変更する方法がないことです。 [ファイルをプログラムとして実行することを許可する]オプションをオフにできません。

残念ながら、noexecオプションは役に立ちません。 nautilusが「実行」または「読み取り」ダイアログを表示しないようにするだけで、実行可能フラグは変更しません。

これを修正する方法はありますか?

7
Glutanimate

1月の支援で、問題を解決する次のfstabオプションを見つけることができました。

umask=0000,fmask=0111

NTFSパーティションのfstabエントリは次のとおりです。

#Windows-Partition
UUID=368CEBC57807FDCD   /media/Share  ntfs  defaults,uid=1000,gid=1000,umask=0000,fmask=0111    0   0

ソース: http://www.linuxquestions.org/questions/slackware-14/mount-ntfs-so-that-files-are-not-executable-buts-directories-are-363315/

編集:これらのオプションを変更すると、NTFSドライブの実行可能ファイルに何も設定できなくなります。私の場合、このパーティションに実行可能ファイルを保存する予定はないので、問題はありません。

4
Glutanimate

noexecオプションは、実際のアクセス許可とは関係ありません。そのパーティションから何も実行できないようにするためだけです。

~ $ ls -l test.sh
-rwxr-xr-x 1 jw jw 28 Aug 30 13:05 test.sh
~ $ ./test.sh
Hello world
~ $ Sudo mount -o remount,noexec /home
~ $ ./test.sh
bash: ./test.sh: Permission denied
~ $ ls -l test.sh
-rwxr-xr-x 1 jw jw 28 Aug 30 13:05 test.sh

ご覧のとおり、パーティションがnoexecオプションでマウントされると、test.shは実行できません。しかし、許可自体は変更されませんでした。

NTFSは実行可能ビットをサポートしていません。したがって、システムがNTFSを認識する方法と、アクセス許可の設定方法は、マウントされた方法のみに依存します。通常、これはumaskマウントオプションで行われます。これは、アクセス許可を変更できない理由も説明します。NTFSはアクセス許可をサポートしていないため、それらを保存する方法はありません。

残念ながら、すべてを「非実行可能」ビットでマウントすると、入力するためには実行可能でなければならないため、ディレクトリに変更することはできません。オプションdmaskおよびfmaskを使用して、マウントされたNTFSシステム上のディレクトリとファイルに対してデフォルトのアクセス許可を個別に設定できます。

8
January