web-dev-qa-db-ja.com

Linuxファイルのアクセス許可を使用して「名前」予約システムを実装することは可能ですか

/ etc/passwdに100人以上のユーザーを持つLinuxマルチユーザーサーバーがあります

ユーザーが自分の好みの名前を「予約」/「予約」できるようにします(この場合はサブドメインですが、詳細は関係ありません)

/reservationsというディレクトリを作成し、chmod 777を使用しました。

ユーザーjohndoeがtouch /reservations/coolsiteを実行した場合、彼はその名前「coolsite」を「所有」したいことを示します。

「メカニズム」は、次のように設定する必要があります。

  • johndoeは後で気が変わり、rm /reservations/coolsiteはその名前の予約を解除します

  • johndoeが最初に要求したため、別のユーザーはtouch /reservations/coolsiteを許可されていません。

  • johndoe rm彼のファイルの場合、別のユーザーがそれを予約できます。

  • ユーザーはrm / rename / mv / etc他の人のファイルを

  • ユーザーjohndoeは、touch /reservations/coolsite && touch /reservations/coolsite2を実行することにより、複数の予約を持つことができます

これは、ある種の標準的なLinux許可メカニズムを使用して可能ですか?

このためにPerlに頼るのは嫌だと思います。Rubyが彼女の波状のブロンドの髪と一緒になってから、私のPerlスキルが錆びてきました...

ディレクトリ/reservationsを要求するのは、標準の/tmpディレクトリの動作です。

すべてのユーザーがそこにファイルを作成でき、そのユーザーのみがそれらを削除または変更できます。これは、許可のtビット(別名sticky bit)によって実現されます。その場合、ユーザーは特別な許可やumaskを必要としません。

副<文>この[前述の事実の]結果として、それ故に、従って、だから◆【同】consequently; therefore <文>このような方法で、このようにして、こんなふうに、上に述べたように◆【同】in this manner <文>そのような程度まで<文> AひいてはB◆【用法】A and thus B <文>例えば◆【同】for example; as an example:

chown root /reservations
chmod 1777 /reservations

は、あなたが必要とすることすべてです。 chown rootは、他の(通常の)ユーザーがそのディレクトリをいじるのを防ぐためのものです。 本当に必要ありません。スティッキービットの詳細については、こちらをご覧ください。

31
PerlDuck