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— もっと使いやすいインターフェースを提供するよ(インストール済みの場合):
終了するには、htopF10を押してね。
8. チェックリスト
すべてのステップを完了した後、以下を確認してください:
- 2人のユーザー
user1とuser2が作成されている。 - グループ
developersを作成して設定し、2人のユーザーを追加した。 developersグループだけがアクセスできるファイルproject.txtを作成した。kill,killall,pkillコマンドを使用していくつかのプロセスを作成して終了した。ps,top, またはhtopでプロセスリストを確認した。
すべてが完了したなら、おめでとう!Linuxシステムでのユーザー、グループ、アクセス権、プロセス管理の主要なステップをすべて通過しました。コンソールの力が君とともにあれ!
GO TO FULL VERSION