Est-il possible, en utilisant le schéma d'autorisation linux, d'autoriser les utilisateurs à créer des fichiers sans les modifier ou les supprimer ultérieurement? Je veux dire, nous avons un dossier de livraison où les utilisateurs y mettent des artefacts et nous ne voulons pas que ces artefacts soient modifiés après leur livraison, c'est-à-dire modifiés ou supprimés.
linux
permissions
synchronization
Gilles 'SO- arrête d'être méchant'
la source
la source
Réponses:
Vous ne pouvez pas faire cela: si l'utilisateur peut créer des fichiers, ils lui appartiendront et il pourra les modifier et les effacer.
J'allais proposer un schéma simple pour avoir un répertoire intermédiaire (où l'utilisateur peut faire ce qu'il veut) et un répertoire entrant (non accessible à l'utilisateur), avec un petit programme privilégié pour déplacer des fichiers du répertoire intermédiaire vers le entrant annuaire. Mais il est en fait difficile de bien faire les choses: entre autres, vous devez vous assurer que le programme privilégié ne déplace pas les fichiers dans d'autres répertoires (méfiez-vous des conditions de concurrence, des liens symboliques,
../
), n'écrasera pas les fichiers existants (rename(3)
est atomique mais peut effacer la destination), ne permettra pas à l'utilisateur de garder un descripteur de fichier ouvert et de modifier le fichier après son déplacement (il vaut donc mieux copier que déplacer). Au lieu de cela, je recommanderai de prendre une solution existante et robuste:la source
NON
Mais vous avez d'autres options comme suggéré par @Fredrik dans le commentaire de votre question. Vois ici.
la source
Voici une approche qui devrait théoriquement fonctionner. C'est trop d'efforts pour moi de développer même une preuve de concept; vous pouvez le rejeter pour la même raison. Et, à proprement parler, ce n'est pas «en utilisant le schéma d'autorisation Linux».
/mnt/delivery
et dites à vos utilisateurs d'y mettre leurs fichiers.la source
La réponse simple est d'exécuter un script sur un intervalle donné que vous choisissez (disons toutes les 15 minutes) qui réattribue la propriété de tous les fichiers du répertoire "upload" à un utilisateur "admin" prédéterminé et définit les autorisations sur "644". Cela permettra à tous les utilisateurs d'accéder en lecture seule à tous les fichiers du répertoire de téléchargement, y compris ceux qu'ils ont eux-mêmes téléchargés. Bien sûr, vous pouvez optimiser le script après la première exécution pour rechercher uniquement les fichiers avec des dates créées après l'exécution précédente du script (disons au cours des 17 dernières minutes).
la source