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


10

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

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

私は/reservationschmod 777 というディレクトリを作成しました。

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

「メカニズム」は、

  • johndoeは後で気が変わって、rm /reservations/coolsiteその名前を予約解除することができます

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

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

  • ユーザーはrm / rename / mv / etc他の人のファイルはできません

  • ユーザーjohndoeは、次のようにして複数の予約を行うことができます。 touch /reservations/coolsite && touch /reservations/coolsite2

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

私はこれのためにperlに頼るのが嫌いです、ルビーが波打つブロンドの髪と一緒になった日以来私のperlスキルは錆びてきました...


私はここに普通のことをしているものを何も見ません。"coolsite"を "700"として作成し(グループや他のユーザーのアクセス許可はありません)、自分のユーザー+管理者のみがそれに何かを行うことができます。他のすべてのユーザーは許可が拒否されます。
Rinzwind 2017

したがって、手動でユーザーにchmod 700を忘れないように指示しますtouchか?
アメリカンニンジャウォリアー

1
joshsverns強制できると思いますか?(とumask)。@perlduckああ良い
Rinzwind

なぜルビでプログラムできないのですか?
パイプ

回答:


31

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

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

したがって:

chown root /reservations
chmod 1777 /reservations

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.