web-dev-qa-db-fra.com

Comment configurer un dossier pour que tout ce qui y est créé hérite des autorisations?

J'ai un dossier/data (en fait une partition) pour toutes les données qui devraient être accessibles à tous les utilisateurs (dans ce cas, les membres de la famille). Nous avons tous des comptes d'utilisateurs individuels et nous sommes souvent tous connectés à tout moment sur ce PC.

Comment puis-je configurer les autorisations pour que nous puissions tous conserver l'accès aux fichiers, peu importe le créateur, y compris les nouveaux dossiers? Si je crée un dossier, il obtient mon utilisateur et mon groupe, ainsi personne d'autre ne peut y écrire.

18
steevc

Une autre approche consiste à utiliser des listes de contrôle d'accès, un sur-ensemble d'autorisations de fichier.

Tout d’abord, nous devons installer le aclInstall acl paquet:

Sudo apt-get install acl

Avant Ubuntu 14.04 , la partition doit être montée avec l'option aclpour que les éléments suivants fonctionnent. Il pourrait être ajouté dans /etc/fstab, comme dans

UUID=<XXXX>  /media/shared  ext4  noatime,acl  0  2

ou pour un système de fichiers déjà monté

Sudo mount -o remount,acl /media/shared

Ensuite, vous devez créer un nouveau groupe, auquel seront ajoutés tous les utilisateurs autorisés à accéder au partage en mode lecture/écriture. Je l'appelle usersharename__. Un groupe déjà existant pourrait être utilisé.

Sudo addgroup usershare

Maintenant, nous ajoutons les utilisateurs enzotibet steevcà ce groupe:

Sudo gpasswd -a steevc  usershare
Sudo gpasswd -a enzotib usershare

(en vigueur à la prochaine connexion).

Ensuite, nous ajoutons une liste de contrôle d'accès avec les droits rwxpour le groupe usershareà tous les fichiers déjà présents dans /media/shared

Sudo setfacl -Rm g:usershare:rwX /media/shared

Enfin, nous ajoutons une liste de contrôle d'accès par défaut avec rwxpermissions pour le groupe usersharepour tous les fichiers créés à l'intérieur de /media/shared

Sudo setfacl -d -Rm g:usershare:rwX /media/shared

Désormais, tous les utilisateurs du groupe usershareont des autorisations complètes sur tous les fichiers sous /media/shared. Les autorisations de chaque utilisateur sur son répertoire personnel et celui de l'autre ne sont pas affectées.

J'ai testé cette solution et semble fonctionner, mais les suggestions et corrections sont les bienvenues.

Remarque : les nouveaux fichiers et répertoires créés dans le répertoire considéré auront le droit d'écriture pour le groupe usersharename__, mais les fichiers copiés ou déplacés dans le dossier conservent leur statut d'origine. autorisations. Si je comprends bien, l'utilisateur n'a besoin que d'un accès en écriture pour les répertoires nouvellement créés, ce n'est pas un problème. Sinon, les autorisations doivent être modifiées manuellement. Voir cette réponse pour résoudre ce problème en définissant le umask des utilisateurs sur 002.

16
enzotib
  1. Créer un dossier.

    Par exemple:

    mkdir /mnt/family
    

    Si vous avez besoin de monter la partition sur eux ... si ext4 tout ce dont vous avez besoin dans /etc/fstab est

    UUID=xxx    /mnt/family ext4    **rw,exec,defaults,auto,async   0   2**
    
  2. Créer un groupe myfam.

    addgroup myfam
    
  3. Ajouter des utilisateurs à ce groupe

    adduser papa myfam  
    adduser mom myfam
    
  4. Maintenant, prenez et donnez la permission.

    Je pense que vous devriez commencer, en changeant umask.

    Permissions du système de fichiers et droits d'accès par défaut dans 12.04

    chown -R you.myfam /mnt/family  
    chmod -R g+rwx /mnt/family  
    

    Maintenant le plus important. Cette ligne crée setgid tout ce que vous créez dans ce dossier a vos utilisateurs en tant que propriétaire et groupe myfam. Cela permet au système de remplacer le groupe principal d'utilisateurs.

    chmod -R g+s /mnt/family   
    
8
Pas_

La chose la plus simple qui me vienne à l’esprit est d’ajouter chaque utilisateur au groupe de tous les autres utilisateurs.

Puis changez umask de chaque utilisateur de 022 à 002, cela pourrait être fait dans /etc/profile.

Éditer

La première étape peut être remplacée par la suivante: faire en sorte que tous les utilisateurs appartiennent au groupe usersen tant que groupe principal.

Edi2

Comme @James_Henstridge l'a suggéré, il peut être pratique de définir le bit setgid sur le répertoire principal, de sorte que les nouveaux fichiers et répertoires créés aient le même groupe, indépendamment de l'utilisateur. De cette manière, vous pouvez éviter de définir usersen tant que groupe principal d'utilisateurs.

3
enzotib

Cela ressemble à un travail pour les ACL. Giles a un réponse très complète sur les sites SE Unix et Linux qui m'a aidé à résoudre le même problème.

2
ephsmith

Je suis tombé sur cette question en cherchant des réponses à mon problème de groupe. J'ai lu la question et il semble que j'applique déjà ce que la question tente d'accomplir.

Je me suis donc donné la peine d'y répondre.

J'ai déjà configuré un partage pour tous les utilisateurs de mon réseau local avec lecture et exécution uniquement, et seul mon compte dispose de l'autorisation d'écriture sur les dossiers partagés.

J'ai un serveur multi-usages sur mon réseau local qui utilise Ubuntu 12.04 LTS Desktop Edition. J'ai un mélange de machines clientes de Linux et de Windows.

Voici comment je l'ai mis en place:

1. Sur mon serveur, j'ai des comptes d'utilisateur nommés adminet clientonename__

Le compte adminest le compte créé lors de l'installation d'ubuntu et le compte clientoneest le compte créé à l'aide du menu USER ACCOUNTS dans ubuntu. Il ne dispose que d'une autorisation standard, pas de privilèges d'administrateur et il est ajouté au groupe usersname__. Vous pouvez bien sûr les utiliser uniquement avec le terminal. Ajoutez d'autres comptes d'utilisateur supplémentaires pour vos ordinateurs clients.

2.La partition/le dossier partagé est monté automatiquement dans fstab en utilisant uniquement l'option par défaut.

3.Le réseau se trouve dans un environnement de groupe de travail et se trouve sur mylanworkgroup.

Tous les ordinateurs de mon réseau local sont configurés pour utiliser le groupe de travail mylanname__.

4. Mon dossier partagé nommé sharedcontient déjà des fichiers. Je change donc le propriétaire et le groupe pour cela de manière récursive en utilisant la commande ci-dessous.

 Sudo chown -Rv admin:users /shared

5.J'ai également défini l'autorisation de dossier et de fichier sur le dossier /shared de manière récursive à l'aide de la commande

 Sudo chmod -Rv 750 /shared

les machines invitées de mon groupe de travail mylann'ont pas accès au partage via chmod 750

vous pouvez utiliser

 Sudo chmod -Rv 755 /shared

Tous les futurs comptes utilisateur du groupe usersne disposent que de l'autorisation d'exécution en lecture.

6.Dans ma machine cliente (Windows XP), je crée un compte d'utilisateur nommé clientonename__. Le même nom d'utilisateur et mot de passe que celui créé sur mon serveur Ubuntu. Un deuxième compte nommé clienttwoest également créé sur le serveur Ubuntu et correspond au même compte d'utilisateur que celui utilisé sur ma deuxième machine (linuxmint 15).

7.Dans ma machine cliente lors de la connexion à l'aide du compte clientonename__, je vais exécuter la commande puis entrez

 //192.168.10.254/shared

192.168.10.254 est l'adresse ip de mon serveur ubuntu, /shared est le dossier partagé sur mon serveur ubuntu. Sur la deuxième machine cliente (linuxmint 15), je vais à Menu> Réseau et à la barre de dialogue Emplacement: que j'ai saisie:

 smb://192.168.10.254/shared

Si un mot de passe vous est demandé, entrez le mot de passe de votre compte utilisateur. Et aussi votre mot de passe de trousseau si KEYRING est activé sur vos machines Linux.

Celui-ci fonctionne pour moi dans ma propre configuration de réseau. Mon serveur est un serveur polyvalent servant de serveur squid, serveur xbmc et mediatomb et serveur amahi.

Je cherche toujours des moyens d'améliorer la partie partage de fichiers de ma configuration. L’instruction ci-dessus n’est pas une solution à l’épreuve des balles, vous pouvez l’essayer. Je teste et essaie "ACL" avec le montage automatique de dossiers partagés. Au fur et à mesure que vos exigences en matière de partage de dossiers se compliquent, les instructions ci-dessus ne vous garantiront pas le succès.

Informations ajoutées:

Amahi Server est installé sur mon serveur. Je l'ai également utilisé pour créer des comptes d'utilisateur auxquels je souhaitais accéder aux dossiers partagés. Je l'ai également utilisé pour créer de nouveaux partages de dossiers.

Si vous souhaitez une autorisation utilisateur plus complexe pour différents utilisateurs, c'est ACL.

0
GaryP

Je ne comprends pas, tous les systèmes linux-linux, linux-windows, linux - ???, utilisent-ils Samba? SSH ?, Pigeons ?; de toute façon, vous devez inclure les autres dans le groupe avec votre nom d'utilisateur (votre groupe), et ils obtiendront les mêmes autorisations que vous.

0
juancarlospaco

Mon nom contient des fichiers vidéo, mais lorsque je me connecte avec le nom de ma fille, son compte ne peut pas voir les fichiers vidéo. Donc, ce que j'ai fait est allé aux comptes utilisateur, déverrouillé (en haut à droite), puis a changé son type de compte de "standard" à "administrateur (ce qui est ce que mon compte est), et maintenant tous les fichiers vidéo, vraiment tout, apparaît une fois connecté sous son compte.

0
joe