ノート:
- このチュートリアルは、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.