web-dev-qa-db-fra.com

Monter le répertoire pour les utilisateurs non administrateurs sur une configuration à double démarrage

J'ai un PC à double démarrage (Ubuntu 12.04 avec gnome, Windows Vista) et l'administrateur utilise tous les lecteurs, y compris le lecteur C de Windows.

Je voudrais permettre aux utilisateurs à privilèges standard de pouvoir lire (pas écrire, seulement accéder à un document) un seul sous-répertoire nommé A depuis le lecteur C.

Donc, dans /etc/fstab fichier, /media/123.../A (C:\A dans Windows) doit être lié au répertoire documents/A des utilisateurs (/home/user/Documents/A), uniquement pour les utilisateurs standard (pas les administrateurs).

Cela devrait également inclure les sous-répertoires de A et tous les fichiers. Y a-t-il un moyen de le faire?
Merci d'avance!

5
bob

Vous pouvez définir des autorisations pour une partition Windows, mais vous ne pouvez pas définir d'autorisations sur des fichiers/dossiers individuels sous la partition; au moment du montage, vous définissez les autorisations sur le lecteur entier.

Dans votre question, vous n'avez pas indiqué si les utilisateurs bénéficiant des privilèges standard doivent avoir "un accès en lecture seule au sous-répertoire Aet un accès en écriture au reste de la partition Windows", ou "accès en lecture seule au sous-répertoire Aet aucun accès au reste de la partition". Malheureusement cependant, ces deux scénarios ne peuvent pas être exactement réalisés, en raison de la première phrase de cette réponse.

Si vous souhaitez accorder à un utilisateur un accès en lecture seule à un dossier spécifique sous la partition Windows, cet utilisateur aura un accès en lecture seule à la partition entière. Si cela vous convient, voici une explication sur la façon de procéder:

  1. Tout d'abord, créez un groupe pour les utilisateurs qui auront un accès en lecture seule. Pour cet exemple, nous utiliserons WindowsRO. Ainsi, la commande pour créer le groupe est:

    Sudo groupadd WindowsRO
  2. Deuxièmement, nous ajouterons les utilisateurs (auxquels nous voulons donner un accès en lecture seule) au groupe. En supposant qu'un utilisateur s'appelle notadmin, voici la commande:

    Sudo usermod -a -G WindowsRO notadmin

    Répétez cette commande pour tous les utilisateurs requis.

  3. Maintenant, nous devons obtenir le GID (ID de groupe) du groupe, car nous l'utiliserons lors du montage du lecteur. Pour ce faire, exécutez ce qui suit:

    grep WindowsRO/etc/group | coupe -d: -f3

    Notez le nombre qui est sorti, car nous en aurons besoin à l'étape 5. Pour cet exemple, je suppose que la sortie est 1003.

  4. Maintenant, nous devons obtenir l'UID (ID utilisateur) du compte administrateur, car nous l'utiliserons lors du montage du lecteur. Cet exemple suppose que le compte administrateur est bob. Pour ce faire, exécutez ce qui suit:

    grep bob/etc/passwd | coupe -d: -f3

    Notez le nombre qui est sorti, car nous en aurons besoin à l'étape 5. Pour cet exemple, je suppose que la sortie est 1000.

  5. Nous allons maintenant modifier le /etc/fstab fichier. Je suppose que la partition Windows en question est /dev/sda2, que vous le montez sur /media/123, et qu'il s'agit d'une partition ntfs. Voici la ligne que vous devriez avoir:

    / dev/sda2/media/123 ntfs rw, gid = 1003, uid = 1000, dmask = 027, fmask = 037, # AnyOtherOptions #
    • gid=1003 est le nombre obtenu à l'étape 3 (le GID du groupe).
    • uid=1000 est le numéro que nous avons obtenu à l'étape 4 (l'UID du compte administrateur).
    • dmask=027 définit les autorisations sur les dossiers comme suit: -rwxr-x---, ce qui signifie que le propriétaire (le compte administrateur) aura un accès complet (rwx) et que le groupe n'aura qu'un accès en lecture (r-x), et personne d'autre n'y aura accès (---).
    • fmask=037 définit les autorisations sur les fichiers: -rwxr-----. Ceci est similaire à dmask; le groupe n'aura qu'un accès en lecture aux fichiers.
    • Vous devez remplacer #AnyOtherOptions# avec toutes les autres options dont vous disposez. Par exemple, vous pourriez avoir auto qui monte automatiquement la partition au démarrage.
  6. Une fois que ce qui précède est fait, faites Sudo mount -a pour appliquer les modifications que nous avons apportées au fichier fstab. J'espère que vous ne devriez pas avoir d'erreurs.

    Vous devez maintenant tester que les utilisateurs peuvent accéder à la partition. Si oui, passez à l'étape suivante pour ajouter ce lien A à leur dossier Documents.

  7. En supposant que le répertoire personnel de notre compte notadmin est /home/notadmin, et que ce dossier A se trouve à /media/123/some/folder/A, procédez comme suit:

    ln -s/media/123/certains/dossier/A/home/notadmin/Documents/A

    Vous devriez maintenant voir un lien sous les documents de notadmin, pointant vers A. Il n'y aura qu'un accès en lecture (et ses sous-répertoires, puisqu'il a un accès en lecture seule à toute la partition). Suivez la même chose pour les autres utilisateurs.

Tout ce qui précède devrait répondre à vos besoins, à l'exception du point que j'ai mentionné au début: quel type d'accès l'utilisateur doit-il avoir sur le reste de la partition? Ce qui précède leur donnera un accès en lecture seule à la partition entière, et pas seulement à la partition A; nous ne sommes pas en mesure de définir des autorisations sur des fichiers/dossiers spécifiques lors du montage de partitions Windows.

5
Alaa Ali

Simplement possible avec overlayfs

Guide pour monter un dossier Windows en mode lecture seule pour un utilisateur normal (mode écriture pour root ou un autre utilisateur)

  1. Créer un point de montage pour l'utilisateur ROOT

    Sudo mkdir /root/win
    
  2. Créer un point de montage pour un utilisateur normal

    mkdir /home/$USER/folder
    mkdir /tmp/folder
    
  3. Monter la partition Windows en mode écriture

    Sudo mount /dev/disk/by-label/winOS /root/win
    
  4. Monter le dossier de Windows Partion en mode lecture seule

    Sudo mount -t overlayfs -o ro,lowerdir=/root/win/folder,upperdir=/tmp/folder  overlayfs /home/$USER/folder
    

Accéder à la partition Windows accessible en écriture en tant qu'utilisateur root

Sudo nautilus /root/win

Accéder au dossier de la partition Windows en lecture seule

nautilus /home/$USER/folder
1
totti

Si vous souhaitez monter un répertoire inscriptible en mode lecture seule sur un autre emplacement, vous pouvez utiliser bind mount.

Par exemple, montez le répertoire home en mode lecture seule @ /tmp/home

Sudo mount --bind ~ /tmp/home
Sudo mount -o ro,remount  /tmp/home

Si vous souhaitez accéder en lecture seule à un dossier spécifique pour un utilisateur normal, montez la partition dans un emplacement inaccessible (exemple /root/abc ).

0
totti