GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Come creare una partizione Ext4 per tutti gli utenti?

So che suona come una domanda duplicata, ma ho provato quanto segue e non ha aiutato:

Il mio disco è montato sotto

/media/data

quindi sono entrato

sudo chown -R :users /media/data

Tuttavia non riesco ancora a scrivere su quella partizione come utente.
Ho anche provato a inserire una voce in /etc/fstab

UUID=... /media/data ext4 rw,suid,dev,exec,auto,user,async 0 0

ma dopodiché il mio computer non poteva più avviarsi perché non riusciva a trovare il disco.

Ho installato Ubuntu 14.04 Server. La partizione è elencata in /dev/nvmeOn1p1
e non appare nel /etc/fstab (vedi foto sotto).

(il dispositivo è un SSD "Intel DC P3700" da 800 GB)

Nota aggiuntiva:
Poiché la partizione è vuota, potrei anche formattarla e ricrearla usando ad esempio gparted. C'è un modo in gparted o altri programmi GUI per specificare che la partizione dovrebbe essere utilizzabile da tutti gli utenti?

Risposta accettata:

Forse stai facendo le cose nell'ordine sbagliato. Quando crei un file system con mkfs.ext4 , tutto ciò che contiene è di proprietà dell'utente root e del gruppo root con le autorizzazioni predefinite del sistema impostate.

Quando monti quel file system su una directory, vedi i permessi e il proprietario del file system, indipendentemente dal proprietario originale e dai permessi su quella directory.

Quindi fare qualcosa del genere non funzionerà:

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 cosa giusta da fare è creare il file system, montarlo e quindi modificare le autorizzazioni e la proprietà su di esso. Non importa cosa fai in /etc/fstab.

Il modo giusto per farlo è questo:

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

Questo dovrebbe rispondere alla tua domanda. Se hai bisogno di maggiori dettagli, continua a leggere.

Per capire meglio cosa succede, sperimentiamo un po' con un file immagine

Crea un file vuoto da formattare e montare usando fallocate -l 100MB /tmp/filesystem.img . Quindi formattalo come file system ext4 con sudo mkfs.ext4 /tmp/filesystem.img (non è un dispositivo a blocchi, ma se rispondi sì puoi comunque metterci un file system ext4 funzionante) e creare una directory da usare come punto di montaggio mkdir /tmp/experiment .

Ora prova a cambiare il proprietario e le autorizzazioni su quella directory con sudo chown -R :users /tmp/experiment e sudo chmod -R g+rw /tmp/experiment e controlla i permessi con ls -la /tmp/experiment . Otterrai qualcosa del genere:

 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 ..

Questo ti dice che /tmp/experiment è di proprietà dell'utente gerlos e degli utenti del gruppo e che i membri del gruppo possono leggerlo, scriverlo ed eseguirlo. Puoi inserire file al suo interno, ad esempio con touch /tmp/experiment/somefile .

Ora monta il file system su quella directory con sudo mount /mnt/filesystem.img /tmp/experiment e guarda di nuovo ls uscita:

$ 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

Come puoi vedere, ora /tmp/experiment sembra di proprietà di root, con permessi diversi! Come mai? Perché non stiamo guardando /tmp/experiment in sé, ma la directory principale del file system contenuta in /mnt/filesystem.img, montata su /mnt/experiment.

Relazionato:18.04:Perché sia ​​Xorg che Xwayland?

Inoltre, il tuo normale utente non sarà in grado di inserire file lì con touch /tmp/experiment/anotherfile .

Se ora provi di nuovo a eseguire chown e chmod come sopra, cambierai proprietario e autorizzazioni non sul punto di montaggio, ma sul file system montato e i tuoi utenti potranno utilizzare il file system. Per confermare questo aspetto ls output un'ultima volta:

$ 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

Come puoi vedere, ora i membri del gruppo utenti possono inserire file nel file system! In effetti, nulla impedisce al tuo normale utente di creare un nuovo file lì con 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

Missione compiuta! 🙂


Ubuntu
  1. Come creare una directory condivisa per tutti gli utenti in Linux

  2. Come trovare tutti gli utenti Sudo in Linux

  3. Come impostare i privilegi di Sudo per l'utente in Linux

  4. Come impostare le variabili di percorso per tutti gli utenti su un server?

  5. Come eseguire il terminale come root?

Come creare un utente Sudo su Ubuntu

Come creare un nuovo file system Ext4 (partizione) in Linux

Come installare Gibbon su Ubuntu 16.04

Come elencare tutti gli utenti in Linux

Come modificare la password sudo in Ubuntu

Come creare un utente Sudo in Ubuntu Linux