web-dev-qa-db-ja.com

Sudoアクセスを使用してファイルをコピーする

他のユーザーのファイルまたはフォルダーをコピーする方法。新しいファイルまたはフォルダには名前が必要です。

CpコマンドのSudoアクセスがあります

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

私は次のコマンドを試しています:

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

エラーが発生しました:

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

どうすれば解決できますか?

1

解決策:

Sudoコマンドから-iを削除する必要があります。

Sudo -u USER2 cp file1 file2

説明:

直面している問題は、Sudoアクセスが/bin/cpに制限されており、Sudo -iの使用に必要な追加のSudo権限がないことです。

エラーで指定するように:

申し訳ありませんが、ユーザーUSER1はSERVERNAMEでUSER2として「/ bin/bash -c cp file1 file2」を実行できません。

Sudo -i -u USER2 cpを使用する場合、実行しているコマンドは/bin/bash -c cpであり、Sudo権限がありません。 /bin/cpに対するSudo権限を持っているコマンドに制限されています。

詳細: 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