useradd --create-home は Rocky Linux 8 ではホームディレクトリを追加しませんが、CentOS 7 では追加します。

useradd --create-home は Rocky Linux 8 ではホームディレクトリを追加しませんが、CentOS 7 では追加します。

ユーザーを追加してホームディレクトリを作成するためにスクリプトレットを実行するRPMがあります。これまでCentOS 7でこれを使用したことがありましたが、Rocky Linux 8で実行するにはこのRPMが必要なため、RPMを再構築しましたが(noarchですが他の変更が必要です)、Rocky 8にRPMをインストールするときにこの問題が発生しました。ユーザーの追加に関する問題 CentOS 7 では見たことのない内容です。

useradd: cannot create directory /opt/system-installer

スクリプトはいくつかのチェックを行い、必要に応じてグループを追加しますが、実際には次のコマンドを実行します。

useradd --system --gid usergroup --home-dir /opt/app-user --shell /sbin/nologin app-user --create-home --comment "App Management User"

端末でコマンドを実行しても問題はありませんが、RPMをインストールするたびにユーザーのホームディレクトリが作成されず、ユーザーの問題が発生します。実行する前にディレクトリを作成するためにスクリプトレットを変更しようとしましたが、ディレクトリがすでに存在するuseraddため、.bash *ファイルもコピーされません。

私もadduser代わりに試してみましたが、同じ問題が発生してホームディレクトリを作成できませんでした。

おそらく、RPMスクリプトレットの一部としてコマンドを実行することは、コマンドラインまたはbashスクリプトを介して実行するのとは異なる場合があります(私も試してみましたが、問題はありませんでした)root

私が持っているアイデアの1つは、コマンドを実行してファイルをコピーする一時的なアクションでしたが、/etc/skelそれは私にとってあまり正しいものではありません。

関連情報