一般ユーザーとしてプログラムを実行しようとすると拒否され、sudoを使用して実行すると「見つかりません」というメッセージが表示されるのはなぜですか?

一般ユーザーとしてプログラムを実行しようとすると拒否され、sudoを使用して実行すると「見つかりません」というメッセージが表示されるのはなぜですか?

mysqlbackupを実行するには、rootとして実行する必要があります。

以下は、一般ユーザーとして実行する場合の例です。

mysqlbackup --compress --user=root --socket=/var/lib/mysql/mysql.sock --backup-dir=/home/user/backup backup
MySQL Enterprise Backup version 3.12.2 Linux-2.6.32-400.37.11.el6uek.i686-i686 [2016/01/19] 
Copyright (c) 2003, 2016, Oracle and/or its affiliates. All Rights Reserved.

 mysqlbackup: INFO: Starting with following command line ...
 mysqlbackup --compress --user=root --socket=/var/lib/mysql/mysql.sock 
        --backup-dir=/home/user/backup backup 

 mysqlbackup: INFO: 
 mysqlbackup: INFO: MySQL server version is '5.5.44-MariaDB'.
 mysqlbackup: INFO: Got some server configuration information from running server.

IMPORTANT: Please check that mysqlbackup run completes successfully.
           At the end of a successful 'backup' run mysqlbackup
           prints "mysqlbackup completed OK!".

160226 08:30:02 mysqlbackup: INFO: MEB logfile created at /home/user/backup/meta/MEB_2016-02-26.08-30-02_compress_backup.log

 mysqlbackup: ERROR: Opening of file /var/lib/mysql/ibdata1 failed. Error code: 13, Permission denied

これにより権限の拒否が発生するため、sudoを使用して実行しようとすると、次の結果が表示されます。

 sudo mysqlbackup
[sudo] password for user: 
sudo: mysqlbackup: command not found

しかし、rootとして実行しても問題はありません...

私のユーザーはsudoersファイルの中にあるので、問題なくsudoを使用して他のコマンドを実行することができることを知っていますが、この場合、私の質問はsudoを使用してなぜ実行できないのですか?再利用する必要はありません。 sudo -i ルート環境を取得するには?

ノート:すべて同じ$ PATHを持ちます。

[root@localhost ~]# echo $PATH
/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/user/.local/bin:/home/user/bin
[root@localhost ~]# exit
[user@localhost backup]$ echo $PATH
/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/user/.local/bin:/home/user/bin

ベストアンサー1

おそらくsecure_path/etc/sudoersに設定されているでしょう。表示されたパスはwhich mysqlbackupそこには含まれていませんが、echo $PATHユーザーとして実行したり、rootからログインしたときに表示されます。そうですか?それでも変に見えます。

おすすめ記事