序章

新しいLinuxサーバーで実行する方法を知っておく必要がある最も基本的なタスクの1つは、ユーザーの追加と削除です。 新しいシステムを作成するとき、多くの場合(DigitalOcean Dropletsなど)、デフォルトでrootアカウントのみが与えられます。

root ユーザーとして実行している間は、多くのパワーと柔軟性が得られますが、危険であり、破壊的である可能性もあります。 ほとんどの場合、一般的なタスクを実行するために、特権のないユーザーを追加することをお勧めします。 また、システム上にいる可能性のある他のユーザー用に追加のアカウントを作成する必要があります。 各ユーザーは異なるアカウントを持っている必要があります。

sudoと呼ばれるメカニズムを使用して、必要なときに管理者権限を取得できます。 このガイドでは、ユーザーアカウントの作成方法、sudo権限の割り当て、およびユーザーの削除方法について説明します。

ユーザーを追加する方法

root ユーザーとしてサインインしている場合は、次のように入力することで、いつでも新しいユーザーを作成できます。

  1. adduser newuser

初期サーバーセットアップガイドに示されているように、sudo権限が付与された非rootユーザーとしてサインインしている場合は、次のように入力して新しいユーザーを追加できます。

  1. sudo adduser newuser

いずれにせよ、一連の質問があります。 手順は次のとおりです。

  • 新しいユーザーのパスワードを割り当てて確認します
  • 新しいユーザーに関する追加情報を入力します。 これは完全にオプションであり、これらのフィールドを使用したくない場合は、Enterを押すことでスキップできます。
  • 最後に、提供した情報が正しいことを確認するよう求められます。 Yと入力して続行します。

これで、新しいユーザーを使用する準備が整いました。 これで、設定したパスワードを使用してログインできます。

:新しいユーザーに管理機能へのアクセス権が必要な場合は続行してください。

ユーザーにSudo権限を付与する方法

新しいユーザーがroot(管理)権限でコマンドを実行できるようにする必要がある場合は、新しいユーザーにsudoへのアクセスを許可する必要があります。 この問題に対する2つのアプローチを調べてみましょう。事前定義されたsudoユーザーグループにユーザーを追加することと、sudoの構成でユーザーごとに特権を指定することです。 。

新しいユーザーをSudoグループに追加します

デフォルトでは、Ubuntu16.04システムのsudoは、sudoグループ内のすべてのユーザーに完全な特権を拡張するように構成されています。

groupsコマンドを使用すると、新しいユーザーがどのグループに属しているかを確認できます。

  1. groups newuser
Output
newuser : newuser

デフォルトでは、新しいユーザーは、アカウント作成時に作成された自分のグループにのみ属し、ユーザーと名前を共有します。 ユーザーを新しいグループに追加するには、usermodコマンドを使用できます。

  1. usermod -aG sudo newuser

ここでの-aGオプションは、usermodにリストされたグループにユーザーを追加するように指示します。

ユーザーのSudo権限をテストする

これで、新しいユーザーは管理者権限でコマンドを実行できるようになります。

新しいユーザーとしてサインインすると、通常どおりコマンドを入力して、通常のユーザーとしてコマンドを実行できます。

  1. some_command

コマンドの前にsudoと入力すると、管理者権限で同じコマンドを実行できます。

  1. sudo some_command

サインインしている通常のユーザーアカウントのパスワードを入力するように求められます。

/ etc/sudoersでの明示的なユーザー権限の指定

ユーザーをsudoグループに入れる代わりに、visudoコマンドを使用して、システムのデフォルトエディターで/etc/sudoersという構成ファイルを明示的に開くことができます。ユーザーごとに特権を指定します。

visudoを使用することは、/etc/sudoersに変更を加えるための唯一の推奨される方法です。これは、ファイルを複数の同時編集に対してロックし、ファイルを上書きする前にその内容の健全性チェックを実行するためです。 これは、sudoの構成を誤って、sudo特権を失ったために問題を修正できない状況を防ぐのに役立ちます。

現在rootとしてサインインしている場合は、次のように入力します。

  1. visudo

sudo権限を持つroot以外のユーザーを使用してサインインしている場合は、次のように入力します。

  1. sudo visudo

従来、visudoviエディターで/etc/sudoersを開いていましたが、これは経験の浅いユーザーを混乱させる可能性があります。 デフォルトでは、Ubuntuの新規インストールでは、代わりにnanoを使用する必要があります。これにより、より使い慣れたテキスト編集エクスペリエンスが提供されます。 矢印キーを使用してカーソルを移動し、次のような行を検索します。

/ etc / sudoers
root    ALL=(ALL:ALL) ALL

この行の下に、ここに表示されている形式をコピーし、「root」という単語のみを変更して、sudo特権を付与する新しいユーザーを参照します。

/ etc / sudoers
root    ALL=(ALL:ALL) ALL
newuser ALL=(ALL:ALL) ALL

完全なsudo権限を付与する必要があるユーザーごとに、このような新しい行を追加する必要があります。 終了したら、 Ctrl-X Y Enter の順に押して、ファイルを保存して閉じることができます。

ユーザーを削除する方法

ユーザーが不要になった場合は、古いアカウントを削除することをお勧めします。

rootとしてこれを入力することにより、ファイルを削除せずにユーザー自体を削除できます。

  1. deluser newuser

sudo権限を持つ別の非rootユーザーとしてサインインしている場合は、代わりに次のように入力できます。

  1. sudo deluser newuser

代わりに、ユーザーが削除されたときにユーザーのホームディレクトリを削除する場合は、rootとして次のコマンドを発行できます。

  1. deluser --remove-home newuser

これをsudo権限を持つroot以外のユーザーとして実行している場合は、代わりに次のように入力します。

  1. sudo deluser --remove-home newuser

削除したユーザーに対して以前にsudo権限を構成していた場合は、次のように入力して、関連する行を再度削除することをお勧めします。

  1. visudo

または、sudo権限を持つroot以外のユーザーの場合は、これを使用します。

  1. sudo visudo
root    ALL=(ALL:ALL) ALL
newuser ALL=(ALL:ALL) ALL   # DELETE THIS LINE

これにより、同じ名前で作成された新しいユーザーに誤ってsudo権限が与えられるのを防ぐことができます。

結論

これで、Ubuntu16.04システムにユーザーを追加および削除する方法をかなりうまく理解できるはずです。 効果的なユーザー管理により、ユーザーを分離し、ユーザーが仕事をするために必要なアクセスのみをユーザーに与えることができます。

sudoの構成方法の詳細については、sudoersファイルの編集方法に関するガイドをご覧ください。