一意でない ID を持つユーザーを削除する

一意でない ID を持つユーザーを削除する

-o -u 1000 -mコマンドにオプションを渡すことで、一意でない ID を持つユーザーを作成しましたuseradd。これで、同じ ID を持ちながら名前とホーム ディレクトリが異なる 2 人のユーザーができ
ました。これは、新しいクリーンな環境 (テスト目的) を作成し、開発ディレクトリとファイルへの同じアクセス権限を保持するための解決策になると思いました。

自身のデスクトップ環境でのユーザー作成とログインは成功したものの、ターミナルから手動で起動したアプリケーションの1つが元のユーザーのホームディレクトリを使用していました。そのためidea.shスキャンライト2ユーザーのホームディレクトリをまだ使用していましたわずかな光

これはどうして可能なのでしょうか? 2 番目のユーザーとして起動したにもかかわらず、このアプリケーションが元のユーザーのホーム ディレクトリを引き続き使用しているのはなぜですか?

ここにいくつかの環境変数の内容を示します。

$> echo $HOME
/home/scantlight_2

$> echo $USER
scantlight_2

$> cd ~
$> pwd
/home/scantlight_2

そしてすべてのテストを終えた後、
コマンドを使用してユーザー「scantlight_2」を削除しても安全ですか、それとも競合を避けるためにファイルuserdelから手動で削除する必要がありますか?/etc/shadow

編集: これはidea.sh「IntelliJ IDEA」IDE の起動スクリプトです。bingrepディレクトリの内容をすばやく再帰的に実行しましたが、getent コマンドは使用されていません。以下は私が使用したコマンドです。

grep -r -i "getent|passwd" ./idea_install/bin

ありがとう。

答え1

ユーザー名を考慮する必要があるほとんどのプログラムは、getent()UID を検索してそれを使用します。これは、ユーザーが uid (番号) によって識別されるためです。名前は、見栄えを良くして便利にする以上の意味はありません。

たとえば、id 1000または を実行するgetent passwd 1000と、その uid の最初のエントリのみが表示されます。

userdelまたはdeluser同様のコマンドを使用して 2 番目のユーザーを削除するのは安全ではありません。

これは、おそらく削除されるだろうからである。初め彼らが見つけた uid 1000 のユーザー。

代わりに、passwd ファイルと group ファイルを手動で編集する必要があります。

  • vipwvipw -s編集し/etc/passwd/etc/shadow
  • vigrvigr -s編集し/etc/group/etc/gshadow

関連情報