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.
Donc, dans la console, nous mettons:
sebastian@multivacs ~> vim .profile
Et nous verrons quelque chose comme ça:
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:
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à.
Bon conseil.
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
Oui, le crontab est bon aussi. Qu'avez-vous mis, pour attribuer 775 autorisations au contenu?
Bon conseil .. .. sauvegardé si nécessaire;) ..
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?
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.
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.
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.
Ignorez le * à la fin de chaque ligne, je pensais à autre chose quand je l'ai mis 😛
Merci ami.
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. 🙂
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.
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!
Intéressant, merci!
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
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
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
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.
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.
Salut.
Le 4ème terminal doit avoir le pluriel «partagé»:
sudo usermod -G a partagé sebastian
sudo usermod -G a partagé mywoman
Salutations.
Gustavo
À 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.
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 ??.
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 ???
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
Pour cela, vous devez utiliser SAMBA comme serveur de fichiers. Cordialement
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?
Comment créer un groupe dans un autre groupe?
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