ユーザーをsudoersに追加した後は、sudoを実行する権限がありません。
問題が何であるかは本当に混乱しています。ところで、PleskがインストールされているCentOs 7.9を実行しています。
wheel
デフォルトのPlesk加入者をグループに追加し、次の行のコメントを削除しました/etc/sudoers
。
## Allows people in group wheel to run all commands
wheel ALL=(ALL) ALL
sudoersを保存し、su
ルートからユーザーまで、次から始まるすべてのコマンドを保存しますsudo
。
sudo: command not found
$PATHの内容はsudoers
次のとおりです。
Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin
私も次のことを試しましたが、役に立ちませんでした。
Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:/opt/plesk/php/7.4/bin:/root/bin
crontab
cronジョブは特定のユーザーの下で実行する必要があり、Pleskインターフェイスでは実行できないため、問題のユーザーにsudoアクセスを許可してアクセスできるようにします。
現在のユーザーはただ入手できますcrontab: command not found
。実際、ほとんどすべてのコマンドが見つかりません(これらのコマンドはsudoユーザーのみが使用できるためかどうかはわかりません)。
このユーザーに対してsudoを実行するために正確に何をすべきかを提案できる人はいますか?よろしくお願いします。
答え1
これを行う必要はありません。目標がそのユーザーとしてcronjobを実行することであれば、/etc/crontab
ファイルには通常のユーザー固有のcrontabにはない追加のフィールドがあり、ここでコマンドを実行するユーザーを定義できます。
# m h dom mon dow user command
0 * * * * plesk command_to_be_run
これはcommand_to_be_run
毎時間ユーザーによって実行されますplesk
。
に示すように、システムユーザーとしてplesk
正しいログインシェルがなく、インタラクティブな使用に設定されていない/etc/passwd
ため、正しい変数などがないため、アプローチは機能しません。その結果、ユーザーは実行可能ファイルへのパスを含まないため、実行できません。いずれにせよ、cronジョブは簡単に実行できないため、パスワードなしで実行するように設定する必要がありますが、上記のようにすべてが必須ではありません。$HOME/.profile
PATH
PATH
sudo
sudo
最後に、PATH
質問に表示されるのは実際のユーザーのパスではありませんplesk
。su plesk
ユーザーの起動ファイルを読み取れないため、su - plesk
From man su
:
-, -l, --login
Start the shell as a login shell with an environment similar to a
real login:
• clears all the environment variables except TERM and variables
specified by --whitelist-environment
• initializes the environment variables HOME, SHELL, USER,
LOGNAME, and PATH
• changes to the target user’s home directory
• sets argv[0] of the shell to '-' in order to make the shell a
login shell