J'ai un serveur multi-utilisateur Linux avec plus de 100 utilisateurs dans/etc/passwd
J'aimerais permettre aux utilisateurs de "réserver"/"réserver" le nom de leur choix (dans ce cas, un sous-domaine, mais peu importe les détails)
J'ai créé un répertoire appelé /reservations
et avec chmod 777.
Si l'utilisateur johndoe le sait, touch /reservations/coolsite
, il indique qu'il souhaite "posséder" ce nom "coolsite"
Le "mécanisme" devrait être mis en place de sorte que,
johndoe peut changer d’avis plus tard et rm /reservations/coolsite
pour annuler la réservation de ce nom
un autre utilisateur n'est pas autorisé à touch /reservations/coolsite
, car johndoe l'a demandé en premier.
si johndoe rm
son fichier, un autre utilisateur est autorisé à le réserver.
les utilisateurs ne peuvent pas rm / rename / mv / etc
autres fichiers de personnes
l'utilisateur johndoe peut faire plusieurs réservations en utilisant touch /reservations/coolsite && touch /reservations/coolsite2
Est-ce possible d'utiliser un type de mécanisme d'autorisations Linux standard?
Je n’aimerais pas avoir recours à Perl pour cela, mes compétences en Perl sont rouillées depuis le jour oùRuby est arrivé avec ses cheveux blonds ondulés ...
Ce que vous demandez pour le répertoire /reservations
correspond exactement au comportement du répertoire standard /tmp
:
Chaque utilisateur peut y créer des fichiers et seul lui est autorisé à les supprimer ou les modifier. Ceci est réalisé par le bit t
(aka collant (---) ) dans les autorisations. Aucun utilisateur n'a besoin d'autorisations spéciales ni de masques de masquage.
Ainsi:
chown root /reservations
chmod 1777 /reservations
c'est tout ce dont vous avez besoin. Le chown root
sert uniquement à empêcher d'autres utilisateurs (normaux) de bidouiller avec ce répertoire. Ce n'est pas vraiment nécessaire . En savoir plus sur le bit sticky ici: