一意でないIDを持つユーザーを作成し、コマンド-o -u 1000 -m
にオプションを渡しました。useradd
IDは同じですが、名前とホームディレクトリが異なる2人のユーザーがいます。
私はこれが(テスト目的で)新しいクリーンな環境を作成し、いくつかの開発ディレクトリとファイルへの同じアクセスを維持するソリューションであると考えました。
ユーザーが自分のデスクトップ環境で正常に作成されログインしたが、端末で手動で起動されたアプリケーションは、元のユーザーのホームディレクトリを使用していました。それでは、始めましょ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の起動スクリプトです。grep
getentコマンドを使用せずにbinディレクトリの内容に対して迅速な再帰を実行しました。以下は私が使用するコマンドです。
grep -r -i "getent|passwd" ./idea_install/bin
ありがとうございます。
ベストアンサー1
ユーザー名に興味があるほとんどのプログラムはUIDを見つけるために照会を実行し、getent()
それからそれを使用します。これは、ユーザーがuid(番号)として識別されるためです。名前はきれいな印刷と便利さ以上です。
たとえば、id 1000
またはを実行するgetent passwd 1000
と、そのuidの最初の項目のみが表示されます。
2番目のユーザーを削除するために同様のコマンドを使用するuserdel
ことは安全ではありません。deluser
削除される可能性が高いからです。最初彼らはuid 1000を持つユーザーを見つけました。
代わりに、passwdファイルとgroupファイルを手動で編集する必要があります。
vipw
編集してvipw -s
/etc/passwd
/etc/shadow
vigr
編集してvigr -s
/etc/group
/etc/gshadow