ノート:
- このチュートリアルは、Oracle提供の無料ラボ環境で入手できます。
- Oracle Cloud Infrastructureの資格証明、テナンシおよびコンパートメントに例の値を使用します。演習を完了するときは、これらの値をクラウド環境に固有の値に置き換えます。
Oracle Linuxでのユーザーおよびグループの作成
イントロダクション
次のチュートリアルでは、Oracle Linuxでユーザーおよびグループの管理を実行するための手順について説明します。ユーザーとグループを作成し、ユーザー・プライベート・グループを実装し、ユーザーに昇格された権限を付与します。このチュートリアルはOracle Linux 8ユーザーを対象としていますが、コマンドは他のOracle Linuxリリースでも入手できます。
目的
この演習では、次のことを行います。
- 新規ユーザーを作成し、ユーザーのホーム・ディレクトリを確認します
- 新しいグループの作成とグループへの追加
- ユーザー・プライベート・グループ・スキームを利用して、ディレクトリへの書込みアクセスを実装します。
- root特権を付与するための
sudo
コマンドを管理します
必要事項
- Oracle Linux 8がインストールされているシステム
ノート:無料の演習環境を使用する場合は、接続やその他の使用方法の手順について、Oracle Linuxの演習の基本を参照してください。
ユーザー・アカウントの管理
この項では、コマンドライン・ユーティリティを使用して、新規ユーザー・アカウントの作成、新規ユーザーの追加時に更新されるファイルの表示、ユーザー・アカウントの変更、新規ユーザーのパスワードの設定、新規ユーザーとしてログインします。
-
端末を開き、Oracle Linux 8インスタンスに接続します。
-
rootユーザーになります。
sudo su -
-
rootユーザーとして、aliceという名前のユーザーを追加します。
useradd alice
ユーザーが
/etc/passwd
ファイルに追加されます。 -
/etc/passwd
ファイルのaliceエントリを表示します。grep alice /etc/passwd
次が出力に表示されます。
- 新しいユーザーのUIDとGIDは同じです(
1001
)。 - 新規ユーザー(
/home/alice
)に対してホーム・ディレクトリが作成されました。 - 新規ユーザーのデフォルト・シェルは
/bin/bash
です。
- 新しいユーザーのUIDとGIDは同じです(
-
ホーム・ディレクトリを表示します。
ls -l /home
この例では、opcユーザーがすでに存在します。
/etc/login.defs
のCREATE_HOMEパラメータがyes
に設定されているため、新規ユーザーのホーム・ディレクトリが作成されました。 -
/etc/login.defs
ファイルのCREATE_HOMEパラメータを表示します。grep CREATE_HOME /etc/login.defs
-
/etc/default/useradd
に格納されている新規ユーザーのデフォルト設定を表示します。cat /etc/default/useradd
SKELパラメータは
/etc/skel
に設定されています。 -
/etc/skel
ディレクトリの内容を表示します。ls -la /etc/skel
-
aliceホームディレクトリの内容を表示します。
ls -la /home/alice
SKEL (
/etc/skel
)の内容は、新しいユーザーのホームディレクトリにコピーされます。 -
/etc/group
ファイルの新しいaliceエントリを表示します。grep alice /etc/group
Oracle Linux 8はユーザープライベートグループ(UPG)スキームを使用するため、aliceユーザーの作成時に新しいプライベートグループ(alice、GID=1001)が作成されました。
-
aliceユーザーのGECOS情報を変更します。GECOS情報の変更の前後に、
/etc/passwd
ファイルのaliceエントリを表示します。grep alice /etc/passwd usermod -c "Alice Smith" alice grep alice /etc/passwd
-
aliceユーザーのパスワード
AB*gh246
を作成します。aliceのパスワードの作成前および作成後に、/etc/shadow
ファイルのaliceエントリを表示します。grep alice /etc/shadow passwd alice grep alice /etc/shadow
aliceの
!!
は、ハッシュされたパスワード値に置き換えられます。 -
rootログインを終了し、aliceユーザーとしてログインします。プロンプトが表示されたら、
AB*gh246
のパスワードを指定します。exit su - alice
-
aliceユーザーであり、現在のディレクトリが aliceユーザーのホームディレクトリであることを確認します。
whoami pwd
-
aliceユーザーのシェルを終了し、rootユーザーになります。
exit sudo su -
-
rootユーザーとして、この演習の後半で使用する oracleという名前のユーザーを追加します。
useradd oracle
-
oracleユーザーのパスワード
XY*gh579
を作成します。passwd oracle
グループ・アカウントの管理
この項では、新規グループ・アカウントを作成し、この新規グループにユーザーを追加します。
-
rootユーザーとして、staffという名前のグループを追加します。
groupadd staff
グループが
/etc/group
ファイルに追加されます。 -
/etc/group
ファイルの最後の10エントリを表示します。tail /etc/group
新しいグループのGID (
1003
)は1ずつ増分されます。 -
aliceユーザーを staffグループに追加します。
/etc/group
ファイルの staffグループエントリを表示します。usermod -aG 1003 alice grep staff /etc/group
aliceユーザーは、staffグループにセカンダリグループメンバーシップを持っています。
-
aliceのプライマリグループメンバーシップを表示します。
grep alice /etc/passwd
aliceユーザーのプライマリ・グループは
1001
のままです。
ユーザー・プライベート・グループの実装
この項では、ユーザー・プライベート・グループ・スキームを使用して、異なるユーザーに単一のディレクトリ内のファイルへの書込みアクセス権を付与します。
-
rootユーザーとして、
/staff
ディレクトリを作成します。mkdir /staff
-
/staff
ディレクトリとその権限を表示します。ls -ld /staff
-
/staff
ディレクトリのグループ所有権を staffグループに変更します。-R
オプション(再帰的)は、/staff
内のファイルおよびディレクトリのグループを設定します。グループ所有権の変更後に、/staff
ディレクトリとその権限を表示します。chgrp -R staff /staff ls -ld /staff
/staff
ディレクトリの所有者はrootのままですが、グループは現在はstaffです。 -
/staff
ディレクトリで setgidビットを設定します。次に、/staff
ディレクトリの権限を表示します。chmod -R 2775 /staff ls -ld /staff
/staff
ディレクトリのグループ権限が変更されました。 -
oracleユーザーを staffグループに追加します。oracleユーザーを追加した後、
/etc/group
ファイルのstaffエントリを表示します。usermod -aG staff oracle grep staff /etc/group
aliceユーザーと oracleユーザーはどちらも、staffグループにセカンダリグループメンバーシップを持っています。
-
oracleユーザーになります。現在 rootユーザーであるため、oracleユーザーのパスワードの入力を求められません。oracleユーザーであり、現在のディレクトリがoracleユーザーのホーム・ディレクトリであることを確認します。
su - oracle whoami pwd
-
oracleユーザーのグループ・メンバーシップを表示します。
groups
oracleユーザーは、oracleと staffの2つのグループに属します。
-
/staff
ディレクトリに移動します。oracle_file
という名前の/staff
ディレクトリに新しいファイルを作成します。新しいファイルのアクセス権と所有権を表示します。cd /staff touch oracle_file ls -l oracle_file
staffグループのアクセス権は読み取り/書き込み可能です。
-
aliceユーザーになります。プロンプトが表示されたら、
AB*gh246
のパスワードを指定します。aliceユーザーであることを確認します。su - alice whoami
-
aliceユーザーのグループ・メンバーシップを表示します。
groups
aliceユーザーは、aliceと staffの2つのグループに属しています。
-
/staff
ディレクトリに移動します。alice_file
という名前の/staff
ディレクトリに新しいファイルを作成します。新しいファイルのアクセス権と所有権を表示します。cd /staff touch alice_file ls -l
staffグループの両方のファイルに対する読み取り/書き込み権。
-
aliceユーザーとして、
touch
コマンドを使用してoracle_file
のタイムスタンプを更新します。ファイルを表示して時間が変更されたことを確認します。touch oracle_file ls -l
タイムスタンプを更新すると、ファイルが oracleユーザーによって作成された場合でも、aliceユーザーとしてファイルの書き込みアクセス権が暗黙的に指定されます。
-
aliceユーザーのシェルと oracleユーザーのシェルの両方を終了して、rootユーザーのシェルに戻ります。rootユーザーであることを確認します。
exit exit whoami
オプション1:ユーザーへの昇格された権限の付与
この項では、/etc/sudoers
ファイルにエントリを追加して、sudo
権限をユーザーに付与します。
-
aliceユーザーになります。現在 rootユーザーであるため、aliceパスワードの入力を求められません。aliceユーザーであることを確認します。
su - alice whoami
-
aliceユーザーとして、newuserを追加しようとします。
useradd newuser
aliceユーザーには、newuserを追加する権限がありません。
-
前の
useradd
コマンドの前にsudo
コマンドを挿入して、newuserを追加します。プロンプトが表示されたら、AB*gh246
のパスワードを指定します。sudo useradd newuser
適切な認可なしでこの管理者コマンドを発行しようとすると、
/var/log/secure
ファイルにレポートされます。 -
aliceユーザーのシェルを終了して、rootユーザーのシェルに戻ります。
/var/log/secure
ファイルのsudoersエントリを表示します。exit grep sudoers /var/log/secure
/sbin/useradd
コマンドの使用を試みるためのalice : user NOT in sudoersエントリは、/var/log/secure
ファイルにあります。この例では、複数のエントリが示されています。エントリは1つだけです。 -
rootユーザーとして、
visudo
コマンドを使用して/etc/sudoers
ファイルを編集します。visudo
このコマンドは、
vim
エディタを使用して/etc/sudoers
ファイルを開きます。 -
/etc/sudoers
ファイルで、次の行を追加して、aliceユーザーに/sbin/useradd
コマンドを実行する権限を付与します。alice ALL=(ALL) /sbin/useradd
新しいエントリが強調表示されます。変更を保存し、
visudo
コマンドを終了します。 -
aliceユーザーになります。
sudo
コマンドなしで newuserを追加しようとします。sudo
コマンドを挿入し、newuserを2回追加しようとします。プロンプトが表示されたら、AB*gh246
のパスワードを指定します。su - alice useradd newuser sudo useradd newuser
-
newuserが追加されたことを確認します。
grep newuser /etc/passwd ls -l /home
現在、newuserが存在します。
/etc/sudoers
ファイルのaliceエントリでは、aliceユーザーは/sbin/useradd
コマンドを実行するためのsudo
権限を持ちます。 -
aliceシェルを終了して rootシェルに戻ります。
visudo
コマンドを使用して、この演習で前に追加した/etc/sudoers
ファイルからaliceエントリを削除します。exit visudo
削除するエントリが強調表示されます。行全体を削除するか、この例では
#
文字を挿入して行をコメント・アウトします。変更を保存し、visudo
コマンドを終了します。 -
aliceユーザーが新しいユーザーを追加できなくなったことを確認します。aliceユーザーになります。
sudo
コマンドを使用して anotheruserを追加しようとします。su - alice sudo useradd anotheruser
適切な認可なしでこの管理者コマンドを発行しようとすると、
/var/log/secure
ファイルにレポートされます。 -
aliceユーザーのシェルを終了して、rootユーザーのシェルに戻ります。
exit
オプション2:ユーザーへの昇格された権限の付与
この項では、wheelグループにユーザーを追加してsudo
権限を付与します。
-
rootユーザーとして、
/etc/sudoers
ファイルのwheelエントリを表示します。grep wheel /etc/sudoers
/etc/sudoers
ファイルの %wheel ALL=(ALL) ALLエントリを使用すると、wheelグループのすべてのメンバーは、sudo
の前にある任意のコマンドを実行できます。 -
aliceユーザーを wheelグループに追加します。aliceユーザーが wheelグループ内にあることを確認します。
usermod -aG wheel alice grep wheel /etc/group
ユーザー aliceには、wheelグループにセカンダリグループメンバーシップがあります。
-
aliceユーザーになります。現在 rootユーザーであるため、aliceパスワードの入力を求められません。aliceユーザーであることを確認します。
su - alice whoami
-
aliceユーザーとして、
sudo useradd
コマンドを使用してthirduserを追加します。プロンプトが表示されたら、AB*gh246
のパスワードを指定します。sudo useradd thirduser
-
thirduserが追加されたことを確認します。
ls
コマンドは、sudo
を挿入してaliceパスワードを指定するまで失敗します。これにより、aliceユーザーがsudo
権限を持っていることが確認されます。grep thirduser /etc/passwd ls -la /home/thirduser sudo ls -la /home/thirduser
その他の学習リソース
docs.oracle.com/learnの他のラボを調べるか、Oracle Learning YouTubeチャネルでさらに無料の学習コンテンツにアクセスします。さらに、education.oracle.com/learning-explorerにアクセスしてOracle Learning Explorerにします。
製品ドキュメントは、Oracleヘルプ・センターを参照してください。
Create users and groups on Oracle Linux
F49507-04
May 2022
Copyright © 2021, Oracle and/or its affiliates.