このチュートリアルでは、 Sudo を追加、削除、および付与する方法について説明します。 UbuntuLinuxオペレーティングシステムのユーザーに対する特権。以下に示す手順は、Ubuntu20.04LTSエディションでテストされています。ただし、手順は他のDEBベースのディストリビューションでも同じです。トピックに入る前に、sudoとは何かとその利点を見てみましょう。
1。 sudoとは何ですか?
LinuxおよびUnixオペレーティングシステムには、 rootという名前の特別なユーザーがいます。 。 rootユーザーは、Unixライクなシステムで何でもすべてを行うことができます。日常の活動にrootユーザーを使用することは危険であり、推奨されません。 1つの間違ったコマンドは、システム全体を破壊する可能性があります。ここで"sudo" 助けになります。これにより、許可されたユーザーは、rootユーザーのパスワードを知らなくても、rootレベルの特権でタスクを実行できます。そのため、通常のユーザーを作成し、sudoユーザーグループに追加して、必要に応じて管理タスクを実行することが重要です。したがって、このユーザーは、sudoというプレフィックスが付いたコマンドを実行するときに、通常のユーザーと管理ユーザーの両方として機能できます。
2。 sudoであることの利点
- rootパスワードを他のユーザーと共有する必要はありません。
- ユーザーは、管理タスクを実行するためにrootユーザーのパスワードを知っている必要はありません。
- 管理タスクを実行する場合、システムで変更が行われる前に、ユーザーはsudoパスワードの入力を求められます。これにより、ユーザーは自分が行っていることの結果について考えるようになります。
- 管理者権限はユーザーに簡単に付与でき、ユーザーが不要になった場合はいつでも取り消すことができます。
- Ubuntuなどの一部のLinuxディストリビューションでは、デフォルトでrootユーザーが無効になっています。したがって、rootユーザーに対してブルートフォース攻撃を仕掛ける方法はありません。誰かが試みても、それは無意味でしょう。解読するrootパスワードがないため。
- さらに重要なのは、sudoセッションが短時間でタイムアウトになることです。 sudo権限を持つrootユーザーとしてコマンドを実行した後に端末を開いたままにした場合に備えて、認証は自動的に期限切れになります。したがって、他のユーザーはそれ以上の管理タスクを実行できません。デフォルトでは、パスワードは現在のセッションで15分間保存されます。その後、パスワードをもう一度入力する必要があります。
- sudoユーザーのコマンドラインアクティビティを監視します。 sudoは、ユーザーが実行したコマンドのログエントリを/var/log/auth.logファイルに追加します。 。問題がある場合は、それらのコマンドを調べて、何が悪かったのかを突き止めることができます。
これらは、sudoユーザーであることのいくつかの利点です。それでは、LinuxのユーザーにSudo権限を追加、削除、および付与する方法を見てみましょう。
3。 UbuntuのユーザーにSudo権限を追加、削除、付与する
まず、通常のユーザーを作成します。
3.1。 Linuxで新しいユーザーを追加する
まず、 "ubuntuserver"などの通常のユーザーを作成します 。これを行うには、次を実行します:
$ sudo adduser ubuntuserver
出力例:
Adding user `ubuntuserver' ... Adding new group `ubuntuserver' (1001) ... Adding new user `ubuntuserver' (1001) with group `ubuntuserver' ... Creating home directory `/home/ubuntuserver' ... Copying files from `/etc/skel' ... New password: Retype new password: passwd: password updated successfully Changing the user information for ubuntuserver Enter the new value, or press ENTER for the default Full Name []: ubuntu 20.04 server Room Number []: Work Phone []: Home Phone []: Other []: Is the information correct? [Y/n] y

「ubuntuserver」という名前の新しいユーザーが作成されました。
3.2。 LinuxのユーザーにSudo権限を付与する
Arch Linuxなどの一部のLinuxシステムでは、 "sudo"をインストールする必要があります。 新しいsudoユーザーを作成する前にパッケージ化します。
# pacman -S sudo
Debianの場合:
# apt install sudo
Ubuntuサーバーとデスクトップでは、「sudo」がデフォルトでインストールされます。
次に、次のコマンドを使用して、新しく作成したユーザーをsudoグループに追加します。
$ sudo adduser ubuntuserver sudo
出力例:
Adding user `ubuntuserver' to group `sudo' ... Adding user ubuntuserver to group sudo Done.

「ubuntuserver」というユーザーにsudo権限が付与されています。
次のコマンドを使用して、sudoグループにユーザーを追加することもできます。
$ sudo usermod -aG sudo ubuntuserver
ユーザーがsudoグループに属しているかどうかを確認するには、次のコマンドを実行します。
$ sudo -l -U ubuntuserver
出力例:
Matching Defaults entries for ubuntuserver on ostechnix: env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin User ubuntuserver may run the following commands on ostechnix: (ALL : ALL) ALL

ここでは、 "(ALL:ALL)ALL" lineは、ユーザーが無制限の特権を持ち、システム上で任意のコマンドを実行できることを意味します。この場合、「ubuntuserver」ユーザーはsudoユーザーグループに属し、あらゆる種類の管理タスクを実行できるようになりました。
sudoersのコンテンツを開くと ファイル;
$ sudo cat /etc/sudoers
以下のような行が表示されます。
[...] # User privilege specification root ALL=(ALL:ALL) ALL # Members of the admin group may gain root privileges %admin ALL=(ALL) ALL # Allow members of group sudo to execute any command %sudo ALL=(ALL:ALL) ALL # See sudoers(5) for more information on "#include" directives: #includedir /etc/sudoers.d
上記の出力からわかるように、sudoグループのすべてのメンバーが任意のコマンドを実行できます。
- 最初のALLは許可されたユーザーです。
- 2番目のALLはホストです。同じ「sudoers」ファイルを多くのホストコンピューターに配布すると、ユーザーはすべてのホストで管理コマンドを実行できます。
- 3つ目は、コマンドを実行しているユーザーです。
- 最後の1つは、許可されているコマンドです。
3.3。 Sudoユーザーを確認する
確認するには、ユーザーが管理タスクを実行できるかどうかを確認するために、ログアウトして、新しいユーザーとして再度ログインします。
または、以下のように、現在のセッションからログアウトせずに、sudo権限を持つ他のユーザーとしてすぐにログインすることもできます。
$ sudo -i -u <username>
例:
$ sudo -i -u ubuntuserver
次に、以下のようにプレフィックス「sudo」が付いたコマンドを実行します。
$ sudo apt update

3.4。 Sudoユーザーを削除する
ユーザーを完全に削除しなくても、ユーザーからsudo権限を削除できます。 Ubuntuシステムでこれを行うときは注意する必要があります。 「sudo」グループから実際の管理者を削除しないでください。システムには少なくとも1人のsudoユーザーがいる必要があります。
ユーザーからsudo権限を取り消すには、コマンドは次のようになります。
$ sudo deluser ubuntuserver sudo
上記のコマンドは、「ubuntuserver」という名前のユーザーを「sudo」グループから削除します。
出力例:
Removing user `ubuntuserver' from group `sudo' ... Done.
このコマンドは、ユーザー'ubuntuserver'をsudoグループから削除するだけで、ユーザーをシステムから完全に削除するわけではないことに注意してください。
または、次のコマンドを実行して、ユーザーからのsudo権限を取り消します。
$ sudo gpasswd -d ubuntuserver sudo
これで、ユーザーは通常のユーザーになり、sudo権限で管理タスクを実行できなくなります。
ユーザーが本当に「sudo」グループから削除されたかどうかを確認するには、次のコマンドを実行します。
$ sudo -l -U ubuntuserver
出力例:
User ubuntuserver is not allowed to run sudo on ostechnix.
sudo権限がユーザーから削除されました。
3.5。ユーザーを完全に削除する
上記の手順では、「sudo」グループからユーザーを削除しただけです。ただし、ユーザーはまだシステムに存在します。 Linuxシステムからユーザーを完全に削除するには、rootまたはsudoユーザーとしてログインし、次のコマンドを実行します。
$ sudo deluser <username>
例:
$ sudo deluser ubuntuserver
ユーザーをホームディレクトリとメールスプールとともに削除する場合は、次のコマンドを実行します。
$ sudo deluser --remove-home ubuntuserver
出力例:
Looking for files to backup/remove ... Removing files ... Removing user `ubuntuserver' ... Warning: group `ubuntuserver' has no more members. Done.
詳細については、マニュアルページを確認してください。
$ man adduser
$ man deluser
$ man sudo
このガイドは、Alpine Linux、Arch Linux、CentOSシステムでも利用できます。次のガイドを確認して、ArchLinuxおよびCentOSLinuxディストリビューションのユーザーにsudo権限を追加、削除、および付与してください。
- Alpine LinuxのユーザーにSudo権限を追加、削除、付与する
- Arch LinuxのユーザーにSudo権限を追加、削除、付与する
- CentOSのユーザーにSudo権限を追加、削除、付与する
これがお役に立てば幸いです。
関連記事:
- LinuxでSudoパスワードのタイムアウトを変更する方法
- LinuxでデフォルトのSudoログファイルを変更する方法
- ユーザーにSudo特権を復元する方法
- LinuxシステムですべてのSudoユーザーを検索する方法
- LinuxでSudoパスワードなしで特定のコマンドを実行する方法
PixabayのmohamedHassanによる注目の画像 。