ユーザーがすべての親エントリの rx ではなく、ディレクトリの cd に絶対パスを使用してはならないのはなぜですか?

ユーザーがすべての親エントリの rx ではなく、ディレクトリの cd に絶対パスを使用してはならないのはなぜですか?

Windowsでは、ユーザーがlev5ディレクトリに対する読み取り/書き込み権限を持っているが、すべての親アイテムに対する権限がない場合でも、cd c:\lev1\lev2\lev3\lev4\lev5まだ機能しているようです。

Linuxでは、ユーザーに完全な権限lev5rx権限を付与しても、//に対する権限がないと機能しません。lev4setfaclrxlev1lev2lev3cd /lev1/lev2/lev3/lev4/lev5

Windowsのように動作させる方法はありますか?

私が気づいた1つは、ユーザーのシェルが/lev1/lev2/lev3/lev4/(sudoユーザーがいる場所)で始まり、/lev1/lev2/lev3/lev4/そこからユーザーを使用するように切り替えると、sudo -uユーザーがcd ./lev5。しばらくの間、これがユーザーと同じように、またはユーザーlev1から親ディレクトリの存在を隠すセキュリティ機能であるかどうか疑問に思いlev2ました。ユーザーシェルで実行している場合はフルパスが与えられるため、ユーザーがフルパスを使用するのを防ぐ必要はないようです。lev5lev4pwd/lev1/lev2/lev3/lev4/lev5cd

ベストアンサー1

/lev1/lev2/lev3/lev4/lev5本質的に同様のものを 1 つとみなす方法や連続的なもの/、 、 、 、 、 と見る 2 つの方法があります。前者を行うと、オブジェクトへのアクセスを要求できない理由はありません。ただし、これをシーケンスとして処理して一度に1つずつ解決することで、より複雑な作業を実行できます。たとえば、名前を解決するとネットワークストアに移動できます。コンピュータのオペレーティングシステムが、ユーザーがエンドオブジェクトにアクセスできるかどうかを判断できるように、接続できるすべてのネットワークストレージデバイスの詳細を知っていると期待するのは無理です。lev1lev2lev3lev4lev5

使用はpwd欺瞞的かもしれません。これは通常シェルの組み込み機能であり、環境変数で初期化されますPWD。過去にはに変更し、現在のディレクトリで現在の場所と一致する項目を見つける/bin/pwd方法で機能しました。..到達するまでこれを繰り返します/。このアプローチでは、一部の親ディレクトリからアクセス権を削除するとエラーが発生する可能性があります/bin/pwd。今日、Linuxでは、カーネルはユーザーの現在の場所を追跡し、システムコールのみを/bin/pwd呼び出します。getcwd

おすすめ記事