Montare la partizione NTFS all'avvio, con l'utente non root come proprietario


28

Attualmente sto montando una partizione NTFS all'avvio usando la seguente riga in / etc / fstab:

/dev/sda3        /media/data           ntfs      nls=iso8859-1,umask=000

Alla mia installazione di Ubuntu 11.10, sembra che tutti i file e le cartelle siano di proprietà di root- e poiché NTFS non supporta comunque lo stesso sistema di gestione dei diritti, non è possibile cambiarlo una volta completato il montaggio. Indipendentemente da ciò che faccio, in ls -lqualsiasi punto della partizione NTFS verranno elencati tutti i file e le cartelle di proprietà root:root.

Tuttavia, ciò causa alcuni problemi per me. In particolare, alcune applicazioni in esecuzione con il mio account (chiamato tomas) si lamentano dei diritti di accesso. Inoltre, ogni volta che provo a copiare ( cp) o spostare ( mv) file da una delle mie partizioni ext3 alla partizione NTFS, ricevo messaggi di errore che dicono

mv: preserving times for `[path to new file]`: Operation not permitted

o, allo stesso modo

mv: preserving permissions for ...

Montare la partizione con il mio nome anziché con l'aiuto di root? In tal caso, come posso realizzarlo in fstab?


Aggiornare:

Ora ho modificato le opzioni in base ai suggerimenti e sono arrivato a questo:

nls=iso8859-1,permissions,users,umask=000,uid=tomas,gid=tomas

ls -lora mostra tutti i file di mia proprietà anziché quelli di root, e sembra che alcuni dei problemi che ho avuto prima siano risolti. Tuttavia, non tutti.

Quando avvio Eclipse, viene visualizzato un messaggio di errore che indica che non è possibile eseguire un file relativo ad Android-SDK: autorizzazione negata. ls -lmi dice quanto segue sul file:

-rwxrwxrwx 1 tomas tomas 159620 2011-11-29 14:50 adb*

Questo sembra il modo in cui lo voglio. Ma se provo a eseguirlo ( ./adbin un terminale) ricevo anche errori di autorizzazione negata. Ma se lo eseguo sudo, funziona (credo - almeno non mi dà un messaggio di errore, ma non mi dà alcun output, che penso che non dovrebbe ...)

Perché il file sopra, con autorizzazioni di esecuzione per chiunque , non è ancora eseguibile da nessun altro root? Come posso cambiare il modo in cui monto il file system così com'è?


Aggiornamento 2:

OK, ora sono andato un po 'oltre. Montando con queste opzioni

nls=iso8859-1,permissions,users,auto

Ho ottenuto tutte le autorizzazioni impostate nel modo in cui mi aspetto, chowne in chmodrealtà cambio le impostazioni sui file (almeno secondo ls -l) = D

MA il mio sistema si comporta ancora in modo strano. Le autorizzazioni per il adbfile di script vengono visualizzate come sopra, ma né io né Eclipse è possibile eseguirlo senza errori "Autorizzazione negata". Ma per quanto posso vedere il file ha tutte le bandiere richieste impostate ( o=rwxdovrebbe essere sufficiente, giusto?). Perché non funziona?


Aggiornamento 3

OK, ho fatto funzionare tutto sul lato Ubuntu, con le seguenti opzioni:

nls=iso8859-1,permissions,users,auto,exec

Tuttavia, quando provo ad accedere ai file sulla partizione da Windows, le impostazioni di sicurezza sono tutte incasinate. Su tutti i file (di quei pochi che ho esaminato) un nuovo account chiamato Account Unknown(long GUID)è stato aggiunto all'elenco degli utenti e ha tutti i diritti. Le rigidità per la maggior parte degli altri utenti sono diminuite in modo da non avere i diritti per fare cose che mi aspetto. In particolare, "Everyone" non sembra più avere diritto a "Attraversa cartella / esegui".

Questo potrebbe essere risolvibile semplicemente selezionando la partizione e consentire a Tutti di fare qualsiasi cosa nella cartella principale, quindi dirgli di farlo in modo ricorsivo, ma preferirei non temere che ci vorranno giorni per completarlo ...


2
Dal montaggio (8) : users Allow every user to mount and unmount the filesystem. This option implies the options noexec, ... unless overridden by subsequent options, as in the option line users,exec,dev,suid). Quindi aggiungi execalle tue opzioni e credo che il problema di autorizzazione negata per l'esecuzione debba essere risolto.
ben

L'hai mai risolto dopo l'aggiornamento 3? ... A un certo punto ho provato a fare un backup rsync del mio sistema linux su un disco ntfs aggiuntivo che avevo, ma dopo una grande ricerca sono giunto alla conclusione che non avrei mai potuto mettere l'intera gamma di informazioni sul file system linux su un ntfs fs. (Beh, forse potrei avvicinarmi come hai fatto sopra, ma alla fine Linux non si associa molto bene su NTFS.)
Vista ellittica

@Elipticalview: Questo è molto tempo fa e non ho più lo stesso computer. Hai provato la risposta accettata?
Tomas Aschan,

Risposte:


25

Nella colonna delle opzioni aggiungi permissionse auto(e probabilmente usero users)

nls=iso8859-1,permissions,users,auto
  • permissions: (Opzione NTFS-3G) Imposta le autorizzazioni standard per i file creati e usa il controllo di accesso standard.
  • auto: Verrà montato all'avvio e da mount -a
  • user: Consente a un utente normale di montare il filesystem
  • users: Consente a tutti gli utenti di montare e smontare il filesystem

Quindi modificare la proprietà del filesystem:

sudo chown -R thomas:thomas /media/data 

La mia linea in /etc/fstab

/dev/sda5 /media/ntfs ntfs-3g users,permissions,auto 0 0

Permette di montare ed elencare

sudo mount /media/ntfs
Using default user mapping

bodhi@ufbt:~$ ls -l /media

drwxr-xr-x 1 root root 4096 2012-01-04 17:08 ntfs

Cambia la proprietà ed elenca le nuove autorizzazioni

bodhi@ufbt:~$ sudo chown bodhi:bodhi /media/ntfs

bodhi@ufbt:~$ ls -l /media

drwxr-xr-x 1 bodhi bodhi 4096 2012-01-04 17:10 ntfs

Per impostazione predefinita, ntfs-3g monta la partizione noexec, nosuid e nodev.

  • noexec: Non consentire l'esecuzione diretta di alcun file binario sul filesystem montato.
  • nosuid: Non consentire che i bit set-user-identifier o set-group-identifier abbiano effetto.
  • nodev: Non interpretare i caratteri o bloccare dispositivi speciali sul file system.

Per sovrascrivere questo e consentire l'esecuzione dei file, utilizzare exec

/dev/sda5 /media/ntfs ntfs-3g exec,permissions,auto 0 0

Adesso arriviamo

bodhi@ufbt:~$ ls -l /media/ntfs

-rwx------ 1 bodhi bodhi 28 2012-01-04 17:16 file

bodhi@ufbt:~$ /media/ntfs/file
It works

Hm ... dopo averlo aggiunto a fstab (facendo la colonna delle opzioni hte la seguente nls=iso8859-1,permissions,users,umask=000:) e riavviando ora posso spostare e copiare i file senza messaggi di errore. Tutti i file vengono comunque visualizzati come di proprietà root:root, anche dopo sudo chown -R tomas:tomas /media/data. Per ora non sembra essere un problema, ma per curiosità: perché?
Tomas Aschan,

Penso a causa tuaumask=000
Pantera

No, umask=000equivale a chmod 777- umask definisce tutti i flag che non si desidera impostare sui file. Sono d'accordo che sia controintuitivo, ma è tutto qui: ubuntuforums.org/showpost.php?p=9092899&postcount=4
Tomas Aschan,

Ho aggiornato la mia domanda con ulteriori informazioni su cosa ho provato e sui risultati.
Tomas Aschan,

1
Hm ... Per il momento
dovrò deselezionare

2

Utilizzare le opzioni uide gid(o utilizzare la funzione di mappatura utente) di mount.ntfs (8)


1
In altre parole, aggiungi uid = chiunque alla linea fstab
psusi

uide gidfunzionano, ma le autorizzazioni sono ora supportate in ntfs-3g e queste opzioni oltrepassano l' permissionsopzione. Vedi: b.andre.pagesperso-orange.fr/permissions.html
Pantera

Ho aggiornato la mia domanda con ulteriori informazioni su ciò che ho provato e sui risultati ottenuti. Si prega di dare un'occhiata =)
Tomas Aschan

Puoi aggiornare la voce fstab e rimuovere uid, gid e umask, basta nls=iso8859-1,permissions,userssmontare e reinstallare la partizione.
Pantera

@ bodhi.zazen: Quindi torniamo al punto di partenza. I file vengono visualizzati come di proprietà root:rooted Eclipse si lamenta delle autorizzazioni.
Tomas Aschan,

2

Il mio ora funziona perfettamente quando cambio la linea di fstab in

UUID=761C84B31C846FC3 /media/d        ntfs    defaults,umask=022,uid=1000 0       0

1

Che ne dici di usare udisks? Può facilmente montare partizioni NTFS con l'utente come proprietario.

Esempio (digitalo nella riga di comando):

/usr/bin/udisks --mount /dev/sda3

Puoi anche aggiungere quel comando alle applicazioni di avvio e si monterà automaticamente quando effettui il login.

Riferimento: AutomaticallyMountPartitions

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.