web-dev-qa-db-fra.com

Comment gérer les autorisations sur un volume partagé pour OSX et Ubuntu

Sur mon Mac, j'utilise une partition HFS non journalisée pour partager des fichiers entre OSX 10.8 et Ubuntu 12.04.

Au début, c’était une bonne idée, car Time Machine sauvegardera automatiquement le volume sous OSX, mais j’ai vite remarqué que OSX et Ubuntu dérangeaient l’autorisation d’une manière qui rende les choses plus compliquées pour moi.

Ainsi, afin de pouvoir visualiser et modifier complètement les fichiers, je continue d'utiliser chmod pour appliquer des autorisations qui me permettront d'utiliser pleinement un document. Mais je ne comprends pas pourquoi je dois continuer à appliquer des modifications encore et encore.

Est-il possible de définir une sorte d'autorisation de manière permanente afin que les deux systèmes d'exploitation respectent en permanence?

Je suppose que 777 fonctionnera, mais je pensais que ce n’était pas une bonne chose à faire. Mais tant que "les autres" ne disposent pas d'un accès complet (troisième tiers), je vois une icône de verrou sur le fichier dans Ubuntu.

8
user24668

Les noms d'utilisateur ne sont pas pertinents. Les autorisations dans les systèmes de fichiers natifs HFS + et Linux sont stockées sous la forme d'ID utilisateur (UID), qui sont des nombres associés aux noms d'utilisateur. Dans Ubuntu, comme dans la plupart des distributions Linux modernes, le premier utilisateur reçoit un UID de 1000 par défaut. Sous OS X, le premier utilisateur reçoit un UID de 501 par défaut. Ainsi, lors du partage de supports codant des valeurs UID, les valeurs UID risquent de ne pas correspondre.

Une façon de résoudre ce problème consiste à définir des autorisations lâches (la valeur de mode, comme dans rwxr-xr-x, ou 755 en octal). Notez que le code octal des autorisations n’est pas identique à la valeur UID. Dans l'un ou l'autre système d'exploitation, vous pouvez définir les autorisations par défaut utilisées sur les fichiers à l'aide de la commande umask, qui spécifie que la valeur du bit doit être supprimée des autorisations de fichier. Par exemple, umask 022 supprime les autorisations d'écriture pour le groupe et les autres autorisations, ce qui donne 755 autorisations (rwxr-xr-x) sur les nouveaux fichiers (ou 644 si quelque chose supprime le bit d'autorisation d'exécution, pratique courante pour les fichiers). . Ceci est en grande partie un outil de ligne de commande, cependant; Si vous utilisez principalement l'interface graphique, vous devrez trouver un autre outil, probablement lié aux paramètres par défaut de votre environnement de bureau. Cela peut être obscur et mal documenté. De même, définir des autorisations lâches de cette manière peut présenter des inconvénients en matière de sécurité, en particulier si votre système est multi-utilisateur.

Une meilleure approche consiste à synchroniser les UID de votre compte sous Linux et OS X. Vous pouvez facilement modifier la valeur de l'UID sous Linux à l'aide de la commande usermod, comme suit:

usermod -u 501 dale

Cette commande définit l'UID pour dale sur 501. Il y a toutefois des mises en garde importantes:

  • Vous devez vous déconnecter du compte que vous modifiez avant de le modifier. Essayer de modifier un compte en cours d'utilisation provoquera un comportement étrange de ce compte.
  • usermod doit être utilisé comme root. Vous pouvez l'exécuter via Sudo, mais il est déconseillé de le faire à partir du compte que vous modifiez. Ainsi, vous devrez soit donner un mot de passe à root et vous connecter à root directement, soit utiliser Sudo à partir d'un deuxième compte utilisateur.
  • La commande usermod ne changera pas la propriété des fichiers appartenant à l'utilisateur en question. Pour ajuster la propriété de ces fichiers, vous devez les localiser, puis modifier leur propriété avec chown. La plupart des fichiers seront dans le répertoire personnel de l'utilisateur. Ainsi, chown -R dale: /home/dale, saisi sous la forme root après la modification de l'UID de dale, modifiera la plupart des fichiers de dale pour utiliser le nouvel UID. nombre. Certains fichiers de l'utilisateur peuvent cependant être situés ailleurs. En tapant find / -uid 1000, vous trouverez tous les fichiers qui utilisent l'ancien UID (en supposant qu'il s'agisse de 1000). Notez que cette commande find prendra probablement plusieurs minutes. Pour l'accélérer, démontez tous les systèmes de fichiers sur lesquels vous êtes certain de ne trouver aucun résultat, tels que les volumes FAT ou NTFS.
  • Si vous accédez aux volumes FAT ou NTFS, leurs valeurs UID sont déterminées par les options au moment du montage. Si vous utilisez un gestionnaire de fichiers GUI, il est probable que la valeur de l'UID soit définie pour celui qui l'exécute. Vous n'avez donc rien à faire de spécial. Si vous montez le volume via une entrée /etc/fstab, vous devrez peut-être ajuster la valeur UID spécifiée.
  • Ubuntu stocke la valeur minimale utilisée pour les UID dans /etc/login.defs. Si vous ne modifiez pas la valeur UID_MIN dans ce fichier, vous découvrirez probablement que votre compte semblera "disparaître" de l'écran de connexion de l'interface graphique et peut-être de certains autres systèmes. Ainsi, vous devriez éditer ce fichier.

En théorie, vous pouvez modifier l’UID de votre/vos compte (s) OS X de la même manière pour atteindre le même objectif. Cependant, je suis moins familier avec les outils de maintenance de compte OS X et je ne peux donc pas donner d'instructions explicites à cet effet. Ajuster les valeurs de OS X aurait l'avantage de ne pas avoir à ajuster UID_MIN sous Linux.

Si vous avez plusieurs comptes sur votre ordinateur, vous devez les ajuster tous pour les garder tous synchronisés sur toutes les installations de votre système d'exploitation.

Un autre point: la valeur Group ID (GID) est stockée de manière similaire. IIRC, Ubuntu attribue à chaque compte une valeur GID identique à sa valeur UID. Je ne me souviens pas de ce que fait OS X par défaut. Vous voudrez peut-être ajuster les valeurs GID des deux systèmes d'exploitation de manière analogue aux modifications d'UID, mais cela ne sera probablement pas aussi important que d'ajuster les valeurs d'UID.

EDIT: Si vous souhaitez modifier votre UID (et votre GID, si vous le souhaitez) dans macOS/OS X plutôt que dans Ubuntu, vous pouvez le faire. Étant donné que cette modification dans macOS dépasse le cadre de ce site, je vais simplement vous renvoyer à quelques pages qui fournissent les procédures permettant de le faire dans macOS:

12
Rod Smith

Ouvrez un terminal et:

Sous OS X, essayez ceci

Sudo dscl / -create /Users/<ubuntu-username>
Sudo dscl / -append /Groups/<os-x-username> GroupMembership <ubuntu-username>

Dans Ubuntu, lancez ceci

Sudo adduser --system --no-create-home --ingroup <ubuntu-username> <os-x-username>

Vous devriez maintenant pouvoir utiliser 774 ou même 770 pour les autorisations de fichiers.

0
edwin

J'ai constaté que vous pouvez parfois cliquer sur un dossier que vous souhaitez partager et appuyer sur commande + I. Ensuite, cliquez sur le verrou et entrez votre mot de passe s'il n'est pas déverrouillé.

Une autre chose qui fonctionne est de configurer un dossier en tant que "dossier partagé". Vous pouvez le faire dans le volet des préférences de partage des préférences système.
Accédez aux préférences système> partage> partage de fichiers. Ensuite, faites partager que la case de partage de fichiers est cochée et ajoutez le dossier que vous souhaitez partager en utilisant le bouton plus. Ensuite, vous pouvez modifier les autorisations pour lire une écriture.

UNE REMARQUE: l’utilisation de la deuxième option ouvrira également votre ordinateur pour vous permettre d’accéder au dossier de votre choix via Internet (uniquement lors du démarrage dans os x) !! Make share vous avez un mot de passe sécurisé et vous le désactivez probablement dans les lieux publics (n'oubliez pas votre chapeau en papier d'aluminium!)

0
aChipmunk