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!
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 A
et un accès en écriture au reste de la partition Windows", ou "accès en lecture seule au sous-répertoire A
et 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:
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
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.
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
.
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
.
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.#AnyOtherOptions#
avec toutes les autres options dont vous disposez. Par exemple, vous pourriez avoir auto
qui monte automatiquement la partition au démarrage.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.
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.
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)
Créer un point de montage pour l'utilisateur ROOT
Sudo mkdir /root/win
Créer un point de montage pour un utilisateur normal
mkdir /home/$USER/folder
mkdir /tmp/folder
Monter la partition Windows en mode écriture
Sudo mount /dev/disk/by-label/winOS /root/win
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
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 ).