グループの作成書き込み権限、所有者によって作成されたファイルは所有者のみが書き込み可能です。

グループの作成書き込み権限、所有者によって作成されたファイルは所有者のみが書き込み可能です。

フォルダを作成しました/hello。フォルダには次の権限があります。

Owner = rwx
Group = rwx
Others = r

そしてフォルダはグループ所有であり、johnグループに属しますsales。名前の異なるユーザーを作成してdavidグループに追加しましたsales

現在生成されたファイルはjohn次のとおりです。

Owner = rw
Group = rw
Others = r

生成されたファイルはdavid次のとおりです。

Owner = rw
Group = r
Others = r

作成されたファイルには、デフォルトでjohnこのグループに書き込み権限が与えられたくありません。sales

権限を変更しようとしましたが、その結果、davidディレクトリに書き込めなくなりました。

答え1

まず、/helloへの他の人の読み取りアクセスに関しては、読み取りアクセスがまったく必要なく、/helloへの読み取りアクセスと実行アクセスが必要な場合があります。ディレクトリに対する実行権限は、ユーザーがディレクトリでls操作を実行できることを意味します。 Exec権限なしで読み取ると、他のユーザーがディレクトリ内のすべてのファイルを読み取ることができますが、ファイル名を知っている場合にのみ可能です。これはまれです。

第二に、ジョンが作成したファイルを他の人が常に読むことができれば、Davidはそのファイルを読み取ることを妨げることはできません。

umask コマンドを使用して、ユーザーが作成したファイルのデフォルト権限を設定できます。 JohnとDavidの.bashrc(またはそれに対応するファイル)に次の行を入力します。

umask 7

Johnが/helloにファイルを作成すると、そのファイルはjohnの所有者でありグループになります。

-rw-rw---- 1 john  john  0 Jun 28 22:05 foo

Davidはファイルを読み取ることができません。

別の可能性は、グループ名 sales を使用せずに John を David のグループに追加することです。その後、ジョンはDavidのファイルを読み書きできますが、その逆は不可能です。

考慮すべきいくつかの他の興味深い事項があります。 / helloディレクトリにgidフラグを設定することができます。これにより、JohnまたはDavidがファイルを作成すると、それらはsalesグループになります。したがって、両方とも読み書きできます。あなたが要求したわけではありませんが、それがあなたがする方法です。

関連情報