Tengo un servidor multiusuario de Linux con más de 100 usuarios en / etc / passwd
Me gustaría permitir a los usuarios "reservar" / "reservar" un nombre de su agrado (en este caso, un subdominio, pero esos detalles no importan)
He creado un directorio llamado /reservations
y con chmod 777.
Si el usuario johndoe lo hace, touch /reservations/coolsite
indica que le gustaría "poseer" ese nombre "coolsite"
El "mecanismo" debe configurarse de modo que,
johndoe puede cambiar de opinión más tarde y
rm /reservations/coolsite
cancelar la reserva de ese nombreotro usuario no está autorizado
touch /reservations/coolsite
, porque johndoe lo solicitó primero.si johndoe
rm
su archivo, otro usuario puede reservarlo.los usuarios no pueden
rm / rename / mv / etc
otros archivos de personasel usuario johndoe puede tener múltiples reservas haciendo
touch /reservations/coolsite && touch /reservations/coolsite2
¿Es esto posible utilizando algún tipo de mecanismo de permisos estándar de Linux?
Odiaría recurrir a Perl para esto, mis habilidades de Perl se han oxidado desde el día en que Ruby llegó con su cabello rubio ondulado ...
fuente
touch
?umask
). Oh good one @perlduckRespuestas:
Lo que solicita para el directorio
/reservations
es exactamente cómo se/tmp
comporta el directorio estándar :Cada usuario puede crear archivos allí y solo él puede eliminarlos o modificarlos. Esto se logra mediante el
t
bit (también conocido como bit adhesivo ) en los permisos. Ningún usuario necesita permisos especiales o umasks entonces.Así:
es todo lo que necesitas. Esto
chown root
es solo para evitar que otros usuarios (regulares) jueguen con ese directorio. Realmente no es necesario. Lea más sobre la parte adhesiva aquí:fuente