Risoluzione dei problemi di autorizzazione quando si utilizza un disco rigido EXT4 esterno con più installazioni di Linux


18

Ho un disco rigido esterno e poiché utilizzo solo Ubuntu e Fedora, decido di formattare il mio disco rigido su ext4, tutto va bene.

Il problema è che quando monto l'unità ho bisogno di cambiare l'autorizzazione in modo da poter leggere e scrivere.

Che tipo di autorizzazione dovrei usare? ammetti il ​​mio nome utente?

Risposte:


5

Anche se potrebbe essere da parte mia, dovrò rispondere alla domanda con un'altra domanda. Se tutto ciò di cui stiamo parlando è per un sistema operativo, lo sarebbe anche

sudo chown -R (user name) /dev/(device name)

( ubuntu )

o solo

chown -R (user name) /dev/(device name)

fedora - nosudo, basta eseguire il comando da root.

La parte scratcher della tagliatella, e la parte per cui non ho buone risposte, è come farlo in modo da non dover digitare nuovamente manualmente quando si va avanti e indietro tra le distro. Sarei quasi tentato di aggiungere la linea alla mia ~/.bashrc, ma probabilmente c'è un modo migliore che non conosco o non ho ancora pensato.


Che cosa ho bisogno di cambiare l'autorizzazione ogni volta che cambio di distribuzione
Javier Gonzalez,

1
Solo per essere sicuro e soddisfare la mia curiosità intellettuale, sono tornato e ricontrollato con un drive USB EXT4 che ho. Non sapevo se prendere la proprietà del dispositivo è la stessa cosa di prendere la proprietà del filesystem, e lo è. sudo chown -R (nome utente) / dev / (nome dispositivo) ti rende proprietario di tutti i file sul disco, anche se non li hai creati.
user2367

Sì, a parte l'aggiunta della linea a ~ / .bashrc in modo che venga eseguita automaticamente ogni volta che si esegue il terminale, non ho una risposta a questo. Forse potresti aggiungerlo a cron? Ma sembra che ci dovrebbe essere solo un modo per organizzare l'esecuzione quando la distribuzione si avvia.
user2367

Adoro ext4 ma è una cazzata continuare a cambiare il permesso ahah
Javier Gonzalez

10

La soluzione più semplice è assicurarsi che i tuoi account utente Ubuntu e Fedora abbiano lo stesso ID utente (UID).

Penso che Fedora avvii gli account utente a 500 per impostazione predefinita, mentre Debian e Ubuntu li avviano a 1000, quindi è molto probabile che in un sistema operativo tu sia il numero utente 500 e nell'altro tu sia il numero utente 1000. Il file system utilizza questo numero UID per tenere traccia delle autorizzazioni, quindi se ti assicuri che abbiano lo stesso UID, saranno considerati lo stesso utente e non si verificheranno problemi di autorizzazione.

Penso che il meglio che puoi fare sia renderli entrambi UID = 1000, quindi cambia l'UID nel sistema Fedora, quindi assicurati che tutti i file sul disco esterno e nella $ HOME dell'utente nell'installazione Fedora siano di proprietà dell'UID 1000. Dopo che non dovresti più avere problemi di autorizzazione.


Sì, lo farò grazie per il tuo tempo :)
Javier Gonzalez,

1
Si prega di leggere anche la mia aggiunta o l'utente Fedora non sarà in grado di accedere!
gennaio

Tutto è chiaro lo proverò adesso, anche grazie per modificare il titolo della domanda ora è molto chiaro.
Javier Gonzalez,

3

In / etc / fstab potresti mettere uid = 1000 (in Ubuntu - è 500 in Fedora) affinché l'unità sia di proprietà del tuo utente (supponendo che tu sia il primo utente, yada yada yada ... in caso contrario, il tuo utente uid from id) e umask = 000 se si desidera che tutti gli utenti abbiano accesso (o 077 solo per quello specificato da uid = - è una maschera, quindi si mette l'opposto di quello che si vorrebbe chmod)

Per maggiori informazioni sull'uso di / etc / fstab: http://ubuntulinuxtipstricks.blogspot.com/2008/02/fun-with-etcfstab.html


1
Se imposto il permesso su 077 non ho bisogno di cambiare l'autorizzazione quando cambio da Ubuntu a Fedora?
Javier Gonzalez,

@Dracirate: penso che potresti aver bisogno di 000 anziché 077. Se inserisci una voce fstab per l'unità in ciascun sistema (sia Ubuntu che Fedora), la monteranno automaticamente in modo che sia utilizzabile.
maco,

3

Sfortunatamente il kernel Linux impone l'autorizzazione POSIX su FS ext2 / ext3 / ext4.

È possibile aggirare l'autorizzazione POSIX con un gruppo condiviso. Faccio la domanda corrispondente: /unix/273144/predefined-group-ids-across-linux-distros/ ma dopo tutto ho fatto la mia ricerca.

Scopro che il gruppo sys condivide l'id 3 su Debian, Ubuntu, RedHat, Fedora, CentOS, Suse, FreeBSD, OpenBSD, NetBSD, MacOSX, Solaris.

Tenendo presente questa scoperta, una soluzione potrebbe apparire come:

$ sudo chgrp -R sys /mnt/data/dir
$ sudo chgmod -R g+s /mnt/data/dir
$ sudo fsetacl -R -m g:sys:rwx /mnt/data/dir
$ sudo fsetacl -R -d -m g:sys:rwx /mnt/data/dir

e sapore di questo (ogni volta che sei su Linux / FreeBSD / MacOSX / Solaris):

$ sudo adduser user sys

Guarda anche:


Usando questo metodo, l'esecuzione di cd /mnt/data/dir; touch example.txt; ls example.txt ... spettacoli ... -rw-rw----+ 1 user user 3 nov 27 20:16 example.txt. L'esecuzione successiva mv example.txt ~; ll ~/example.txt... mostra ... -rw-rw----+ 1 user user 0 nov 27 21:22 /home/user/example.txt, con quella +alla fine delle autorizzazioni. Quindi molti +finiranno per apparire in molti posti, facendo meravigliare le persone perché quei file sono speciali (solo perché sono stati copiati / spostati da una cartella particolare). C'è un modo per interrompere la produzione +automatica?
Ganton,

2

Potresti semplicemente provare a usare exfat o ntfs. Per me funziona così. Ma ora non funziona se funziona con tutte le autorizzazioni dei file. Penso di no.


2

Questa è una leggera variazione dell'approccio di @ gavenkoa all'utilizzo di gruppi condivisi e non comporta la modifica dell'unità montata.

Controllare quale ID gruppo (GID) viene utilizzato nell'unità montata.

su
cd /mnt/data/dir  # or wherever it is mounted
ls -l

Diciamo che vedi qualcosa di simile al seguente:

drwxr-xr-x 3 12588 12000  4096 30.06.2017 11:22 Documents/

Questo significa che 12000è il GID corrente dei dati nell'unità e che i dati possono essere letti ed eseguiti (non possono essere scritti, tuttavia) da nessun altro utente del gruppo. Crea un nuovo gruppo (ad es. driveusers) E aggiungi il tuo attuale utente al nuovo gruppo:

groupadd -g 12000 driveusers
sudo gpasswd -a $USER driveusers  # add the current user to the new group
sudo chmod 770 /mnt/data/dir      # optional, just to ensure the drive mount is accessible to user and group of the drive

1

Ho trovato queste altre soluzioni:

/unix/422656/how-to-make-an-ext4-formatted-usb-drive-with-full-rw-permissions-for-any-linux-m/468933#468933

/unix//a/273705

Con questo:

sudo chgrp -R sys /mnt/data/dir
sudo chmod -R g+s /mnt/data/dir
sudo setfacl -R -m g:sys:rwx /mnt/data/dir
sudo setfacl -R -d -m g:sys:rwx /mnt/data/dir

e sapore di questo:

sudo adduser user sys  

il tuo utente sarà in grado di leggere / scrivere qualsiasi file su /dir.

@jadelord @ gavenkoa, per favore, pensi che ci siano miglioramenti che potrebbero essere fatti oggi sulle soluzioni suggerite per gli utenti Ubuntu (o Fedora)? Grazie

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.