web-dev-qa-db-fra.com

Comment copier l'autorisation de root sur l'utilisateur actuel?

J'ai fait une erreur. J'ai copié un répertoire contenant de nombreux sous-répertoires et fichiers à l'aide de la commande Sudo. Par conséquent, seul root a l'autorisation de faire quoi que ce soit avec les fichiers.

Puis-je en quelque sorte dupliquer les autorisations pour root pour tout le monde/moi-même, de manière récursive?

5
daltonfury42

Copier les éléments en tant que root fera en sorte que les éléments deviennent la propriété de root (je pense que gksudo consiste simplement à empêcher les paramètres de programme, etc., de devenir la propriété de root - voir ici ) - vous devriez pouvoir le réparer en utilisant ce qui suit:

Sudo chown -R $USER:$USER /<PATH>/<TO>/<COPIED>/<FOLDER>

Il:

  • Usages chown
  • -R modifie récursivement les répertoires et les fichiers
  • $USER est remplacé par votre nom d'utilisateur par le shell (ligne de commande, bash, etc.), de sorte qu'il indique aux utilisateurs et aux groupes des fichiers et des dossiers de vous identifier.
  • Le réalise sur le chemin spécifié - par exemple ./<PATH>/<TO>/<COPIED>/<FOLDER>. Ne le faites pas uniquement sur /, /usr etc, car cela endommagerait probablement le système.

Par exemple:

$ touch file
$ Sudo cp file filert
$ ls -l | grep file
-rw-rw-r--.  1 wilf wilf         0 Jul  2 09:42 file
-rw-r--r--.  1 root root         0 Jul  2 09:43 filert

Les commandes ci-dessus. créez un fichier appelé filename__, copiez-le en tant que racine dans filertname__, puis affichez les propriétés du fichier. Lorsque les fichiers sont copiés en tant que root, le fichier résultant doit appartenir à root. C'est ce qui est arrivé à vos fichiers. Avec l'exemple ci-dessus, filertpeut être utilisé par un utilisateur normal à l'aide de:

$ Sudo chown $USER:$USER filert 
$ ls -l | grep file
-rw-rw-r--.  1 wilf wilf         0 Jul  2 09:42 file
-rw-r--r--.  1 wilf wilf         0 Jul  2 09:43 filert
13
Wilf