Conseil: avoir un répertoire partagé entre plusieurs utilisateurs sous Linux

terminal

Aujourd'hui je reviens avec une autre astuce que, personnellement, j'utilise beaucoup: pouvoir avoir un répertoire partagé entre plusieurs utilisateurs sur un Linux. Je les mets en situation, avec ma femme à la maison, nous utilisons tous les deux le même PC avec Arch Linux mais chacun avec son propre utilisateur. Donc, nous avons remarqué le problème avec ces dossiers que nous partageons comme de la musique ou des photos, car chacun avait ses propres fichiers, dupliquant des choses.

C'est alors que nous avons pensé créer un dossier partagé, mais c'est le problème des permissions. Si le dossier est le mien, elle ne le voit pas, si le fichier est créé par moi, elle ne le supprime pas et ainsi de suite. Au début, le correctif était que nous donnions 777 autorisations à ces fichiers chaque fois que nous éditions quelque chose pour que l'autre accède jusqu'à ce que nous trouvions la solution, Autorisations de groupe!

Que sont les autorisations de groupe?

Ça c'est le meilleur, attribuer à ce répertoire partagé et à tout son contenu un groupe spécial avec des autorisations de lecture et d'écriture, avec lequel tous les membres du groupe auront accès audit répertoire. Cela permet alors qu'en ajoutant simplement nos utilisateurs audit groupe, nous pouvons déjà interagir dans ce répertoire.

Et comment le configurer?

C'est la meilleure partie et je continue à vous dire comment je l'ai fait avec ma femme. La première chose à faire est de créer ce répertoire, que pour l'exemple j'appellerai «compartiment«.

sudo mkdir /home/compartido

Je le crée à l'intérieur / home et à l'extérieur de nos comptes, pour éviter que les répertoires supérieurs ne se gênent avec leurs propres autorisations. Maintenant, nous devons créer le groupe, que nous allons mettre «partagé»

sudo groupadd compartidos

Et nous affectons ce groupe au répertoire que nous avons créé auparavant et nous modifions également les autorisations, de sorte que tout ce que nous créons à l'intérieur, qu'il s'agisse de répertoires ou de fichiers, appartienne également à ce groupe.

sudo chgrp -R compartidos /home/compartido
sudo chmod g+s dirname

De plus, nous devons y ajouter nos utilisateurs. Ensuite, il faut répéter cette commande pour chacun:

sudo usermod -G compartido sebastian
sudo usermod -G compartido mimujer

Jusqu'à présent, nous avons le répertoire «/ home / partagé»Qui appartient au groupe«partagé«, Avec ce que tous les utilisateurs membres du même pourront accéder et tout ce qui est créé dans l'annuaire, appartiendra au groupe avec ce que chacun de nous pourra les voir.

Maintenant, nous n'avons besoin que d'une dernière étape, qui peut être facultative, mais c'est de changer le umask des utilisateurs, pour s'assurer que chaque nouveau fichier que nous créons est modifiable par les autres membres du groupe. Cela affecte tout l'utilisateur, pas seulement le répertoire, il doit donc voir si cela fonctionne pour lui ou non. Dans mon cas, puisque seuls ma femme et moi utilisons le système, cela ne nous dérange pas et nous nous attribuons un umask de 002, ce qui signifie que chaque fichier créé commence avec 775 permissions.

Modification du umask

Pour éditer l'umask, dans chaque utilisateur, vous devez éditer le fichier .profile ou .bashrc qui se trouve à l'intérieur du domicile de l'utilisateur et modifier la valeur d'umask par le nombre souhaité. Si l'option n'est pas là, il faut l'ajouter.

Vous pouvez également modifier le fichier / etc / profile afin que la modification affecte tous les utilisateurs

Donc, dans la console, nous mettons:

sebastian@multivacs ~> vim .profile

Et nous verrons quelque chose comme ça:

profil-vi2

Alors, on passe à la ligne qui dit umask, on appuie sur la lettre i pour pouvoir modifier et nous supprimons le # pour supprimer le commentaire. Nous changeons le nombre en 002. Si la ligne n'apparaît pas, ils doivent l'ajouter.

Une fois terminé, on appuie sur la touche Esc pour quitter le mode d'édition et ensuite on écrit :+q+w. Ce qui nous fait enregistrer les modifications et quitter le fichier Vi.

Cela ressemblera à cette image:

profil en vi

Et c'est tout! S'ils ferment leur session utilisateur et la rouvrent, les modifications seront prises, avec lesquelles le répertoire partagé fonctionnera déjà.


Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont marqués avec *

*

*

  1. Responsable des données: Miguel Ángel Gatón
  2. Finalité des données: Contrôle du SPAM, gestion des commentaires.
  3. Légitimation: votre consentement
  4. Communication des données: Les données ne seront pas communiquées à des tiers sauf obligation légale.
  5. Stockage des données: base de données hébergée par Occentus Networks (EU)
  6. Droits: à tout moment, vous pouvez limiter, récupérer et supprimer vos informations.

  1.   animé dit

    Bon conseil.

  2.   KZKG ^ Gaara dit

    Génial.

    Il y a quelques années je me suis retrouvé dans le besoin de faire ça moi-même, ce que je ne savais pas c'était le umask ... j'ai plutôt mis une tâche dans la crontab 🙂

    Merci pour le conseil

    1.    thalskart dit

      Oui, le crontab est bon aussi. Qu'avez-vous mis, pour attribuer 775 autorisations au contenu?

  3.   brutBasique dit

    Bon conseil .. .. sauvegardé si nécessaire;) ..

  4.   Luis dit

    Ok, vous créez le dossier / home / shared et lui assignez le groupe "shared" mais

    À quel utilisateur appartient ce dossier? Autrement dit, qui est le propriétaire? Moi, l'autre personne ou l'utilisateur root dont le compte est désactivé depuis que j'utilise sudo?

    D'un autre côté, je trouve le problème suivant: les fichiers que je crée ne peuvent pas être supprimés par l'autre personne et les fichiers créés par l'autre personne ne peuvent pas être supprimés.

    Je ai eu tort?

    1.    thalskart dit

      Lors de la création du dossier avec sudo, vous devriez être laissé avec root en tant que propriétaire. Vous pouvez également modifier cela avec la commande chown pour affecter un autre utilisateur.

      De l'autre, vérifiez que les fichiers que vous créez le font avec les autorisations 775 (ce qui donne umask 002). S'ils ne disposent pas de ces autorisations, la configuration est peut-être incorrecte.

      De même, il convient de préciser que l'umask affecte tout nouveau fichier créé dans le répertoire, mais s'il déplace ou copie du contenu d'un autre endroit, les autorisations d'origine sont conservées et non celles que nous avons définies dans le répertoire.

      1.    Luis dit

        Hey! Tu as raison.

        J'ai cherché et le problème est causé par la dernière chose que vous dites: lorsque vous déplacez un fichier d'un autre emplacement vers le dossier partagé, les autorisations d'origine sont conservées.

        Y a-t-il une solution à cela?

        Je pourrais utiliser des perles.

      2.    thalskart dit

        Dans ce cas, la meilleure chose à faire serait de mettre un crontab comme KZKG ^ Gaara dit, dans lequel vous pourriez mettre une commande pour attribuer le groupe et les autorisations au contenu du dossier à chaque fois.
        C'est-à-dire quelque chose comme ça dans la crontab:
        sudo chgrp -R compartidos /home/compartido/*
        chmod -R 775 /home/compartido/*

        Pour tout ce qui est nouveau, passez au groupe partagé avec les autorisations 775.

      3.    thalskart dit

        Ignorez le * à la fin de chaque ligne, je pensais à autre chose quand je l'ai mis 😛

      4.    Luis dit

        Merci ami.

  5.   ernesto dit

    Très bon article, mais je préfère avoir une partition séparée, dans laquelle je peux mettre tout ce que je veux partager. J'ai un disque généreux de 500 Go, dans lequel j'utilise 100 Go avec Linux et une partition de 400 Go (ntfs) dans laquelle se trouvent toute la musique, les photos, etc ... Sur mon pc nous sommes deux utilisateurs et chacun peut accéder à la partition ntfs et mettre et supprimer ce que nous voulons, quand nous voulons. Si je ne veux rien partager, j'ai des choses dans mon nom d'utilisateur. 🙂

    1.    Luis dit

      Déjà, c'est une autre façon de le faire mais le problème n'est pas de savoir où mettre les fichiers mais de configurer les permissions et contrôler l'accès des différents utilisateurs.

      Vous pouvez l'avoir sur une partition NTFS, c'est correct, mais vous avez aussi une fragmentation, plus lente que EXT4 et moins de sécurité, bien que s'il est bon pour vous de l'avoir de cette façon, elle est également valable.

  6.   rainerhg dit

    D'accord! Bon conseil, mais j'ajouterais quand même une tâche pour changer les autorisations à 775 des nouveaux fichiers à chaque connexion, et résoudre le problème des fichiers déplacés d'un autre dossier.
    Aussi, merci beaucoup pour le partage!

  7.   Joaquin dit

    Intéressant, merci!

  8.   anonyme dit

    Je soulève quelque chose par rapport au groupe de partage principal de certaines distributions gnu / linux. Certaines distributions créent l'utilisateur avec les utilisateurs du groupe principal et n'utilisent pas un groupe principal égal au nom de l'utilisateur.
    La différence est qu'en utilisant les utilisateurs du groupe principal, par défaut, tout est partagé avec les utilisateurs du groupe auquel tous les utilisateurs créés dans cette distribution appartiendront, si au contraire ils sont créés avec le même groupe que le nom de l'utilisateur, par défaut pas rien ne sera partagé.

    exemple:
    $ ls -l /home/user/*.txt
    -rw-r - r– 1 carlos carlos 126 25 mars 2012 notes.txt

    $ ls -l /home/user/*.txt
    -rw-r - r– 1 utilisateurs carlos 126 25 mars 2012 notes.txt

    Je ne recommande pas d'utiliser les utilisateurs du groupe principal, mieux vaut créer votre propre groupe principal lors de la création de l'utilisateur.

    #groupadd carlos
    # useradd -g carlos -G lp, wheel, uucp, audio, cdrom, cdrw, usb, lpadmin, plugdev -m -s / bin / bash carlos

    Le -g carlos indique d'utiliser le groupe parent carlos.
    Vous pouvez changer le groupe principal d'un utilisateur avec # usermod -g mais cela ne changera pas le groupe principal de tous les fichiers et dossiers qui se trouvent déjà dans / home / carlos, vous devrez tous les changer.

    Exemple: changer les utilisateurs du groupe principal de l'utilisateur carlos en carlos du groupe principal, puis changer
    toutes les autorisations de fichiers et de dossiers de l'utilisateur carlos afin qu'ils restent de carlos carlos.

    #groupadd carlos
    # usermod -g utilisateurs carlos
    # cd / home
    # chown -R carlos: carlos carlos

    En ce qui concerne le partage, vous pouvez créer un utilisateur appelé partagé avec votre groupe principal partagé, et pour qu'il n'y ait aucun problème d'autorisation lors de la copie, vous devez d'abord changer l'utilisateur
    avec "$ su - shared" alors ce que vous voulez est copié dans / home / shared, avec cela les permissions de ce qui est copié deviendront l'utilisateur partagé.
    S'il existe déjà des fichiers de copie appartenant à d'autres utilisateurs et groupes principaux, vous devez tous les modifier.

    # cd / home
    # chown -R shared: partagé partagé

    Il ne reste que quelque chose dans les limbes, ce que je ne sais pas faire pour copier graphiquement en tant qu'utilisateur partagé, c'est-à-dire sans avoir à faire $ su - shared

  9.   anonyme dit

    C'était une chose très idiote de copier graphiquement, hehe, j'utilise pcmanfm ici dans openbox, mais vous pouvez utiliser le gestionnaire de fichiers que vous avez ou que vous voulez, il n'est exécuté qu'en tant qu'utilisateur partagé et non en tant qu'utilisateur root.

    $ su - partagé
    $pcmanfm
    $ dauphin
    $mc
    etc etc

    1.    thalskart dit

      J'étais sur le point d'y répondre. Sinon, l'autre est un crontab qui change le propriétaire des fichiers à chaque x fois avec un
      chown -R compartido:compartido compartido

  10.   Hugo dit

    Il me semble que la commande "usermod -G thenewgroup elusuario" change fondamentalement le groupe de l'utilisateur en "thenewgroup". Pour ajouter un utilisateur existant à un nouveau groupe, je pense que la bonne chose à faire serait "usermod -aG elnuevogrupo elusuario"

    Une autre chose est que je vois ici que plusieurs personnes recommandent de faire un "chmod -R 775" mais cela affecte non seulement les répertoires, mais aussi tous les fichiers (les rendant exécutables), ce qui introduit un risque inutile. Mieux vaut faire quelque chose comme «find / home / shared -type d -print0 | xargs -0 chmod 755 "et si nécessaire avec les fichiers, vous pouvez faire quelque chose de similaire mais en utilisant" -type f "et en accordant la permission 664.

    Enfin, une façon de faire en sorte que plusieurs comptes aient accès à un fichier ou un dossier quel que soit le propriétaire ou le groupe est d'utiliser la commande "setfacl" qui se trouve dans le package acl (si je me souviens bien). Son utilisation est bien expliquée sur la page de manuel.

  11.   Unai martin dit

    J'ai le problème suivant. J'ai créé 4 utilisateurs (web1, web2, web3, web4) et je souhaite créer un dossier de groupe d'accès aux utilisateurs du groupe Web. Lorsque je crée le fichier .htaccess, je sais que je dois mettre require valid-user, mais, si je mets require valid-user web1 web2 web3 web4 afin qu'ils puissent accéder au dossier avec leur mot de passe, quand j'essaye d'accéder au dossier il me demande le nom d'utilisateur et le mot de passe de chacun. Comment puis-je obtenir uniquement le nom d'utilisateur et le mot de passe de celui qui veut entrer? car l'un n'est pas censé connaître le mot de passe de l'autre.

  12.   Gustavo F.Paredes dit

    Salut.

    Le 4ème terminal doit avoir le pluriel «partagé»:

    sudo usermod -G a partagé sebastian

    sudo usermod -G a partagé mywoman

    Salutations.

    Gustavo

  13.   Ivan dit

    À votre santé :

    Nous migrons de Windows Server vers CentOs 6 et nous sommes toujours en phase d'adaptation. Ma requête: Existe-t-il une interface graphique dans CentOs pour partager des dossiers et donner accès aux utilisateurs pour modifier, éditer et / ou supprimer des fichiers?, Ou dois-je suivre toute la procédure ci-dessus.

    Merci pour l'aide.

    1.    Rafael dit

      J'installe également un centos 6 et je souhaite l'utiliser avec samba qui me permet de partager des fichiers depuis Linux et Windows, je sais un peu, je n'utilise pas beaucoup Linux, mais au travail on m'a demandé, comment puis-je faire pour partager des dossiers mais en mode graphique ??.

  14.   Ricardo dit

    Salut. S'il vous plaît, aidez-moi! ... Il s'avère qu'en faisant cela dans mon esprit d'utilisateur Linux, maintenant j'ai perdu les privilèges. Je ne peux rien exécuter comme sudo. J'obtiens le message suivant "Excusez-moi, l'utilisateur" username "n'est pas autorisé à exécuter" command_to_run "en tant que root dans" username ""

    Je pense que lorsque j'ai changé d'utilisateur pour le groupe partagé, j'ai enlevé des privilèges, et maintenant comment les restaurer ???

  15.   Facture dit

    Hé ami, existe-t-il un moyen de faire la même chose, mais partager des fichiers avec d'autres personnes sur le réseau local Internet

  16.   Fabian dit

    Pour cela, vous devez utiliser SAMBA comme serveur de fichiers. Cordialement

  17.   David dit

    Salut. Quand je suis arrivé à la commande sudo chmod g + s dirname, cela m'indique que le fichier ou le répertoire n'existe pas. Sais-tu quel est le problème?

  18.   Javier Quiroga Almeida dit

    Comment créer un groupe dans un autre groupe?

  19.   Rodrigo Hernán Ramos dit

    La ligne:
    sudo usermod -G a partagé sebastian

    devrait être:
    sudo usermod -a -G partagé sebastian

    la première méthode supprime le reste des groupes de l'utilisateur.
    et si vous transpirez, vous perdez vos privilèges