web-dev-qa-db-ja.com

/ media / userフォルダーのアクセス許可の問題により、外部メディアにアクセスできません

外付けハードドライブを接続したり、DVDを挿入したり、USBドライブに何が入っているかを確認したりすると、通常とは異なる動作が発生します。

ファイルシステムは正常にマウントされます。 Sudo suを介してルートとしてログインすると、/media/casper/externaldriveの内容を完全に見ることができます。しかし、私のユーザーcasperはできません。 Ubuntuは、ロケーションPermission deniedを含むすべてのアクションに応答します。

casper@casper-desktop:/media$ ll /media/casper/externaldrive
ls: cannot access '/media/casper/externaldrive': Permission denied

/mediaフォルダーの許可(問題)を掘り下げることにしました。 casperとして、次が表示されます。

casper@casper-desktop:/media$ ls -alF
total 16
drwxr-xr-x  4 root root 4096 apr 21 17:47 ./
drwxr-xr-x 25 root root 4096 jul 29 15:43 ../
drwxr-x---  3 root root 4096 aug  3 21:02 casper/
lrwxrwxrwx  1 root root   45 apr 21 17:47 .directory -> /etc/kubuntu-default-settings/directory-media
lrwxrwxrwx  1 root root   42 apr 21 17:47 .hidden -> /etc/kubuntu-default-settings/hidden-media
drwxr-xr-x  2 root root 4096 feb 29 23:56 home/

私が驚いたのは、total 16と言っていたのに、リストはせいぜい6つしかないことでした。そこで、コマンドを再度実行しましたが、rootとして実行しました。結果は同じで、奇妙でした。 (誰も私にこれを啓発できますか?)

とにかく、私をさらに驚かせたのは、/media/casperディレクトリが私のものではなく、私もアクセスできないことです。バジンカをchown -Rするだけの誘惑に駆られましたが、自分自身を把握した後、「私を助けてくれないメディアユーザーフォルダー」のようなものをグーグルで検索しました。

しばらく時間がかかりましたが、最終的に私は this スレッドに遭遇しました。ここで、ユーザーは750 root:root /media/userフォルダーの目的を説明します。これにより、rootのみがファイルシステムをマウント、表示、管理できるようになり、個々のパーミッションは実際のユーザーに変更されます。

したがって、私の情報が正しければ、/media/casper/externaldriveパーミッションは私にとって好ましいはずです。私はチェックした、

root@casper-desktop:/media/casper# ll
total 12
drwxr-x--- 3 root   root   4096 aug  3 21:02 ./
drwxr-xr-x 4 root   root   4096 apr 21 17:47 ../
drwxrwxrwx 1 casper casper 4096 aug  3 20:20 externaldrive/

そして、これは事実のようです。

これが私が立ち往生している場所です。ファイルシステムには、ディレクトリツリー全体を通してアクセス許可がありますが、単一のファイルにアクセスすることはできません。これは、CDおよびUSBドライブでも同じです。

誰が私の貴重な物にアクセスするのを手伝うことができますか?

ああ、ところで。前述のスレッドは、これらの/media/userフォルダーのACLについて話します。これは、+などの通常のアクセス許可の後にdrwxr-x---+ 3 root rootで示されます。私のシステムではこれは表示されません。これらのフォルダのACLはUbuntuの標準ですか、それともユーザーが特別なことを行っていましたか?これが私の問題の原因であると心配する必要がありますか?

読んでくれてありがとう。

10
MicroParsec

/media/casperの権限と所有権は

drwxr-x---  root root 

ACLに+がない場合( アクセス制御リスト )、ルートのみがこのディレクトリを開いたり、入力したり、読み書きしたりできることは明らかです。私たちのような謙虚なユーザーは、文字列--- :(

特権のない人々は、ACLを使用してこの場所にアクセスする許可を取得します。なぜこれらをまだ持っていないのかはわかりませんが、セットアップすることはできますが、これは単純な場合もあれば、少し手を加える必要がある場合もあります。

  • aclパッケージが必要です(apt-cache policy aclを確認してください)
  • ファイルシステムはaclオプションでマウントする必要があります

後者を確認するには(ルートパーティションに合わせてsdxYを適切に置き換えます):

Sudo tune2fs -l /dev/sdxY | grep "Default mount options:"

返す必要があります:

Default mount options:    user_xattr acl

デフォルトのマウントオプションは/etc/mke2fs.confで設定されます

オーバーライドされる可能性があるため、以下を確認してください。

cat /proc/mounts | grep sdxY

次のようになります。

/dev/sdxY / ext4 rw,relatime,errors=remount-ro,data=ordered 0 0

上記は問題ありません(aclは言及する必要はありません)が、noaclと書かれている場合は、変更する必要があります。

次のように、オプションをデフォルトのマウントオプションに追加できます。

Sudo tune2fs -o acl /dev/sdxY

または、/etc/fstabのルートパーティション行のオプションにaclを追加できます。例:

UUID=whatever /     ext4    errors=remount-ro,acl    0       1

ACLを有効にした状態で、setfaclを使用して自分用のアクセス許可を追加します。 usernameに/ media/casperの読み取りおよび実行権限を付与するには(ディレクトリに入るか、その内容を検索するには実行権限が必要です):

Sudo setfacl -m u:username:rx /media/casper

usernameをuidに置き換えることができます(おそらく1000-idコマンドで確認してください)

Sudo setfacl -m u:1000:rx /media/casper

oliが答えでしたようにgetfaclを使用するACL許可を確認する

getfacl /media/casper

ユーザーからACLアクセス許可を削除するには

Sudo setfacl -x u:username /media/casper

すべてのACLアクセス許可をクリアするには

Sudo setfacl -b /media/casper

注:/mediaに多くのエントリが存在する理由について、ごまかして自分で質問しました。答えは here です

14
Zanna

UbuntuからWindowsドライブへのアクセス許可を与えたい場合

通常のchmodコマンドは、Windows NTFSドライブの場合は機能しません。

次は私のために働く。

ファイル/etc/mtabを開きます。

gedit /etc/mtab

このファイルでドライブ名を見つけます(ソリューションを探しているドライブにマウスオーバーするだけで、私の場合はGUIに別の名前が表示され、マウスオーバーすると/media/user-name/drive-nameが表示されます)

/etc/mtabで:

ファイル内のドライブ名を検索し、マウントされたドライブが割り当てられているドライブを確認します(私の場合-/dev/sda4

次に、このドライブを次のものでマウントします。

Sudo ntfs-3g /dev/sda4 /media/"$USER"

これで実行可能ファイルを実行できるようになりましたが、drive-nameの内容を見ることができないため、ドライブをアンマウントして再度マウントしました。

2
Hridaynath