ユーザーpi sudo権限を変更する方法。異なる権限を持つ他のアカウントを追加する方法は?


13

時々SSHでPiを使用するため、SSHがsudoコマンドにアクセスできるようにすることは危険であることを学びました。したがって、近い将来この許可をオフにする予定です。しかし、パッケージをインストールするとき、通常は再起動する必要があります。現在、これはスーパーユーザーを介してのみ許可されています。

sudo reboot

piユーザーの許可を編集してパッケージを再起動(およびインストール)できるようにする方法はありますか?

異なる権限を持つ複数のアカウントを所有できますか?

ありがとう


1
与えられた回答のいずれかが役立っていますか?それらの誰かがあなたが探した答えですか?その後、回答済みとしてマークしてください。
アンデルス

はい。それでも興味があれば、私はそれらを2017年6月に更新しました-この質問は4年2か月前に尋ねられ、今日私が問題を解決する方法に導きました。以下の回答をご覧ください
。– SDsolar

回答:


21

ビットを明確にする:なし「sudoのコマンドは」ありません、唯一の必要性のルート権限が正しく動作することを命令し、あるsudo一つのコマンドのためにそれらを取得するためのコマンドですが。sudo単にルートとして与えられたコマンドを実行します(急務として「sudoを」読みます文「スーパーユーザー、何かをしてください!」)。ユーザーがこれを行うことができるルールは、に記載されてい/etc/sudoersます。デフォルトのRaspbianインストールでは、デフォルトのユーザー「pi」は次の行から許可を得ています。

pi ALL=(ALL) NOPASSWD: ALL

つまり、「すべてのホストのユーザー「pi」はすべてのユーザーに切り替えることができ、ALL(読み取り:任意)コマンドを使用するときにPASSWDを入力する必要はありません」。(私はここで狂った文法を使用して行の順序を維持しました。ホストを区別する方法がある理由に関する注意:この方法では、同じsudoersファイルをネットワーク上の複数のマシンに配布できるため、ネットワーク管理者の作業が少なくなります) 。

adminパスワードを発行せずにsudoを使用してコマンドを実行できることが、SSH経由でsudoを使用するのが危険だと思う理由である可能性があります(そうすることで一般的な問題を聞いたことはありません...正確にあなたが意味する危険を説明してください?)。

異なる権限を持つ複数のユーザーがいることは確かです。しかし、sudoを使用することがこれらの権限を管理する最良の方法であることを恐れています。

だから、私はここでこの小さなレシピがあなたが必要なものであることを願っています:

$ sudo adduser admin

これにより、ユーザー「admin」の作成、パスワードの入力、ホームディレクトリの作成などが行われます。

$ sudo adduser admin sudo
$ sudo adduser admin adm

これにより、「admin」ユーザーがユーザーグループ「sudo」および「adm」に配置されます。また、Linuxではユーザーをユーザーグループに追加することで権限が管理されるため、「admin」ユーザーに必要なすべての権限と権限が付与されます。/etc/sudoersユーザーグループ「sudo」に属するすべてのユーザーがrootとしてコマンドを実行できるようにする行があります。また、この特権は管理ユーザーに必要なものです(「adm」に追加/var/logするsudoと、使用せずにいくつかのログファイルを読み取ることができます)。sudoadminとしてログインしているときに使用する必要がありますが、sudoを約5分間使用しなかった場合は常にsudoが管理者のパスワードを何度も要求します。

ここでログオフし、ユーザー「admin」としてログオンします。かどうか確かめる

$ sudo apt-get update
$ sudo apt-get upgrade

動作します。その場合、「pi」ユーザーの一部の権限を取り消すことができます。これは、管理ユーザーが適切な権限を持っていることが確実になったためです。

$ sudo deluser pi sudo
$ sudo deluser pi adm

これにより、ユーザーグループ「sudo」からユーザー「pi」がスローされます。

$ sudo visudo

これにより、編集できるエディタが起動します/etc/sudoers#「pi」で始まる行の前にハッシュタグ()を置き、コメントアウトします(または単に削除します)。その後、エディターを保存して終了すると、visudoはすぐに特権ルールを再ロードします。これで、ユーザー「pi」はsudoを使用できなくなりました。

その後、ユーザー「pi」として再ログオンできます。一部のコマンドで管理者に切り替えたい場合は、su(「ユーザー切り替え」)を使用します。

$ su - admin

さらにユーザーを追加する場合:sudo adduser <name>上記のように使用して、ユーザー「pi」が持っているユーザーグループのリストを確認します。

$ groups pi
pi : pi dialout cdrom audio video plugdev games users netdev input

使用sudo adduser <username> <groupname>して、これらのユーザーグループのいくつかに新しいユーザーを追加します。これにより、オーディオ、高速ビデオ、プラグイン可能なデバイスなどを使用できるようになります。


2
visudoデフォルトのエディターを使用してsudoersファイルを編集するコマンドです。このファイルを編集せずに編集するのは苦痛でありお勧めできません。あなたは、発行することにより、お好みのエディタを変更することができますsudo update-alternatives --config editor
earthmeLon

またはVISUAL=vim visudo、今回だけこれを試すことができます。しかし、エディターのようなデフォルトのプログラムを変更する素晴らしい例です。
アンデルス

6

はい。sudoユーザーが特定のコマンドを追加の特権で実行できるように設定できます。/etc/sudoersファイルでこれを変更できますが、直接これを行うのではなく、sudo visudoコマンドを使用することをお勧めします。

デフォルトのシステムインストールでは、次の行を見つける必要があります。

pi ALL=(ALL) NOPASSWD: ALL

sudoユーザーpirootパスワードを入力しなくてもすべてのユーザーを実行できるように指示します。最後に変更ALLし、実行を許可するコマンドの完全なパスを含むコンマ区切りリストを指定できます。あなたの場合、この行を次のように変更する必要があります。

pi ALL=(ALL) NOPASSWD: /usr/bin/apt-get, /sbin/shutdown

ユーザーにsudoers影響を与える行がもう1つあることに注意してくださいpi

%sudo   ALL=(ALL:ALL) ALL

この行により、グループ内のすべてのユーザーsudo%名前の前にある文字はユーザー名ではなくグループ名であることを意味します) 、自分のOWN password を知っいる限りすべてのパスワード実行できます。この行を離れると、ユーザーpiは他のすべてのコマンドを実行できますが、パスワードを要求されます。

これを防ぐには、この行を削除するかpisudoグループからユーザーを削除します。

/etc/sudoersファイルに変更を加えた後、sudo -l -U piコマンドを呼び出して、実際に必要なことを実行することを検査できます。

もちろん、異なるアカウントを作成sudoersし、異なるコマンドへのアクセスを許可するように構成することができます。


1

2018年5月、これはまだ概念的に正確ですが、手順は後のバージョンで変更されました:

最初に、ファイルはvi、nano、leafpad、emacsのいずれかで直接編集する必要があります-どちらでも好きなテキストエディターです。

ユーザー名piは、このファイルには記載されていません。

/etc/sudoers

ファイルの最後の行は次のとおりです。

#includedir /etc/sudoers.d

これは、という名前のファイルを含むディレクトリです

010_pi-nopasswd

この単一行を含む

pi ALL=(ALL) NOPASSWD: ALL

ユーザーpiとしてログインしている限り、sudoコマンドを要求しないという効果があります。(構文は正確にこのようにする必要があります)

これは素晴らしい。

グループライン %sudo ALL=(ALL:ALL) ALLはまだそこにあります

質問の最初の部分に答えるには:

ファイル/etc/sudoers/sudoers.d/010_pi-nopasswdファイルを1つのディレクトリレベル上に移動してインクルードを失敗させ、15分間待機すると、Raspbianシステムがsudoの使用時に自分のパスワードを要求するようになりました。私のUbuntu 14.04 LTSシステムがそうであったように。

それから、それを所属する場所に戻したとき、10分経ってもそれ以上プロンプトが表示されなくなりました。

再起動は必要ありません。出来上がり、sudoの使用時にパスワードの入力を求められません

私のlubuntu 14.04 LTSテストシステムは、010_pi-nopasswdファイルが存在しなかったことを除いて同じセットアップを持っています。lubuntuは、rootユーザーとしてpiを使用してインストールされました。sudoを使用するたびにプロンプ​​トが表示され、その後10分間プロンプトが表示されませんでした。

Raspbianのセットアップ方法と同じように、この同じファイルをUbuntuシステムに追加しました(まだ10分のウィンドウにいる間にこのファイルでchmod 0440を忘れないでください)-そして

出来上がり、15分経ってもpiとしてログインしているときに自分のパスワードの入力を求められなくなりました。

繰り返しになりますが、変更は再起動なしで即座に行われます。

これは、rootユーザーpiとしてログインしたときにsudoコマンドの使用を求めるプロンプトを無効および有効にする方法に対する2018年5月の回答です。他のユーザーとグループも同じ方法で構成できます。

--Ubuntu 16.04 LTSの更新このシステムも非常に似ています。ただし、最大の違いは、16.04のファイルパーミッションがはるかに厳しく、suモードで作業を行う必要があることです。あなたのrootのパスワードを忘れてしまった場合は、使用して、通常のプロンプトからそれをリセットすることができsudo passwd rootそして、suコマンドが動作すると、あなたがそこから行くことができます。


Googleでこれを見つけたので、これをフォローしている場合、ユーザーはまだsudoersグループにいる必要がありますが、/ etc / sudo.dは特定のユーザーがパスワードを要求される頻度を制御しますか?
lonstar

1
うん。あなたはそれを持っています。のメンバーになることsudoersは、通常、ユーザーが作成されたときに行われます。使用例:共通のコマンド文字列sudo apt-get update && sudo apt-get upgradeはsudoを2回呼び出しますが、アップグレードの前に停止してパスワードを再度要求するのは面倒です。だから私は私の1つのログイン名(pi)を決してプロンプトしないように設定してsudo apt-get update -y && sudo apt-get upgrade -yから、同様にかなりの変更を加えるためにOKを求めることを止めないように使用します。それをよりUnix風にするため。私が尋ねることをするだけで、たとえ私が立ち去ったとしても、それを終わらせたい。
–SDsolar

0

すべてのユーザーにパッケージのインストールを許可するよりも、SSHを介したsudoアクセスを許可する方が安全です。本当に心配な場合は、次の行を変更して/etc/sudoersください。

pi ALL=(ALL) NOPASSWD: ALL

pi ALL=(ALL) PASSWD: ALL

つまり、セッションで初めてsudoを使用するときと、数分のタイムアウト後にパスワードの入力を求められます。/etc/sudoers直接編集することはできません。sudo visudoそうするために使用します。

Krzysztofはその場で答えを見つけたようです。新しいパッケージをインストールするたびに再起動する必要が本当にありますか?新しいカーネルまたはファームウェアをインストールしない限り、他の多くは再起動を必要としません。これは私たちがここに持っている高品質のOSです...


3
timestampタイムアウトに言及するのは良い考えです。デフォルトでは15分です、ところで。これPASSWDがデフォルトであることに注意してください(NOPASSWDこのコマンドリストの前の方で指定されなかった場合)。また、/etc/sudoers何をしているのかわかっている場合は、問題なく直接編集できることに注意してください。使用してvisudoファイルを防ぐ一時ファイルになりますの変更が自動(構文エラーおよび/またはセキュリティ上の問題を導入する可能性)の変化の途中で書き込まれるように、それは複数の同時編集に対してこのファイルをロックし、ファイルを書き込む前に、いくつかの構文チェックを行います。
レジストフアダムスキー

OPが常に新しいカーネルを取得することはめったにない、またはOPが更新リストでカーネルパッケージを見つける方法を説明したくなかったので、同僚が毎回再起動するように言ったOPの更新だと思います。
オリテナ

このコメントのTNX @Krzysztof。私は答えを修正しました。そして、あなたは編集について正しいです。実際、sudoers.dにはreadmeが含まれているだけなので、16.04マシンでは、pi行をsudoersファイルに直接配置しました。原因はそのままにしておきましたが、少なくともpi権限は処理されています。(私のお気に入りのエディターはVI / VIMです。ただし、時々leafpadまたはIdleを使用します。Emacsをもう一度マスターしていない-15年は長い時間です-そして、私はemacsでできるよりもvimでより多く、より速く、できます、はるかに。)ありがとうございます。
–SDsolar

0

scrussが言ったことの代わりに、を実行して/etc/sudoers.d/010_pi-nopasswdファイルを削除しますsudo rm /etc/sudoers.d/010_pi-nopasswd。メインのsudoersファイルを編集するよりもはるかに簡単で安全です。これにより、sudoが破損する可能性があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.