Come montare unità HFS + e ignorare le autorizzazioni


25

Ho installato Ubuntu e Windows sul mio MacBook e Ubuntu è il mio sistema operativo principale; tuttavia, tutti i miei media rimangono sulla mia partizione OSX. Voglio essere in grado di accedervi (almeno nella cartella home del mio utente OSX) da Ubuntu senza dover avviare un lettore multimediale (o qualsiasi altra cosa) come root. Inoltre, poiché occasionalmente desidero avviare la mia macchina in OSX, non voglio cambiare nulla di cui avrei bisogno di cambiare frequentemente (leggo molto sulla modifica dell'UID: non capisco esattamente cosa questo comporta, ma non vorrei cambiare il mio UID avanti e indietro a seconda del sistema operativo che sto usando. Allo stesso modo, non voglio cambiare le autorizzazioni del file system avanti e indietro).

Inoltre, ho visto qualcosa sull'opzione "noowner", ma questo non sembra fare quello che voglio.

Quindi immagino che mi piacerebbe poter fare qualcosa del genere:

sudo mount -t hfsplus -o noowner /dev/sda2/ /media/Mac

E quindi essere in grado di accedere a tutti i miei file multimediali (almeno tutto nella cartella Home del mio utente OSX) senza passare come root. (per chiarezza: la voce della riga di comando sopra non fa quello che voglio che faccia, ma voglio essere in grado di fare qualcosa di simile).

O sarebbe meglio cambiare il mio UID? E se sì, come?


Puoi dare un'occhiata alla mia risposta. Credo di aver risposto alla tua domanda più correttamente della risposta contrassegnata.
Catskul,

@Catskul No, non posso. Questa domanda ha più di 2 anni - a quel tempo, ho venduto il mio MacBook e riprodurre questo problema allo scopo di convalidare la tua risposta è proibitivamente difficile.
weberc2,

Risposte:


28

bindfsè la risposta. Ci vorrà un file system già montato e fornirà una visione di esso con qualunque cosa tu voglia:

sudo apt-get install bindfs
mkdir ~/myUIDdiskFoo
sudo bindfs -u $(id -u) -g $(id -g) /media/diskFoo ~/myUIDdiskFoo

Il carico su CPU e memoria è piuttosto sostanziale, però. Se questo è un problema, consiglierei la soluzione di @ weberc2. Altrimenti ottima risposta.
dal

bindfs è stato traballante per me. ho usato la risposta per questo post askubuntu.com/questions/315078/… invece
krumpelstiltskin,

Buona risposta (potenziata) ma richiede l'installazione di bindfs. Perché non è così bello? Bene, questo è il mio caso insolito: un amico mi dà il vecchio MacBook (non so se Pro) per il backup dei dati da MacOS senza avvio. Provo l'ultima versione di Ubuntu e senza fortuna (crash del driver nouveau, nomodeset non aiuta). Quindi inizio con le versioni di Ubuntu fino a quando non ne trovo una che si avvia, 9.10 (sì), i server repo non sono più online. bindfs non può essere installato. La risposta accettata risolve quel problema.
Hatoru Hansou,

19

Non sono riuscito a capire come ignorare le autorizzazioni, ma ho finito per modificare l'UID sul mio account Ubuntu in modo che corrisponda al mio account OSX:

sudo useradd -d /home/tempuser -m -s /bin/bash -G admin tempuser
sudo passwd tempuser

Inserire una nuova password. Esci, accedi come "altro" con nome utente "tempuser" e la password che hai scelto in precedenza. Apri un terminale e digita:

sudo usermod --uid 501 yourusername
sudo chown -R 501:yourusername /home/yourusername

* cambia "tuo nome utente" con il tuo nome utente non temporaneo e 501 con l'UID del tuo account Mac (il primo account Mac inizia da 501, ma gli utenti successivi avranno UID diversi).

Disconnettersi da tempuser e accedere nuovamente al proprio account normale (questo è importante; non limitarsi a cambiare utente: accadono cose brutte). Apri una finestra del terminale e digita:

sudo userdel -r tempuser

Per maggiori dettagli, visita questa pagina .

Avvertenze

  • Solo un utente Linux può ottenere l'accesso. Questa configurazione non consentirà a più utenti linux di accedere a più directory utente sull'unità HFS +. Questo perché Apple blocca le directory degli utenti (e le directory multimediali come Music) su 700 ( rwx------).
  • Una volta modificato il tuo UID, il gestore degli accessi smetterà di elencare quell'utente. Devi cambiare l' UID_MINopzione in /etc/login.defda 1000a 500.
  • Infine, poiché l'UID utente è stato modificato, l'accesso all'unità diventa una confusione di autorizzazioni. Dovrai annotare l'esatta posizione della cartella principale dell'utente per visualizzarla. I completamenti delle schede e la navigazione attraverso il file manager diventeranno problematici per le cartelle esterne alla cartella principale dell'utente Apple originale senza sudo.

l'approccio usermod ha funzionato per me. assicurati di rimuovere / media / USERNAME se vuoi usare le unità USB. askubuntu.com/questions/583375/…
krumpelstiltskin

Per il tuo avvertimento 1, 700 è davvero il valore predefinito per le directory degli utenti in OS X, ma non c'è alcun problema a cambiarlo se non ti soddisfa, ad esempio a 755.
fkraiem

Mentre si utilizza sudo per inviare comandi e avviare nautilus con sudo consente l'accesso a qualsiasi directory in MacOS HD, il metodo uid è il migliore quando è necessario più che accedere semplicemente ai file, ad esempio trasferirli in una cartella condivisa in un altro computer (usando samba, per esempio). L'istanza nautilus elevata non può esplorare la rete, come una normale istanza nautilus, ma non ti consente di copiare e incollare da MacOS HD. Dare a un tempuser l'UID 501 ha risolto il problema per me, permettendomi di eseguire il backup dei dati da un MacOS senza avvio in una cartella condivisa.
Hatoru Hansou,

Per il 16.10, ad eccezione di UID_MIN, è necessario aggiungere GID_MIN=500anche/etc/login.def
disegna il

5

La documentazione per l'implementazione del kernel linux del filesystem HFS + elenca uidun'opzione di mount che ti permette di "possedere" tutti i file (e forse anche alcune altre opzioni che potrebbero essere utili).


Ho provato a farlo, ma non so quale UID dovrei usare. Ho letto che è qualcosa come 501 per OSX, ma l'account non è l'utente OSX originale. Come posso trovare queste informazioni?
weberc2,

@ weberc2: ls -l /media/YourHFSdisk/ti mostrerà l'UID e il GID dei file / cartelle correnti. I dischi HFS + che trovo sembrano essere per lo più di proprietà di uid 99 e gid 99. Tuttavia, ho provato varie combinazioni di impostazioni uid / gid / umask nel comando mount, e non sembra aver cambiato nulla.
mivk

Questo non ha funzionato per me. Dalla documentazione: "uid / gid \ n Specifica l'utente / gruppo che possiede tutti i file sul filesystem che hanno strutture di autorizzazione non inizializzate." Sfortunatamente, tutti i file sul mio filesystem sono ancora di proprietà di 501 (ovvero hanno strutture di autorizzazioni inizializzate (?))
Colin,

2

So che questo è vecchio, ma c'è un altro modo per aggirarlo che sembra funzionare bene per me. Poiché tutti i file erano di proprietà di un utente "root", tutto ciò che ho fatto è stato emesso su rootdal terminale e ls -lah /media/Macintosh HDda lì. Usando il root, sono stato in grado di bypassare l'errore di autorizzazione negata.


semplice e subdolo
SYK,

1

Sono stato in grado di accedere ai file da un vecchio disco rigido del Macbook eseguendo il file manager con privilegi elevati.

gksudo thunar

Quindi copia i file secondo necessità.


0

Questa opzione generale che sto usando funziona perfettamente

mkdir /media/test
mkdir /media/diskhfs
mount /dev/sdb1 /media/test -o rw
bindfs -o perms=775,mirror=userorid --map=99/userorid:@99/@uderorid /media/test /media/diskhfs
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.