GNU/Linux >> Linux の 問題 >  >> Linux

LinuxユーザーとLinuxグループを管理する

Linuxは、ご存知のとおり、マルチユーザーオペレーティングシステムです。デスクトップまたはサーバーに複数のユーザーがいる場合は、複数のLinuxユーザーアカウントを簡単に管理し、各アカウントに権限を付与できます。

この記事では、学習します–

  • Linuxシステムでユーザーとグループを管理する方法
  • Linuxで新しいユーザーアカウントを作成する
  • Linuxのグループにユーザーを追加する
  • Linuxでユーザーグループを作成する
  • Linuxでユーザーグループを削除する

Linuxユーザーの管理

ただし、LinuxユーザーとLinuxグループを管理する方法について説明する前に、セキュリティの観点から、個別のユーザーアカウントを持つことが重要である理由を説明しましょう。多くのユーザーは、Linuxサーバーの最初の起動時にrootアカウントの使用を開始しますが、これはお勧めしません。

ルートアカウントを使用して日常のサーバー操作を実行することはお勧めできません。 rootユーザーはスーパーユーザーアカウントです。ログインすると、少なくとも1回はユーザーが誤ったコマンドを実行し、rootユーザーはほとんどの場合確認を求めずに実行することが保証されます。 root以外のユーザーとしてログインすると、そのユーザーはシステムへのアクセスが少なくなり、何か悪いことをする可能性が低くなります。

次に、個々のユーザーを管理するのではなく、1つまたは複数のグループにユーザーを追加すると、Linuxで複数のユーザーを管理しやすくなります。これにより、Linuxユーザーグループのトピックに移動します。一部のデスクトップユーザーにとっては面倒かもしれませんが、システム管理者にとっては便利な機能です。

Linuxユーザーグループ

複数のユーザーを管理することは、特にユーザーがさまざまなドメインから来ている場合、システム管理者にとって難しい雑用です。管理者は、あるタイプのユーザーにディレクトリへのアクセスを許可し、他のタイプのユーザーにはシステム上の他のディレクトリへのアクセスを拒否したい場合があります。または、管理者は、同じディレクトリにさまざまな権限を持つ複数の種類のユーザーを配置したい場合があります。 Linuxでこれを実現するには、Linuxユーザーグループを作成します。

私たちがソフトウェア開発会社を所有していると仮定します。すべてのプロジェクトディレクトリは中央サーバーに保存されます。 PythonプログラマーにすべてのPythonコードを含むPythonディレクトリへのアクセスを提供したいだけです。

実例を示すために、sandyという名前の新しいユーザーを作成します。 Sandyは、サーバーのPythonコードディレクトリへのアクセスを必要とするPython開発者です。それでは、彼のアカウントを作成することから始めましょう。

Linuxで新しいユーザーを作成する

Linuxでの新しいユーザーの作成はGUIから非常に簡単です。

たとえば、私はManjaro Linux(Deepin)を使用しており、新しいユーザーを作成することは、メモを取るアプリケーションで新しいメモを作成することに似ています。ユーザー名とパスワードを入力するだけで、それだけです。

> >

ただし、Linuxサーバーで新しいユーザーを作成する必要がある場合は、次の2つのコマンドでその作業を実行できます–

  • useradd
  • adduser

useradd –このコマンドは、すべてのLinuxディストリビューションで使用できます。 Linuxで新しいユーザーを作成するためにさまざまな引数を受け入れます 。引数なしで実行すると、コマンドはホームディレクトリやシェル拡張機能などのないユーザーアカウントを作成します。

ただし、デフォルトのオプションは/etc/default/useraddで設定できます。 これにより、ユーザーが作成されるたびに、コマンドは/etc/default/useraddからデフォルト値を取得します。 自動的に。

adduser useraddを使用するperlで記述されたコマンド バックエンドで。 useraddとは異なり 、ユーザー名のみが必要で、ターミナルでセットアップを実行してユーザーを作成します。 useraddよりも簡単です。

adduser Ubuntuおよびその他のDebianベースのLinuxディストリビューションでのみ利用可能です。

useraddの使用方法

useradd -m sandy

上記のコマンドは、/home/sandyにホームディレクトリを持つユーザーアカウントを作成します 。次に、ユーザーのパスワードを設定します。

sudo passwd sandy

以上です。ユーザーが作成されました。ユーザー用に別のホームディレクトリを作成する場合は、-d パラメータはそのためのものです。

sudo useradd -d /home/james sandy

useraddコマンドでシェルを設定することもできます。 -sを使用するだけです パラメータ。

sudo useradd -d /home/james -s /bin/bash sandy

adduserの使用方法

上で述べたように、adduser useraddよりもはるかに簡単です 。ユーザー名のみが必要です。 adduser 質問をし、useraddコマンドのパラメータ値として入力値を設定します。

sudo adduser sandy

Ubuntuまたはその他のDebianベースのディストリビューションを使用している場合は、adduserを使用してください。 指図。このコマンドは、Linuxシステムでのユーザー作成プロセスを簡素化するために作成されました。

Linuxでユーザーグループを追加

上記のように、Linuxユーザーの管理は、ユーザーを1つまたはLinuxグループに追加することで簡単になります。

「python-programmers」というグループを作成し、Python開発者であるsandyをこのグループに追加して、Pythonディレクトリへのアクセスを許可することができます。

groupadd python-programmer

Linuxのグループにユーザーを追加する

次に、python-programmerグループにsandyを追加します。

sudo usermod -aG python-programmer sandy

Linuxのディレクトリにグループを追加する

$HOME/Projects/Pythonの下にあるPythonディレクトリのグループを変更します 。

sudo chown -R :python-programmer $HOME/Projects/Python
ディレクトリへのアクセス許可の追加

次に、グループユーザーのディレクトリに読み取りと書き込みのアクセス許可を追加します。

sudo chmod -R g+w $HOME/Projects/Python
ディレクトリから権限を削除する

そして最後に、他のユーザーがPythonディレクトリにアクセスすることを禁止します。

sudo chmod -R o-x Python

そして、仕事は終わりました!これで、rootユーザーまたは「python-programmers」グループの任意のユーザーがPythonディレクトリにアクセスできるようになりました。

しかし、問題があります!

上記の手順で作業を行います。 python-programmersのユーザーにPythonディレクトリへのアクセスを許可しますが、問題があります。上記のアプローチでは、一度に1つのグループのユーザーのみがPythonディレクトリにアクセスできます。他の開発者にPythonディレクトリへのアクセスを許可する場合は、前のグループからアクセスを削除し、新しいグループをディレクトリ所有者として設定する必要があります。

この問題を解決し、一度に複数のタイプのユーザーにアクセスできるようにするために、アクセス制御リストを使用できます。

アクセス制御リスト

監査人のグループがあるとしましょう 私たちの会社で。グループ監査人がPythonディレクトリから他のグループを削除せずに、Pythonディレクトリへの「読み取り」アクセスを許可する必要があります。

setfacl -m g:auditors:rx -R $HOME/Projects/Python

そしてそれだけです。これで、python-programmersグループのユーザーには読み取りと書き込みのアクセス権があり、auditersのグループのユーザーにはPythonディレクトリへの読み取りアクセス権があります。監査人にも書き込みアクセスを許可する場合は、 wを追加します 上記のコマンドで。

setfacl -m g:auditors:rwx -R $HOME/Projects/Python

Linuxでユーザーを削除

Linuxでユーザーを削除する必要がある場合もあります。 userdelを使用して実行できます コマンド。

userdel sandy
警告
ユーザーの削除は、回復不能なアクションです。したがって、ユーザーを削除する前に、重要なファイルと設定を必ずバックアップしてください。デフォルトでは、このコマンドはユーザーのホームディレクトリを削除しません。通知
Linuxでユーザーを削除する前に、そのユーザーが他のプロセスを使用していないことを確認してください。そうしないと、次のエラーが発生します–
userdel: The user sandy is being used by process 3861

Linuxのユーザーのすべてのプロセスを一覧表示する

ps -u sandy
Output -
  PID TTY          TIME CMD
 4831 ?        00:00:00 systemd
 4832 ?        00:00:00 (sd-pam)
 4845 ?        00:00:00 gnome-keyring-d
 4849 tty5     00:00:00 gdm-x-session
 4851 tty5     00:00:10 Xorg
 4856 ?        00:00:00 dbus-daemon
 4860 tty5     00:00:00 gnome-session-b
 4958 ?        00:00:00 ssh-agent
 4961 ?        00:00:00 gvfsd
 4966 ?        00:00:00 gvfsd-fuse
 4975 ?        00:00:00 at-spi-bus-laun
 4980 ?        00:00:00 dbus-daemon
 4983 ?        00:00:00 at-spi2-registr
 4997 ?        00:00:00 gnome-keyring-d
 5012 tty5     00:00:21 gnome-shell
 5023 ?        00:00:00 pulseaudio
 5032 tty5     00:00:00 ibus-daemon
 5034 ?        00:00:00 xdg-permission-
 5042 tty5     00:00:00 ibus-dconf
 5044 ?        00:00:00 gnome-shell-cal
 5046 tty5     00:00:00 ibus-x11
 5050 ?        00:00:00 ibus-portal
 5057 ?        00:00:00 evolution-sourc
 5066 ?        00:00:00 dconf-service
 5073 ?        00:00:00 goa-daemon
 5084 ?        00:00:00 goa-identity-se
 5094 ?        00:00:00 gvfs-udisks2-vo
 5099 ?        00:00:00 gvfs-gphoto2-vo
 5103 ?        00:00:00 gvfs-goa-volume
 5107 ?        00:00:00 gvfs-afc-volume
 5112 ?        00:00:00 gvfs-mtp-volume
 5116 tty5     00:00:00 gsd-power
 5117 tty5     00:00:00 gsd-print-notif
 5119 tty5     00:00:00 gsd-rfkill
 5121 tty5     00:00:00 gsd-screensaver
 5125 tty5     00:00:00 gsd-sharing
 5128 tty5     00:00:00 gsd-smartcard
 5130 tty5     00:00:00 gsd-xsettings
 5131 tty5     00:00:00 gsd-wacom
 5139 tty5     00:00:00 gsd-sound
 5144 tty5     00:00:00 gsd-a11y-settin
 5147 tty5     00:00:00 gsd-color
 5150 tty5     00:00:00 gsd-clipboard
 5154 tty5     00:00:00 gsd-housekeepin
 5155 tty5     00:00:00 gsd-datetime
 5160 tty5     00:00:00 gsd-media-keys
 5162 tty5     00:00:00 gsd-keyboard
 5164 tty5     00:00:00 gsd-mouse
 5186 tty5     00:00:00 gsd-printer
 5217 tty5     00:00:00 gsd-disk-utilit
 5219 tty5     00:00:01 nautilus-deskto
 5232 ?        00:00:00 gvfsd-trash
 5254 ?        00:00:00 evolution-calen
 5267 ?        00:00:00 evolution-calen
 5282 ?        00:00:00 evolution-addre
 5289 ?        00:00:00 evolution-addre
 5310 tty5     00:00:00 ibus-engine-sim
 5311 ?        00:00:00 gvfsd-metadata
 5364 ?        00:00:00 gvfsd-network
 5375 ?        00:00:00 gvfsd-dnssd
 5443 tty5     00:00:00 update-notifier
 5461 tty5     00:00:02 gnome-software
 5563 ?        00:00:03 nautilus
 5951 tty5     00:00:00 deja-dup-monito

または、Linuxでユーザーのプロセスを一覧表示する別のコマンドpgrepがあります 。

pgrep -u sandy
Output -
4831
4832
4845
4849
4851
4856
4860
4958
4961
4966
4975
4980
4983
4997
5012
5023
5032
5034
5042
ユーザーが使用するすべてのプロセスを強制終了します

killall コマンドはすべてのユーザーのプロセスを強制終了します。

killall -u sandy

Linuxユーザーを削除する

すべてのユーザーのプロセスが強制終了されたら、ユーザーを削除できます。

userdel sandy

上で述べたように、デフォルトでは、コマンドはユーザーのホームディレクトリを削除しません。ユーザーのホームディレクトリも削除するには、– -rを追加します コマンドの引数。

userdel -r sandy

Linuxのグループからユーザーを削除する

ユーザーから権利を奪うことにした場合は、そのユーザーをグループから削除してください。

sudo gpasswd -d sandy python-programmers

ユーザーがグループのメンバーである場合、次のように出力されます–

Removing user sandy from group python-programmers

Linuxでグループを削除する

Linuxでグループを削除する場合は、groupdelを使用します コマンド。

groupdel username

削除グループがシステム上のいずれかのユーザーのプライマリグループである場合、そのグループを削除することはできません。その場合は、そのユーザーのプライマリグループを変更してください。

システムから監査人グループを削除します。

groupdel auditors
結論

これですべてです。 LinuxユーザーとLinuxグループの管理は簡単です。ユーザーを管理する方法を学んだら、サードパーティのライブラリやサービスに依存することなく、ファイルを安全かつプライベートに保つことができます。

記事の内容を見落としていると思われる場合は、下のコメントセクションでお知らせください。私はこの記事を3か月ごとにあなたの提案(あなたの名前で)で更新します。

下のコメント欄の説明がわからない場合はお知らせください。あなたがオタクで、記事に誤りを発見した場合は、お問い合わせページを使用するか、Discordサーバーに参加してお知らせください。


Linux
  1. Linuxユーザーとは何ですか?

  2. LinuxですべてのSudoユーザーを見つける方法

  3. ユーザーとグループ

  1. Linuxでuseraddを使用してユーザーを管理する方法

  2. Linuxでユーザーとグループを操作する方法

  3. Active Directoryでユーザーとグループを作成、管理、および削除します

  1. Linuxで複数のユーザーアカウントを作成する方法

  2. ユーザー、グループ、その他のLinux権限を管理する方法

  3. Linuxでユーザーを一覧表示する-最良の方法