私の問題を理解するには、次の手順をお読みください。
次のコマンドを実行します。
mkdir ~/src
mkdir ~/destination
sudo mount ~/src ~/destination --bind -o ro
src
destination
フォルダはフォルダにバインドされてマウントされます。 nautilusでdestination
フォルダを見ると読み取り専用です。ただし、このコマンドはフォルダとll
同じファイル権限を提供します。src
destination
その理由は何ですか? 「ターゲット」フォルダの実際の権限をどのように確認できますか? Nautilusはどのように読み取り専用として表示できますか?
答え1
これには2つのタスクがあります。
- ディレクトリ権限。
- インストールオプション。
ディレクトリ権限は、マウントが読み取り専用であるという事実とは無関係です。したがって、ls
フォルダに割り当てられたアクセス許可は、フォルダのマウント方法に関係なく引き続き一覧表示されます。
同様に、を使用してフォルダをマウントすると、noexec
内部ls
の実行可能ファイルはまだ実行可能としてマークされます。インストールフォルダを使用するnoexec
か、あなたの場合に応じてro
ファイルとディレクトリの権限を変更しないでください。。
しかし、ファイルマネージャはよりスマートに見え、ディレクトリが読み取り専用でマウントされていることがわかります。明らかに、これを調べるために許可ビットを照会するだけでは十分ではありません。
コメントから: "私のユースケースでは、シェルコマンドを使用してインストール権限を読みたいのです。"
オプションなしでコマンドを実行すると、mount
現在マウントされているすべてのパーティションとそのマウントオプションが出力されます。
$ mount
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
udev on /dev type devtmpfs (rw,nosuid,relatime,size=32841600k,nr_inodes=8210400,mode=755)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
tmpfs on /run type tmpfs (rw,nosuid,noexec,relatime,size=6572324k,mode=755)
(etc.)
インストールオプションは括弧内にリストされています。
現在マウントされているファイルシステムを調べることもできます/etc/mtab
。ファイル形式は次/etc/fstab
のとおりです。
awk '{ print $2, $4 }' /etc/mtab
たとえば、マウントポイントとマウントオプションのみを取得します。