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.
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 acl paquet:
Sudo apt-get install acl
Avant Ubuntu 14.04 , la partition doit être montée avec l'option acl
pour 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 usershare
name__. Un groupe déjà existant pourrait être utilisé.
Sudo addgroup usershare
Maintenant, nous ajoutons les utilisateurs enzotib
et 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 rwx
pour 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 rwx
permissions pour le groupe usershare
pour 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 usershare
ont 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 usershare
name__, 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
.
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**
Créer un groupe myfam.
addgroup myfam
Ajouter des utilisateurs à ce groupe
adduser papa myfam
adduser mom myfam
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
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 users
en 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 users
en tant que groupe principal d'utilisateurs.
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.
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 admin
et clientone
name__
Le compte admin
est le compte créé lors de l'installation d'ubuntu et le compte clientone
est 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 users
name__. 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 mylan
workgroup.
Tous les ordinateurs de mon réseau local sont configurés pour utiliser le groupe de travail mylan
name__.
4. Mon dossier partagé nommé shared
contient 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 mylan
n'ont pas accès au partage via chmod 750
vous pouvez utiliser
Sudo chmod -Rv 755 /shared
Tous les futurs comptes utilisateur du groupe users
ne 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é clientone
name__. Le même nom d'utilisateur et mot de passe que celui créé sur mon serveur Ubuntu. Un deuxième compte nommé clienttwo
est é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 clientone
name__, 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.
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.
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.