外付けハードドライブを接続したり、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の標準ですか、それともユーザーが特別なことを行っていましたか?これが私の問題の原因であると心配する必要がありますか?
読んでくれてありがとう。
/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 です
通常の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の内容を見ることができないため、ドライブをアンマウントして再度マウントしました。