web-dev-qa-db-ja.com

OpenBSDでSudoを使用できないのはなぜですか?

Windows 7のVirtualBoxでOpenBSD 5.7を実行していますが、Unixの詳細を学習していますが、パスワードでSudoを使用できません。 adminvpnというユーザーを設定しましたが、Sudoを使用してコマンドを実行しようとすると、パスワードが間違っていることがわかります。

私はすでにrootパスワードとユーザーパスワードを試しましたが、それらが正しいこと、そしてそれらが文字のみであることを100%確信しています... OpenBSDを3回再インストールしましたが、これは私を夢中にさせています。

「adminvpn」に自分のパスワードを使用しようとすると、

adminvpnはsudoersファイルにありません。この事件は報告されます。

Rootでログインし、rootパスワードを使用できます。ユーザーと一緒に実行するのをほとんどあきらめています。

4
Freedo

エラーメッセージには、修正方法が正確に示されていなくても、何が問題なのかが示されます。

adminvpnはsudoersファイルにありません。

Sudoを使用すると、管理者としてコマンドを実行できます。 Sudoを使用できるようにするには、管理者にする必要があります。デフォルトでは、アカウントは管理者にはなりません。

コマンドvisudoを(もちろんルートとして)実行し、次のような行を追加します。

adminvpn ALL=(ALL) ALL

ファイルを保存して終了します。これで、Sudoを使用して、任意のコマンドをrootとして実行できます。

visudoは、環境変数VISUALで示されるように、お気に入りのエディターを実行することに注意してください。まだ設定していない場合は、viが表示されます。 viが気に入らない場合は、 別のエディターpkg_add nanoなど)をインストールし、export VISUAL=nanoから~/.profileまでの行を追加します。対話型シェルでもコマンドを実行して、現在のセッションで有効にします。

特に設定しない限り、Sudoでは独自のパスワードを入力する必要があります。 rootパスワードの知識は必要ありません、それがSudo`のポイントです。パスワードを入力するポイントは、キーボードから離れた状態で他の人が入力しないようにすることです。

ちなみに、OpenBSDは、最も初心者が使いやすいUNIXではありません。より緩やかな学習曲線が必要な場合は、Ubuntuを試してください。

OpenBSD 5.8以降でこれにつまずく人のために、OpenBSDはSudoの代わりにdoasがインストールされており、デフォルトでは実行できるように構成されていません。

/etc/doas.confファイルを作成し、それに追加します。

permit persist adminvpn as root                                                   
permit persist keepenv root as root

これにより、doasをrootまたは(ユーザーID)として実行できます。別のユーザーとしてadminvpnコマンドを実行する必要がある場合は、ファイルに許可行を追加できます。

次に、次のことができます。

doas my-privileged-command

rootとしてmy-privileged-commandを実行します。 (Sudoパッケージをインストールすることもできます。)

Kusalananda のコメントに感謝

4
user3486184