
私はunix / linuxのファイルとディレクトリの権限を理解しようとしています。
私の考えにはおおよその考えがあると思います。
cat ~/foo/bar/text.txt
x+r
、の許可が必要です。~
~/foo
~/foo/bar
r
~/foo/bar/text.txt
x
しかし、権限がないと仮定~/foo/bar
し、現在のディレクトリが~/foo/bar
(たぶんroot
ユーザーがsu user
そこに作成した可能性がある)そこに入力すると仮定します。
cat text.txt
rwx
テストしてみると権限があるのに権限がないと出てきますtext.txt
。
だから私の質問は:私が入力したとき
cat text.txt
システムは実際にcat ./text.txt
現在のディレクトリ権限を解釈して確認しますか? (パスに言及していないディレクトリは権限チェックをしないと思いましたが、現在のディレクトリもチェックしませんか?)
したがって、この場合(現在のディレクトリがどこにあるのか~/foo/bar
、何をしたいのかcat text.txt
)、権限は~/foo
重要ではありません。しかし、~/foo/bar
そうですか?
答え1
ファイルを開く操作では、現在のディレクトリ(ファイル)に保存されている対応するディレクトリエントリの属性と物理的な場所を読み取る必要があります。
これがライセンスの問題がある理由です。
そうでなければ、仮定は正しいです。システムは指定されたパスにのみアクセスします。ローカルディレクトリへのアクセスsudo
権のみを付与すると、x
例ではファイルにアクセスできます。
r
この権限はディレクトリエントリを検索するために必要ではありませんが、その内容を一覧表示するためには必要です。