時々SSHでPiを使用するため、SSHがsudoコマンドにアクセスできるようにすることは危険であることを学びました。したがって、近い将来この許可をオフにする予定です。しかし、パッケージをインストールするとき、通常は再起動する必要があります。現在、これはスーパーユーザーを介してのみ許可されています。
sudo reboot
piユーザーの許可を編集してパッケージを再起動(およびインストール)できるようにする方法はありますか?
異なる権限を持つ複数のアカウントを所有できますか?
ありがとう
時々SSHでPiを使用するため、SSHがsudoコマンドにアクセスできるようにすることは危険であることを学びました。したがって、近い将来この許可をオフにする予定です。しかし、パッケージをインストールするとき、通常は再起動する必要があります。現在、これはスーパーユーザーを介してのみ許可されています。
sudo reboot
piユーザーの許可を編集してパッケージを再起動(およびインストール)できるようにする方法はありますか?
異なる権限を持つ複数のアカウントを所有できますか?
ありがとう
回答:
ビットを明確にする:なし「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>して、これらのユーザーグループのいくつかに新しいユーザーを追加します。これにより、オーディオ、高速ビデオ、プラグイン可能なデバイスなどを使用できるようになります。
visudoデフォルトのエディターを使用してsudoersファイルを編集するコマンドです。このファイルを編集せずに編集するのは苦痛であり、お勧めできません。あなたは、発行することにより、お好みのエディタを変更することができますsudo update-alternatives --config editor
                    VISUAL=vim visudo、今回だけこれを試すことができます。しかし、エディターのようなデフォルトのプログラムを変更する素晴らしい例です。
                    はい。sudoユーザーが特定のコマンドを追加の特権で実行できるように設定できます。/etc/sudoersファイルでこれを変更できますが、直接これを行うのではなく、sudo visudoコマンドを使用することをお勧めします。
デフォルトのシステムインストールでは、次の行を見つける必要があります。
pi ALL=(ALL) NOPASSWD: ALL
sudoユーザーpiにrootパスワードを入力しなくてもすべてのユーザーを実行できるように指示します。最後に変更ALLし、実行を許可するコマンドの完全なパスを含むコンマ区切りリストを指定できます。あなたの場合、この行を次のように変更する必要があります。
pi ALL=(ALL) NOPASSWD: /usr/bin/apt-get, /sbin/shutdown
ユーザーにsudoers影響を与える行がもう1つあることに注意してくださいpi。
%sudo   ALL=(ALL:ALL) ALL
この行により、グループ内のすべてのユーザーsudo(%名前の前にある文字はユーザー名ではなくグループ名であることを意味します)は 、自分のOWN  password を知っている限り、すべてのパスワードを実行できます。この行を離れると、ユーザーpiは他のすべてのコマンドを実行できますが、パスワードを要求されます。
これを防ぐには、この行を削除するかpi、sudoグループからユーザーを削除します。
/etc/sudoersファイルに変更を加えた後、sudo -l -U piコマンドを呼び出して、実際に必要なことを実行することを検査できます。
もちろん、異なるアカウントを作成sudoersし、異なるコマンドへのアクセスを許可するように構成することができます。
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コマンドが動作すると、あなたがそこから行くことができます。
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風にするため。私が尋ねることをするだけで、たとえ私が立ち去ったとしても、それを終わらせたい。
                    すべてのユーザーにパッケージのインストールを許可するよりも、SSHを介したsudoアクセスを許可する方が安全です。本当に心配な場合は、次の行を変更して/etc/sudoersください。
pi ALL=(ALL) NOPASSWD: ALL
に
pi ALL=(ALL) PASSWD: ALL
つまり、セッションで初めてsudoを使用するときと、数分のタイムアウト後にパスワードの入力を求められます。/etc/sudoers直接編集することはできません。sudo visudoそうするために使用します。
Krzysztofはその場で答えを見つけたようです。新しいパッケージをインストールするたびに再起動する必要が本当にありますか?新しいカーネルまたはファームウェアをインストールしない限り、他の多くは再起動を必要としません。これは私たちがここに持っている高品質のOSです...
timestampタイムアウトに言及するのは良い考えです。デフォルトでは15分です、ところで。これPASSWDがデフォルトであることに注意してください(NOPASSWDこのコマンドリストの前の方で指定されなかった場合)。また、/etc/sudoers何をしているのかわかっている場合は、問題なく直接編集できることに注意してください。使用してvisudoファイルを防ぐ一時ファイルになりますの変更が自動(構文エラーおよび/またはセキュリティ上の問題を導入する可能性)の変化の途中で書き込まれるように、それは複数の同時編集に対してこのファイルをロックし、ファイルを書き込む前に、いくつかの構文チェックを行います。
                    scrussが言ったことの代わりに、を実行して/etc/sudoers.d/010_pi-nopasswdファイルを削除しますsudo rm /etc/sudoers.d/010_pi-nopasswd。メインのsudoersファイルを編集するよりもはるかに簡単で安全です。これにより、sudoが破損する可能性があります。