ユーザーとグループの作成、アクセス権の設定、プロセス管理
1. 課題の設定
さて、これから実践的な作業が始まるよ!前回の講義で学んだ知識を活用できる場面だね。ユーザーを作成して、グループにまとめて、独自のアクセス権を割り当てたり、システム内のプロセスを操作したりしていくよ。「これ何に役立つの?」って思うかもしれないけど、想像してみて。君がシステム管理者やDevOpsエンジニアで、チームが共同作業するためのサーバーを設定する必要があるとしたら?または、単純に自分のPCをカオスから救うとか!実際にはこういう状況に結構出くわすんだ。
今回の目標は、以下のユーザーやプロセスの設定だよ:
- 2人のユーザーを作成する:
user1
とuser2
。2人はdevelopers
というグループで一緒に作業するよ。 - ファイル(例えば
project.txt
)を設定して、developers
グループのメンバーだけが編集できるようにする。 - いくつかのプロセスを作成する(例えば
sleep
コマンドを使って)し、必要に応じてそれらを終了させる方法を学ぶ。 - アクティブなプロセスを確認して、どのプロセスが最もリソースを消費しているかを特定する。
どう?これでプランは整ったね。さあ一歩ずつ進めていこう!
2. ステップ 1: ユーザーの作成
1. ユーザーを作成する
まず、2人のユーザーを作成します:
sudo adduser user1
sudo adduser user2
これらのコマンドを実行すると、システムがパスワードの設定を求め、各ユーザーの説明を入力するようになります。ここでは余計なデータを入力せず、Enterキーを押すだけで構いません。
各ユーザーには自動的に/home
ディレクトリにホームディレクトリが作成されます。それを確認することができます:
ls /home
ローカルで作業する場合は、管理者権限を得るために必ずsudo
を使用してください。また、WSLで作業している場合、ユーザーに関して特有の問題が発生する可能性があります。例えば、WSLではデフォルトのユーザーがすでにシステム管理者であることがあります。
3. ステップ2: グループを作成してユーザーを追加する
1. グループを作成する
プロジェクトで共同作業をするために、ユーザーをグループに追加します。最初にdevelopers
というグループを作成します:
sudo groupadd developers
2. ユーザーをグループに追加する
次に、user1
とuser2
をdevelopers
グループに追加します。このタスクにはusermod
コマンドを使用します:
sudo usermod -aG developers user1
sudo usermod -aG developers user2
3. グループメンバーシップを確認する
ユーザーが正しくグループに追加されていることを確認するには、以下を実行します:
groups user1
groups user2
user1
とuser2
がdevelopers
グループのメンバーであることが表示されるはずです。
4. ステップ3: ファイルとアクセス権の操作
1. プロジェクト用のファイルを作成する
ユーザーのホームディレクトリ(例:user1
)にproject.txt
ファイルを作成します:
sudo -u user1 touch /home/user1/project.txt
sudo -u
コマンドを使用して、他のユーザーとして操作を実行できます。
2. ファイルの所有者とグループを変更する
user1
を所有者に、developers
をグループに設定し、両方のユーザーが同じアクセス権を持つようにします:
sudo chown user1:developers /home/user1/project.txt
3. アクセス権を設定する
次に、ファイルのアクセス権を変更します。コマンドchmod
を使用します:
sudo chmod 660 /home/user1/project.txt
何をしたのか?所有者user1
とグループdevelopers
には読み書き権限rw-
を与え、その他の人にはアクセス権がありません。
コマンドls
を使用してアクセス権を確認できます:
ls -l /home/user1/project.txt
期待される結果:
-rw-rw---- 1 user1 developers 0 日付 時間 /home/user1/project.txt
5. 手順 4: プロセスの起動
1. プロセスを起動する
実験のために、コマンドsleep
を使っていくつかの「長生きする」プロセスを作成しよう:
sleep 300 &
sleep 400 &
sleep 500 &
それぞれのsleep
コマンドは、&
記号のおかげでバックグラウンドで実行されるよ。
プロセスのリストを確認するには、ps
コマンドを使おう:
ps
ps aux
を使うともっと詳しい情報が見れるよ:
ps aux | grep sleep
6. ステップ5: プロセスの終了
1. PIDでプロセスを終了する
プロセスのPIDを特定して(例えば、sleep
)それを終了します:
kill PID
ここで、PID
はプロセスIDです。これは ps
コマンドで確認できます。
2. 名前でプロセスを終了する
全てのsleep
プロセスを終了したい場合、killall
コマンドを使ってください:
killall sleep
3. pkill
を使用する
正確なプロセス名を覚えていない場合は、pkill
を使用して名前の一部一致でプロセスを終了できます:
pkill slee
7. ステップ6: プロセスの監視
システムの負荷を監視するには、以下を使用しよう:
top
— リアルタイムで操作するために使うよ:top
ここで、CPUやメモリの負荷、アクティブなプロセスを確認できるよ。インターフェースから直接プロセスを終了するには、
k
キーを使おう。htop
— もっと使いやすいインターフェースを提供するよ(インストール済みの場合):
終了するには、htop
F10
を押してね。
8. チェックリスト
すべてのステップを完了した後、以下を確認してください:
- 2人のユーザー
user1
とuser2
が作成されている。 - グループ
developers
を作成して設定し、2人のユーザーを追加した。 developers
グループだけがアクセスできるファイルproject.txt
を作成した。kill
,killall
,pkill
コマンドを使用していくつかのプロセスを作成して終了した。ps
,top
, またはhtop
でプロセスリストを確認した。
すべてが完了したなら、おめでとう!Linuxシステムでのユーザー、グループ、アクセス権、プロセス管理の主要なステップをすべて通過しました。コンソールの力が君とともにあれ!
GO TO FULL VERSION