Je sais que cela ressemble à une double question, mais j’ai essayé ce qui suit et cela n’a pas aidé:
Mon lecteur est monté sous
/media/data
alors je suis entré
Sudo chown -R :users /media/data
Cependant, je ne peux toujours pas écrire sur cette partition en tant qu'utilisateur. J'ai aussi essayé de faire une entrée dans/etc/fstab
UUID=... /media/data ext4 rw,suid,dev,exec,auto,user,async 0 0
mais après cela, mon ordinateur ne pouvait plus démarrer car il ne pouvait pas trouver le disque.
J'ai Ubuntu 14.04 Server installé. La partition est répertoriée sous /dev/nvmeOn1p1
et n’apparaît pas dans le /etc/fstab
(voir les images ci-dessous).
(le périphérique est un SSD 800 Go "Intel DC P3700")
Remarque supplémentaire: Puisque la partition est vide, je pourrais aussi la formater et la recréer en utilisant gparted par exemple. Existe-t-il un moyen dans gparted ou d’autres programmes graphiques de spécifier que la partition doit être utilisable par tous les utilisateurs?
J'ai finalement résolu le problème. J'ai découvert que j'avais une faute de frappe dans mon UUID. Donc, ma dernière entrée dans fstab
était:
UUID=... /media/data ext4 defaults 0 0
ou même mieux:
/dev/sdb1 /media/data ext4 defaults 0 0
Je l'ai vérifié avant de redémarrer en appelant simplement:
Sudo umount /media/data
Sudo mount -a
Si l'entrée fstab est correcte, tout se montera correctement et chaque utilisateur de l'ordinateur aura accès à la partition (au moins aux dossiers qu'il a créés lui-même, ce qui est le comportement correct).
Un chat faire
Sudo chown -R UserNameOfSudo:users /media/data
Sudo chmod -R g+rw /media/data
pendant que la partition est toujours montée pour que tout le monde puisse accéder à la partition.
Si vous le faites, assurez-vous que l’utilisateur spécifique fait partie du groupe "utilisateurs" en tapant:
Sudo adduser yourSpecificUsername users
et déconnectez-vous et connectez-vous à nouveau!
Éditer
La partition après le montage par défaut appartient à root. Cela semble empêcher quiconque d'écrire sur la partition. Changer le propriétaire en "UserNameOfSudo" après le montage, comme indiqué ci-dessus, donne le comportement souhaité.
Edit2
Dans le cas du partage de l'ordinateur entre des utilisateurs locaux et des utilisateurs LDAP, une solution consiste à octroyer tous les droits à tous:
Sudo chmod 777 /media/data
et ensuite de définir un "sticky bit", ce qui signifie que seul l'utilisateur qui a créé un dossier/fichier est autorisé à le supprimer. Ce qui ajoute une sécurité sensible:
Sudo chmod o+t /media/data/
Peut-être que vous faites les choses dans le mauvais ordre. Lorsque vous créez un système de fichiers avec mkfs.ext4
, tout ce qui s'y trouve appartient à l'utilisateur root et au groupe root avec les autorisations par défaut définies pour votre système.
Lorsque vous montez ce système de fichiers sur un répertoire, vous voyez les autorisations et le propriétaire du système de fichiers, quels que soient le propriétaire d'origine et les autorisations sur ce répertoire.
Donc, faire quelque chose comme ça ne marchera pas:
Sudo mkfs.ext4 /dev/some/data
Sudo mkdir /media/data
Sudo chown -R :users /media/data
Sudo chmod -R g+rw /media/data
Sudo mount /dev/some/data /media/data
La bonne chose à faire est de créer le système de fichiers, de le monter et de alors modifier les autorisations et la propriété de celui-ci. Peu importe ce que vous faites dans/etc/fstab.
La bonne façon de le faire est la suivante:
Sudo mkfs.ext4 /dev/some/data
Sudo mkdir /media/data
Sudo mount /dev/some/data /media/data
Sudo chown -R :users /media/data
Sudo chmod -R g+rw /media/data
Ceci devrait répondre à votre question. Si vous avez besoin de plus de détails, lisez la suite.
Pour mieux comprendre ce qui se passe, expérimentons un peu avec un fichier image
Créez un fichier vide à formater et à monter à l'aide de fallocate -l 100MB /tmp/filesystem.img
. Ensuite, formatez-le en tant que système de fichiers ext4 avec Sudo mkfs.ext4 /tmp/filesystem.img
(ce n'est pas un périphérique en mode bloc, mais si vous répondez oui, vous pouvez quand même y placer un système de fichiers ext4 opérationnel) et créez un répertoire à utiliser comme point de montage mkdir /tmp/experiment
.
Maintenant, essayez de changer le propriétaire et les autorisations sur ce répertoire avec Sudo chown -R :users /tmp/experiment
et Sudo chmod -R g+rw /tmp/experiment
, et vérifiez les autorisations avec ls -la /tmp/experiment
. Vous obtiendrez quelque chose comme ça:
ls -la /tmp/experiment/
total 0
drwxrwx--x 2 gerlos users 40 feb 19 10:37 .
drwxrwxrwt 8 root root 180 feb 19 10:38 ..
Cela vous indique que/tmp/experiment appartient à l'utilisateur gerlos et aux utilisateurs du groupe, et que les membres du groupe peuvent lire, écrire et exécuter dessus. Vous pouvez y placer des fichiers, par exemple avec touch /tmp/experiment/somefile
.
Maintenant, montez le système de fichiers sur ce répertoire avec Sudo mount /mnt/filesystem.img /tmp/experiment
, et examinez à nouveau la sortie ls
:
$ ls -la /tmp/experiment/
total 13
drwxr-xr-x 3 root root 1024 feb 19 10:41 .
drwxrwxrwt 8 root root 180 feb 19 10:41 ..
drwx------ 2 root root 12288 feb 19 10:41 lost+found
Comme vous pouvez le constater, maintenant/tmp/experiment semble appartenir à root, avec des autorisations différentes! Pourquoi? Parce que nous ne cherchons pas dans/tmp/experiment lui-même, mais dans le répertoire racine du système de fichiers contenu dans /mnt/filesystem.img, monté sur/mnt/experiment.
De plus, votre utilisateur normal ne pourra pas y placer de fichiers avec touch /tmp/experiment/anotherfile
.
Si vous essayez maintenant d'exécuter à nouveau les noms chown
et chmod
comme ci-dessus, vous modifierez le propriétaire et les autorisations non pas sur le point de montage, mais sur le système de fichiers monté, et vos utilisateurs pourront utiliser le système de fichiers. . Pour confirmer ce regard sur la sortie de ls une dernière fois:
$ ls -la /tmp/experiment/
total 13
drwxrwxr-x 3 root users 1024 feb 19 10:41 .
drwxrwxrwt 8 root root 180 feb 19 10:45 ..
drwxrw---- 2 root users 12288 feb 19 10:41 lost+found
Comme vous pouvez le constater, les membres du groupe d'utilisateurs peuvent désormais placer des fichiers dans le système de fichiers! En fait, rien n'empêche votre utilisateur normal de créer un nouveau fichier avec touch /tmp/experiment/myfile
:
$ ls -la /tmp/experiment/
total 13
drwxrwxr-x 3 root users 1024 feb 19 11:05 .
drwxrwxrwt 8 root root 180 feb 19 11:02 ..
drwxrw---- 2 root users 12288 feb 19 10:41 lost+found
-rw-rw---- 1 gerlos gerlos 0 feb 19 11:02 myfile
Mission accomplie! :-)