web-dev-qa-db-fra.com

Copier le fichier en utilisant l'accès Sudo

Comment je peux copier un fichier ou un dossier pour un autre utilisateur. Le nouveau fichier ou dossier doit avoir son nom.

J'ai un accès Sudo pour la commande cp

USER1 ALL=(ALL) NOPASSWD: /bin/cp

J'essaie de suivre la commande:

USER1@ySERVERNAME:HOME_PATH$ Sudo -i -u USER2 cp file1 file2

J'ai une erreur:

Sorry, user USER1 is not allowed to execute '/bin/bash -c cp file1 file2' as USER2 on SERVERNAME.

Comment puis-je le résoudre?

1
Hayk Hovhannisyan

Solution:

Vous devez supprimer le -i de la commande Sudo:

Sudo -u USER2 cp file1 file2

Explication:

Le problème auquel vous faites face est que votre accès Sudo est limité à /bin/cp et que vous utilisez Sudo -i, des autorisations supplémentaires nécessaires Sudo dont vous ne disposez pas.

Comme spécifié dans l'erreur:

Désolé, l'utilisateur USER1 n'est pas autorisé à exécuter '/ bin/bash -c cp file1 fichier2' en tant que USER2 sur SERVERNAME.

Lorsque vous utilisez Sudo -i -u USER2 cp La commande que vous exécutez est /bin/bash -c cp pour laquelle vous ne disposez pas des autorisations Sudo. Comme vous êtes limité à la commande pour laquelle vous disposez du droit Sudo: /bin/cp.

Plus d'infos: man Sudo

  -i, --login
                 Run the Shell specified by the target user's password
                 database entry as a login Shell.  This means that login-
                 specific resource files such as .profile or .login will be
                 read by the Shell.  If a command is specified, it is passed
                 to the Shell for execution via the Shell's -c option.  If no
                 command is specified, an interactive Shell is executed.  Sudo
                 attempts to change to that user's home directory before
                 running the Shell.  The command is run with an environment
                 similar to the one a user would receive at log in.  The
                 Command environment section in the sudoers(5) manual
                 documents how the -i option affects the environment in which
                 a command is run when the sudoers policy is in use.
2
Yaron