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サーバーに参加してお知らせください。