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?
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.