ユーザーのアカウントおよび権限の確認

ロック解除されたユーザー・アカウントがないかシステムをチェックすることは、多くの場合、適切なセキュリティ・プラクティスとみなされます。たとえば、次のコマンドを使用します:

for u in $(awk -F: '{print $1}' /etc/passwd;); do sudo passwd -S "$u"; done | sort

次のような出力結果が表示されます。

adm LK 2023-03-31 0 99999 7 -1 (Alternate authentication scheme in use.)
bin LK 2023-03-31 0 99999 7 -1 (Alternate authentication scheme in use.)
chrony LK 2023-06-20 -1 -1 -1 -1 (Password locked.)
clevis LK 2023-06-20 -1 -1 -1 -1 (Password locked.)
cockpit-wsinstance LK 2023-06-20 -1 -1 -1 -1 (Password locked.)
cockpit-ws LK 2023-06-20 -1 -1 -1 -1 (Password locked.)
...

このコマンドの出力の2番目のフィールドに、ユーザー・アカウントがロックされているかどうか(LK)、パスワードがないかどうか(NP)、または有効なパスワードがあるかどうか(PS)が示されます。3番目のフィールドには、ユーザーがパスワードを最後に変更した日付が示されます。残りのフィールドには、パスワードの最小経過期間、最大経過期間、警告期間、非アクティブ期間およびパスワードのステータスに関するその他の情報が示されます。期間の単位は日数です。

保護されていないアカウントにパスワードを設定するには、passwdコマンドを使用します。

未使用のアカウントをロックするには、passwd -lコマンドを使用します。userdelコマンドを使用して、アカウントを完全に削除することもできます。

注意:

システム・アカウントを保持する必要があります。これらはユーザーID数が1000未満のアカウント、特にユーザーID数が100未満のアカウントです。

詳細は、passwd(1)およびuserdel(8)の各マニュアル・ページを参照してください。

ユーザー・パスワードのエージング方法を指定するには、次の表で説明する/etc/login.defsファイルの設定を編集します。

設定 説明

PASS_MAX_DAYS

パスワードを変更するまでに使用できる最大日数。デフォルト値は99,999日です。

PASS_MIN_DAYS

パスワードを変更する間隔として許容される最大日数。デフォルト値は0日です。

PASS_WARN_AGE

パスワードの期限が切れる前に警告が表示される日数。デフォルト値は7日です。

詳細は、login.defs(5)マニュアル・ページを参照してください。

ユーザー・アカウントが非アクティブになってからロックされるまでの期間を変更するには、usermodコマンドを使用します。たとえば、次のように非アクティブ期間を30日に設定します。

sudo usermod -f 30 username

新規ユーザー・アカウントのデフォルトの非アクティブ期間を変更するには、useraddコマンドを使用します。

sudo useradd -D -f 30

-1は、非アクティブのためにユーザー・アカウントがロックされることはありません。

詳細は、useradd(8)およびusermod(8)の各マニュアル・ページを参照してください。

root以外のユーザー・アカウントのユーザーIDが0でないことを確認するには、次のコマンドを使用します。

sudo awk -F":" '$3 == 0 { print $1 }' /etc/passwd

このコマンドの出力は次のとおりです。

root

デフォルトのユーザー・アカウントとパスワードを作成するソフトウェアをインストールする場合、ベンダーのデフォルト・パスワードをただちに変更することは、適切なセキュリティ・プラクティスとみなされます。OpenLDAPなどのLDAP実装を使用する集中ユーザー認証では、ユーザー認証および管理タスクを一元化できます。また、未使用のアカウントまたはパスワードなしのアカウントから発生するリスクを減らすことができます。

デフォルトでは、Oracle Linux 9システムは、ユーザーがrootとして直接ログインできないように構成されています。システム・アカウンティングで特権管理アクションを実行するユーザーの元のユーザー名をトレースできるように、suまたはsudoコマンドを使用してrootユーザーとしてタスクを実行する前に、指定ユーザーとしてログインする必要があります。sudoコマンドを使用して、特定のユーザーに特定の管理タスクを実行する権限を付与するには、visudoコマンドを使用して/etc/sudoersファイルを構成します。

たとえば、次のエントリでは、sudoコマンドの使用時にユーザーuser1rootと同じ権限が付与されており、一方、user2には、systemctlrpmおよびdnfなどのコマンドを実行できるように、限定された権限が定義されています。

user1           ALL=(ALL)       ALL
user2           ALL= SERVICES, SOFTWARE

ユーザー・アカウントおよび認証の設定の詳細は、『Oracle Linux 9 システム・ユーザーおよび認証の設定』を参照してください。