Créer un fichier dans un dossier: autorisation refusée

38

J'ai un problème pour copier des fichiers dans un répertoire sous Ubuntu 12.04. Je crée un répertoire dans le répertoire personnel de sorte que le chemin où je souhaite copier soit:

/home/sixven/camp_sms/inputs

Mais lorsque ini, exécutez la commande suivante dans le terminal pour créer un exemple de fichier comme suit:

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

Je ne peux pas copier des fichiers directement dans ce répertoire. Comment puis-je attribuer des autorisations avec les commandes chown& chmodpour copier les fichiers?

Je ne sais pas quel utilisateur et quel groupe utiliser.

franvergara66
la source
Comment avez-vous créé le répertoire? Pourquoi est-il dedans /home/sixven? Pourquoi n'est-ce pas dans votre répertoire personnel?
terdon
2
D'après ce que vous avez copié-collé, vous utilisez touch en tant qu'utilisateur francisco-vergara, mais votre répertoire /home/sixvenest-il vraiment le domicile de l'utilisateur francisco-vergeraou appartient-il à un sixvenutilisateur? Vous devriez clarifier ce que vous voulez faire exactement. Ecrire dans la maison d'un autre utilisateur? Partager ce répertoire parmi un groupe?
Leiaz

Réponses:

54

Tout d'abord, vous devez savoir que l'autorisation par défaut des répertoires sous Ubuntu est 644, ce qui signifie que vous ne pouvez pas créer de fichier dans un répertoire dont vous n'êtes pas le propriétaire.

vous essayez user:francisco-vergarade créer un fichier dans un répertoire /home/sixven/camp_sms/inputsappartenant à user:sixven.

Alors, comment résoudre ceci:

  1. Vous pouvez modifier l'autorisation du répertoire et permettre à d'autres personnes de créer des fichiers à l'intérieur.

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

    Cette commande modifiera l'autorisation du répertoire de manière récursive et permettra à tous les autres utilisateurs de créer / modifier et supprimer des fichiers et des répertoires.

  2. Vous pouvez changer le propriétaire de ce répertoire et en faire user:francisco-vergarale propriétaire

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

    Mais comme cela, le user:sixvendossier ne peut plus écrire dans ce dossier et vous pouvez donc vous déplacer dans une boucle infinie circulaire.

Je vous conseille donc d'utiliser l'option 1.

Ou si les deux utilisateurs ont accès à ce répertoire, vous pouvez utiliser l’astuce suivante:

changer la propriété de l'annuaire user:francisco-vergaraet conserver le propriétaire du groupe group:sixven.

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

Ainsi, les deux utilisateurs peuvent toujours utiliser le répertoire.

Mais comme je vous l'ai déjà dit, il est plus simple et plus efficace d' utiliser l'option 1.

Maythux
la source
11
En ressuscitant ceci pour dire: vous ne devriez presque jamais «chmod -R 777». Définir correctement la propriété est une pratique beaucoup plus sûre. digitalocean.com/community/tutorials/… askubuntu.com/questions/20105/…
Douglas Adams
12

Pour changer la propriété du fichier, faites ceci en tant que root:

chown -R user:user /home/sixven

Si vous décidez de suivre la méthode chmod:

Si vous savez que l'utilisateur fait partie du groupe du fichier

chmod -R g+rw /home/sixven

Autrement:

chmod -R o+rw /home/sixven

Mais cette façon n'est pas trop sécurisée.

Ghassan
la source
Fonctionne comme un charme
Faris Rayhan 10/10
1

UMASK 022 par défaut (dans Ubuntu), de sorte que les autorisations pour / home / nom d'utilisateur deviennent 755. et que vous vous êtes connecté en tant qu'utilisateur francisco-vergaraet que vous essayez de créer des fichiers dans l'utilisateur sixyen Home: c'est-à-dire /home/sixven. il n'a pas l'autorisation d'écriture sur les autres utilisateurs. Seul l'utilisateur / le groupe sixvena un accès en écriture.

si vous voulez un accès en écriture dans ce répertoire, vous devez faire partie de Group en sixvenutilisant usermod -G sixyen francisco-vergara OR chmod -R 777 /home/sixven(n'utilisez pas cette mauvaise pratique).

Rahul Patil
la source
Ne précipitez-vous pas un peu les choses? Nous ne connaissons toujours pas la situation du PO.
Guntbert