-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 ファイルを手動で編集する必要があります。
vipw
vipw -s
編集し/etc/passwd
て/etc/shadow
vigr
vigr -s
編集し/etc/group
て/etc/gshadow