web-dev-qa-db-ja.com

おそらく権限がないためにNTFSデータパーティションに書き込めませんか?

Ubuntu 10.04は、Windows 10を含む1つのパーティションと、あらゆる種類のデータを保存するために使用する別のNTFSパーティションを持つ、より大きな独立したHDDを備えたSSDにインストールされています。 Ubuntuのディスクユーティリティを使用して、起動時にマウントするNTFSデータパーティションを追加しました。自動で正常にマウントされますが、読み取りアクセス権しかありません。このパーティションにUbuntuからの書き込みアクセス権も持たせたいと思います。しかし、私はその方法を理解できません。 (Windows 10での高速起動は無効になっています)

ここに私のfstabファイルがあります(最後のエントリ、dev/sdb4はNTFSデータパーティションです)。

# /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>
# / was on /dev/sda3 during installation
UUID=0e4a3e97-171f-4c96-9260-e2eb217f4302 /               ext4    errors=remount-ro 0       1
# /boot/efi was on /dev/sda2 during installation
#UUID=1022-A48D  /boot/efi       vfat    umask=0077      0       1
# swap was on /dev/sda1 during installation
UUID=c59f57b3-26c6-4fb1-82ae-29e676a973b1 none            swap    sw              0       0
UUID=1022-A48D  /boot/efi   vfat    defaults    0   1
/dev/sdb4 /mnt/sdb4 auto defaults,x-gvfs-show 0 0

これらはこのパーティションの権限です

permissions for partition

18.04でこのドライブをお気に入り(実行中のアプリまたはお気に入りとしてマークしたアプリを表示するサイドバー)に追加する方法についても説明してください。

1
m.umar

デフォルトでは、マウントされるパーティションがext2/3/4パーティションまたはUNIXスタイルのアクセス許可を処理できるパーティション(Mac HFS/HFS +パーティションなど)でない限り、ドライブはユーザー/グループ所有権のroot:rootとしてマウントされますデフォルトで。 exFAT/FAT/FAT32/NTFSはUNIXスタイルのアクセス許可をサポートしていないため、これらの種類のアクセス許可は使用できません。

そのため、許可を設定する必要がありますat mount必要なものに。設定できるオプションはたくさんありますが、 NTFSをマウントして、すべてのユーザーが読み取れるようにする方法に関する他の回答からいくつかを借ります ただし、ユーザーのみに適合させます。

まず、情報を取得する必要があります。ターミナルでidコマンドを実行する必要があります。これにより、マウントポイント、つまりuidおよびgidを構築するときに必要な情報が得られます。以下は私のラップトップからのそのような出力の例ですが、あなたの出力はおそらくかなり異なるでしょう

$ id
uid=1000(teward) gid=1000(teward) groups=1000(teward),4(adm),6(disk),20(dialout),24(cdrom),27(Sudo),30(dip),46(plugdev),113(lpadmin),128(sambashare),132(sbuild),137(lxd),140(wireshark),998(pgadmin4)

この特定のインスタンスに関連するのは、uidgidの値です。これらの値は、私の場合は両方とも1000です。異なる場合がありますが、これらの値を手元に保持する必要があります。

次に、/etc/fstab行を再構築しましょう。システムは外部ディスクを検出するためにautoを実行しましたが、これは問題ありませんが、これには小さな問題があります-これはOSがディスク上のファイルシステムのタイプを判別できることに依存しています。したがって、それをntfsに置き換えます。

これにより、以下が/etc/fstab行の始まりになります。

/dev/sdb4 /mnt/sdb4 ntfs

ただし、今必要なことの重要な部分は、optionsをマウント用に調整することです。 defaultsは良い出発点ですが、必要なものではありません。理想的には、オプションに次の追加オプションがあるはずです。

 locale=en_US.utf8,windows_names,umask=7000,uid=UID,gid=GID

uid=およびgid=行のUIDおよびGIDを、以前にuidから取得した数値gidおよびidの値に置き換える必要があることに注意してください。

これらのオプションが何をするのか疑問に思うかもしれないので、他の答えからいくつかの編集を加えて説明を引きましょう。

  • locale=en_US.utf8-米国英語ロケールをUTF8で強制します
  • windows_names-パーティション内の新しいファイルに対してWindows名の制限が適用されるようにします。
  • umask=7007-基本的に、逆chmod。ファイルに許可されるnotパーミッションを定義します。基本的に、ここでは自分以外の「他のユーザー」以外の読み取り/書き込み/実行を禁止していません。したがって、マウントされた場所のすべてのファイルは、ユーザーの読み取り、書き込み、実行権限を効果的に取得します。私は特別なビットセット(setuid、setgid、sticky)を必要としないので、最初のオクテットからそれらを削除する必要があります-それらの数値の合計は「7」であり、私はそれらの許可を禁止しているので、先行する7。
  • uid=1000gid=1000-1000(これは私のユーザーのユーザーおよびグループです)のUID(ユーザーID)およびGID(グループID)のユーザーおよびグループ所有権でパーティションをそのフォルダーにマウントします、teward、Ubuntuシステムで)。

これらをオプション行に追加すると、外部デバイスがファイルネーミングを使用したWindowsデュアルブートに準拠し、UTF8を適用できるようになります。また、パーミッションを適切に設定して、ユーザーがパーティションで読み取り/書き込みのみを行えるようにします。これにより、/etc/fstab行が次のようになります。

/dev/sdb4 /mnt/sdb4 auto defaults,x-gvfs-show,locale=en_US.utf8,windows_names,umask=7000,uid=UID,gid=GID 0 0

最後の2つのゼロについては何もする必要はありません。そこを離れても構いません。 GIDおよびUIDの値を実際の値に更新したことを確認してください。

次に、Sudo umount /dev/sdb4 && Sudo mount /dev/sdb4を使用して、新しいオプションでパーティションをアンマウントおよび再マウントします。これで、ディスク全体に対する読み取り/書き込み権限が必要になります。

2
Thomas Ward