GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment créer une partition Ext4 pour tous les utilisateurs ?

Je sais que cela ressemble à une question en double, mais j'ai essayé ce qui suit et cela n'a pas aidé :

Mon disque est monté sous

/media/data

donc j'ai entré

sudo chown -R :users /media/data

Cependant, je ne peux toujours pas écrire sur cette partition en tant qu'utilisateur.
J'ai également essayé de créer une entrée dans le /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 trouvait pas le disque.

J'ai installé le serveur Ubuntu 14.04. La partition est répertoriée sous /dev/nvmeOn1p1
et n'apparaît pas dans le /etc/fstab (voir photos ci-dessous).

(l'appareil est un SSD "Intel DC P3700" de 800 Go)

Remarque supplémentaire :
Puisque la partition est vide, je pourrais également la formater et la recréer en utilisant gparted par exemple. Existe-t-il un moyen dans gparted ou dans d'autres programmes d'interface graphique de spécifier que la partition doit être utilisable par tous les utilisateurs ?

Réponse acceptée :

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 qu'il contient appartient à l'utilisateur root et au groupe root avec les autorisations par défaut de 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 fonctionnera 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 puis modifier les autorisations et la propriété sur celui-ci. Peu importe ce que vous faites dans /etc/fstab.

La bonne façon de procéder 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 en utilisant fallocate -l 100MB /tmp/filesystem.img . Formatez-le ensuite en tant que système de fichiers ext4 avec sudo mkfs.ext4 /tmp/filesystem.img (ce n'est pas un périphérique bloc, mais si vous répondez oui, vous pouvez quand même y mettre un système de fichiers ext4 fonctionnel) et créez un répertoire à utiliser comme point de montage mkdir /tmp/experiment .

Essayez maintenant 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 ceci :

 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 mettre des fichiers, par exemple avec touch /tmp/experiment/somefile .

Montez maintenant le système de fichiers sur ce répertoire avec sudo mount /mnt/filesystem.img /tmp/experiment , et regardez à nouveau ls sortie :

$ 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 voir, maintenant /tmp/experiment semble appartenir à root, avec des permissions différentes ! Pourquoi? Parce que nous ne regardons pas /tmp/experiment lui-même, mais le répertoire racine du système de fichiers contenu dans /mnt/filesystem.img, monté sur /mnt/experiment.

Connexe :18.04 : Pourquoi Xorg et Xwayland ?

De plus, votre utilisateur normal ne pourra pas y mettre de fichiers avec touch /tmp/experiment/anotherfile .

Si vous essayez à nouveau d'exécuter chown et chmod comme ci-dessus, vous changerez 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 cela, regardez une dernière fois la sortie de ls :

$ 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 sur le système de fichiers ! En fait, rien n'empêche votre utilisateur normal d'y 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! 🙂


Ubuntu
  1. Comment créer un répertoire partagé pour tous les utilisateurs sous Linux

  2. Comment définir des variables de chemin pour tous les utilisateurs sur un serveur ?

  3. Comment installer un module pour tous les utilisateurs avec pip sous linux ?

  4. Comment faire pour que sudo demande le mot de passe root ?

  5. Comment lister tous les utilisateurs avec root ?

Comment créer un utilisateur Sudo sur Ubuntu

Comment créer un nouveau système de fichiers Ext4 (partition) sous Linux

Comment installer Gibbon sur Ubuntu 16.04

Comment lister tous les utilisateurs sous Linux

Comment changer le mot de passe sudo dans Ubuntu

Comment créer un utilisateur Sudo dans Ubuntu Linux