web-dev-qa-db-fra.com

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

J'ai un problème pour copier des fichiers dans un répertoire sur Ubuntu 12.04. Je crée un répertoire dans le répertoire personnel afin que le chemin vers lequel je souhaite copier est:

/home/sixven/camp_sms/inputs

Mais quand ini exécute 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 de fichiers directement dans ce répertoire. Comment puis-je attribuer des autorisations avec les commandes chown & chmod pour copier les fichiers?

Je ne sais pas quel utilisateur et quel groupe utiliser.

39
franvergara66

Tout d'abord, vous devez savoir que l'autorisation par défaut des répertoires dans 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 en tant que user:francisco-vergara pour créer un fichier dans un répertoire /home/sixven/camp_sms/inputs qui appartient à user:sixven.

Alors, comment résoudre ce problème:

  1. Vous pouvez soit modifier l'autorisation du répertoire et permettre à d'autres 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 à l'intérieur.

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

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

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

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

Ou si ce répertoire sera accessible par les deux utilisateurs, vous pouvez faire l'astuce suivante:

changer la propriété du répertoire en user:francisco-vergara et conservez le propriétaire du groupe group:sixven.

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

De cette façon, les deux utilisateurs peuvent toujours utiliser l'annuaire.

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

58
Maythux

Pour modifier la propriété du fichier, procédez comme root:

chown -R user:user /home/sixven

Si vous décidez de suivre la voie 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 voie n'est pas trop sécurisée.

12
Ghassan

L'UMASK 022 par défaut (dans Ubuntu), donc les autorisations pour/home/nom d'utilisateur deviennent 755. et vous vous êtes connecté en tant qu'utilisateur francisco-vergara et en essayant de créer des fichiers dans l'utilisateur sixyen Home: par exemple /home/sixven. il n'a pas de permission d'écriture pour les autres utilisateurs. Seul l'utilisateur/groupe de sixven a un accès en écriture.

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

1
Rahul Patil