ネストされたフォルダーのアクセス許可はどのように機能しますか?

ネストされたフォルダーのアクセス許可はどのように機能しますか?

1) ネストされたディレクトリの権限がどのように機能するかわかりません。

次のディレクトリ/ファイルと権限があるとします。

~/Private/ 700
~/Private/Group 770
~/Private/Group/Public 777

Public は本当にパブリックですか?

2) Private を本当にプライベートにしたい場合、「chmod 700」を実行するときに -R を使用するかどうかは重要ですか?

3) Ubuntu はデフォルトで Word で読み取り可能なホーム フォルダを使用しており、これを修正することを拒否していると読みました。しかし、「ls -lh」を実行すると、次のメッセージが表示されます: drwx------ (700 ですよね?)。では、どちらでしょうか? ホーム フォルダに関する考えが変わったのでしょうか?

注: 私はUbuntu 12 VMを使用しています

答え1

~/Private/ 700
~/Private/Group 770
~/Private/Group/Public 777

の所有者ではないユーザーは~/Private/~/Private/Groupこれらの権限ではパブリック フォルダにアクセスできません。

Unix/Linux では、ユーザーがディレクトリをトラバース (ディレクトリに移動またはディレクトリを通過) できるようにするために、実行ビットを追加する必要があります。ただし、読み取りアクセスを許可する必要はありません。代わりにこれを試してください。ただし、ユーザーはグループ ディレクトリとパブリック ディレクトリが存在することを認識している必要があることに注意してくださいls。読み取りアクセスも許可されていない限り、ユーザーがそれらのディレクトリが存在するかどうかを確認する方法はありません。

~/Private/ 711
~/Private/Group 771
~/Private/Group/Public 777

'chmod 700' を実行するときに -R を使用するかどうかは重要ですか?

このコマンドを実行すると、ターゲット ディレクトリの下のすべてのファイルとディレクトリの権限が変更されます。権限が異なるファイルがある場合は、権限が失われます。また、多くの通常のファイルに実行ビットが追加されると思われますが、これは一般的に望ましくありません。

代わりに、次のようなコマンドを使用することをお勧めします。これにより、ファイルの権限は変更されずに、ディレクトリとサブディレクトリの権限のみが変更されます。

find {directory_path} -type d -print0 | xargs --null -n 1 chmod 0700

ファイルのみを変更する同様のコマンドは次のようになります。

find {directory_path} -type f -print0 | xargs --null -n 1 chmod 0600

関連情報