ディレクトリ権限例外

ディレクトリ権限例外

私はFedoraを次のように使用しています。

[root@PANTRY 1000]# os
Linux 6.5.12-200.fc38.x86_64 #1 SMP PREEMPT_DYNAMIC Mon Nov 20 22:12:09 UTC 2023 unknown
[root@PANTRY 1000]#

次のような異常な権限を表示する「doc」というサブディレクトリがあります。

[root@PANTRY 1000]# ld
ls: cannot access 'doc': Permission denied
ls: cannot access 'gvfs': Permission denied
drwx------. 4 me me  80 Nov 28 21:13 app
drwx------. 2 me me  60 Nov 28 20:07 at-spi
drwx------. 2 me me  60 Nov 29 06:30 dconf
d?????????? ? ?  ?    ?            ? doc
drwx--x--x. 2 me me  60 Nov 29 00:36 gdm
drwx------. 3 me me  60 Nov 28 20:07 gnome-shell
drwx------. 2 me me  40 Nov 28 20:07 gnupg
d?????????? ? ?  ?    ?            ? gvfs
drwx------. 2 me me  40 Nov 29 08:23 gvfsd
drwx------. 2 me me 100 Nov 28 20:07 keyring
drwx------. 2 me me  80 Nov 28 20:07 pulse
drwxr-xr-x. 7 me me 180 Nov 28 20:44 systemd
[root@PANTRY 1000]#

その場所は以下の通りです:

[root@PANTRY 1000]# pwd
/run/user/1000
[root@PANTRY 1000]#

私はこのディレクトリを故意に作ったことがありません。

「root」としてもディレクトリに「cd」することはできません。下記をご覧ください。

[root@PANTRY 1000]# cd /run/user/1000/doc/
bash: cd: /run/user/1000/doc/: Permission denied
[root@PANTRY 1000]#

「gvfs」にも同様の権限があることがわかりましたが、以前も見たことがあります。これはアーティファクトですか、それとも実際のディレクトリですか?どうすればいいですか?

ベストアンサー1

/runマウントは/run/user/<$UID>2種類のメモリ内ファイルシステムtmpfsなので、正しいです。 「実際」(読み取り:永続ストレージをサポート)ディレクトリではありません。

/run/user/<$UID>/docまた、/run/user/<$UID>/gvfsマウントもメモリファイルシステムタイプですfuse.portal。 FUSEモジュールのファイルシステム機能は次のとおりです。これを制御するユーザーIDでのみ読み取ることができます。rootそのユーザーとしてシェルをroot使用su <username>または開かないと(UID 0)、このインストールでは読み取れませんsudo -i -u <username>

次のコマンドを実行して、マウントとそのタイプを確認できます。

mount |grep /run

FUSEファイルシステムへの所有者以外のアクセスを許可するようにインストール時に明確にfusermount -o allow_other ...指定できますが、このディレクトリをマウントする方法、または現在使用しているオプションを変更する方法がわかりません。削除するとfusermount -u /run/user/1000/doc問題が発生する可能性があります。

機能は何ですか?

~によるとFHS(ファイル階層標準)最新のドラフト/run

このディレクトリには、システムの起動後にシステムを記述するシステム情報データが含まれています。起動プロセスの開始時にこのディレクトリのファイルを消去する必要があります(必要に応じて削除または切り捨てる)。

このディレクトリの目的はかつて/var/runによって提供されました。通常、プログラムは/ runに設定されている以前のバージョンとの互換性要件を満たすために/ var / runを引き続き使用できます。 /runを使用するように移行されたプログラムは、/var/runセクションで特に指定がない限り、/var/runの使用を中止する必要があります。

プログラムには/runサブディレクトリがあります。これは、複数のランタイムファイルを使用するプログラムにお勧めします。ユーザーは/runサブディレクトリを所有することもできますが、/run自体や他のサブディレクトリの不正使用を防ぐためにアクセス権を適切に制限するように注意する必要があります。

「起動時に消去する必要があります」インメモリファイルシステムを完全に使用しているようです!)

ディレクトリの場合は、/run/user/<$UID>次のコマンドで生成されます。pam_systemdまたはeloginddconf、pulse、gnome-keyring-daemonなど、ユーザーがログインしたときにバックグラウンドで実行されるさまざまなユーザープログラムで使用されるこれらのプログラムには、ロックファイル、PIDファイル、ソケットなどの一時的な保存場所が必要です。 。システムに記録されたさまざまなユーザーUIDのディレクトリ数は何ですか?通常、ディスクには保存されません。その理由は、ここに関する情報が含まれているためです。走るプログラムなので、システムをシャットダウンまたは再起動した後は使用できなくなります。これはまたSSDの摩耗を減らします(少しですが)。

/run/user/<$UID>/gvfsGNOMEデスクトップ環境は、GNOMEデスクトップの実行に関連するサービス用に特別に追加されているようです。

おすすめ記事