Eu tenho um servidor multiusuário linux com mais de 100 usuários em / etc / passwd
Gostaria de permitir que os usuários "reservem" / "reservem" um nome de sua preferência (neste caso, um subdomínio, mas esses detalhes não importam)
Eu criei um diretório chamado /reservations
e com o chmod 777.
Se o usuário johndoe sim, touch /reservations/coolsite
ele indica que gostaria de "possuir" esse nome "site legal"
O "mecanismo" deve ser configurado para que,
johndoe pode mudar de ideia mais tarde e
rm /reservations/coolsite
cancelar a reserva desse nomeoutro usuário não tem permissão
touch /reservations/coolsite
, porque johndoe pediu primeiro.se johndoe
rm
seu arquivo, outro usuário pode reservar.os usuários não podem
rm / rename / mv / etc
outros arquivos de pessoasO usuário johndoe pode ter várias reservas fazendo
touch /reservations/coolsite && touch /reservations/coolsite2
Isso é possível usando algum tipo de mecanismo padrão de permissões linux?
Eu odiaria recorrer ao perl por isso, minhas habilidades com o perl tornaram-se enferrujadas desde o dia em que ruby apareceu com seus cabelos loiros ondulados ...
fonte
touch
?umask
). Oh boa @perlduckRespostas:
O que você pede para o diretório
/reservations
é exatamente como o/tmp
diretório padrão se comporta:Todo usuário pode criar arquivos lá e somente ele pode excluí-los ou modificá-los. Isso é conseguido pelo
t
bit (também conhecido como bit pegajoso ) nas permissões. Nenhum usuário precisa de permissões especiais ou umasks então.Portanto:
é tudo o que você precisa. A
chown root
é apenas para impedir que outros usuários (regulares) de brincar com esse diretório. Não é realmente necessário. Leia mais sobre a parte difícil aqui:fonte