Crea file nella cartella: autorizzazione negata


38

Ho un problema a copiare i file in una directory su Ubuntu 12.04. Creo una directory nella home directory in modo che il percorso in cui voglio copiare sia:

/home/sixven/camp_sms/inputs

Ma quando ini esegui il seguente comando nel terminale per creare un file di esempio come segue:

francisco-vergara@Francisco-Vergara:/home/sixven/camp_sms/inputs$ touch test_file.txt
touch: can not make `touch' on «test_file.txt»: permission denied

Non riesco a copiare i file direttamente in quella directory. Come posso assegnare le autorizzazioni con i comandi chown& chmodper copiare i file?

Non so quale utente e gruppo utilizzare.


Come hai creato la directory? Perché è dentro /home/sixven? Perché non è nella tua home directory?
terdon

2
Da quello che hai copiato e incollato, stai eseguendo il tocco come utente francisco-vergara, ma la tua directory in /home/sixvenè che è davvero la casa dell'utente francisco-vergerao appartiene a un sixvenutente? Dovresti chiarire cosa vuoi fare esattamente. Scrivi a casa di un altro utente? Condividi quella directory tra un gruppo?
Leiaz,

Risposte:


54

Prima di tutto devi sapere che l'autorizzazione predefinita delle directory in Ubuntu è 644, il che significa che non puoi creare un file in una directory di cui non sei il proprietario.

stai provando user:francisco-vergaraa creare un file in una directory di /home/sixven/camp_sms/inputsproprietà di user:sixven.

Quindi come risolverlo:

  1. È possibile modificare l'autorizzazione della directory e consentire ad altri di creare file all'interno.

    sudo chmod -R 777 /home/sixven/camp_sms/inputs
    

    Questo comando cambierà in modo ricorsivo l'autorizzazione della directory e consentirà a tutti gli altri utenti di creare / modificare ed eliminare file e directory all'interno.

  2. È possibile modificare la nave del proprietario di questa directory e creare user:francisco-vergaracome proprietario

    sudo chown -R francisco-vergara:francisco-vergara /home/sixven/camp_sms/inputs
    

    Ma in questo user:sixvenmodo non è possibile scrivere di nuovo in questa cartella e quindi è possibile spostarsi in un ciclo infinito circolare.

Quindi ti consiglio di usare l'opzione 1.

Oppure, se entrambi gli utenti accederanno a questa directory, puoi fare il seguente trucco:

cambiare la proprietà della directory in user:francisco-vergarae mantenere il proprietario del gruppo group:sixven.

sudo chown -R francisco-vergara /home/sixven/camp_sms/inputs

In questo modo entrambi gli utenti possono comunque utilizzare la directory.

Ma come ho detto prima, è più semplice ed efficiente utilizzare l'opzione 1.


11
Risorgendo questo per dire: non dovresti quasi mai "chmod -R 777". Impostare correttamente la proprietà è una pratica molto più sicura. digitalocean.com/community/tutorials/… askubuntu.com/questions/20105/…
Douglas Adams

12

Per modificare la proprietà del file, procedere come root:

chown -R user:user /home/sixven

Se decidi di seguire la strada chmod:

Se sai che l'utente fa parte del gruppo del file

chmod -R g+rw /home/sixven

Altrimenti:

chmod -R o+rw /home/sixven

Ma in questo modo non è troppo sicuro.


Funziona come un incantesimo
Faris Rayhan,

1

L'UMASK predefinito 022 (in Ubuntu), quindi le autorizzazioni per / home / username diventano 755. e si è effettuato l'accesso come utente francisco-vergarae si è tentato di creare file nell'utente sixyen Home: vale a dire /home/sixven. non dispone dell'autorizzazione in scrittura ad altri utenti Solo l'utente / gruppo di sixvenha accesso in scrittura.

se si desidera l'accesso in scrittura in quella directory, è necessario far parte del gruppo sixvenutilizzando usermod -G sixyen francisco-vergara OR chmod -R 777 /home/sixven(non utilizzare la sua cattiva pratica).


Non stai affrettando un po 'le cose? Non conosciamo ancora la situazione del PO.
Guntbert,
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.