foo
私たちはルートのuid、guid、およびグループに何らかの形でリンクされたユーザーアカウントを持っています。実行すると、id foo
すべてのルートID情報が返されます。
id foo
uid=0(root) gid=0(root) groups=0(root)
このユーザーアカウントはここにいない古い同僚のアカウントであり、サーバーからそのアカウントを完全に削除したいと思います。実行すると、ps -ef | grep foo
そのユーザーのプロセスは返されないため、そのユーザー名で実行されているものは何もないと確信しています。
実行すると、userdel foo
表示されるアカウントはrootで、uid = 0であると確信していますが、そのアカウントはまだ表示されるため、foo
ユーザーアカウントは存在しないとマークされます。/etc/passwd
foo:x:0:0::/home/foo:/bin/bash
このアカウントをキャンセルするにはどうすればよいですか? usermodを実行し、uid、gid、およびグループを変更する必要がありますか?未使用のランダムなuid(例:uid = 1099(foo))を選択すると問題が発生しますか?
私はCentOS 7を使用しており、サーバーはActive Directoryに接続していますが、fooアカウントはLinuxサーバーのローカルアカウントです。 Linux を AD に接続する前にユーザーが終了したため、アカウントは Active Directory に存在しなくなります。
答え1
なぜuidがuserdel
存在するのかわからず、誤ってルートを削除したくないので、このようなツールを使用しないことをお勧めします。foo
0
代わりに、アイテムは独自/etc/passwd
に編集され削除されますfoo
。ルート自体に正しいエントリがあることを確認してください。
root:x:0:0:root:/root:/bin/bash
についても同じことを行います/etc/group
。削除された項目foo
と確認済みの項目root
:
root:x:0:
その後、パスワードの入力を確認して/etc/shadow
削除し、入力をfoo
確認してくださいroot
。項目は次root
のようになります。
root:SOMEPASSWORDCODE:17219:0:99999:7:::
foo
たぶんinのための追加項目があるかもしれません/etc/group
。考えられる例:
audio:x:29:foo,pulse
クリーンアップ操作の場合は、これらのアイテムからfoo
そのコンテンツも削除しますfoo,
。
存在する場合は/home/foo
確認して削除してください。
現在foo
と同じですroot
。 fooが所有するプロセスまたはファイルはすべてに属しているため、見つかりませんroot
。ファイルとプロセスの所有者は、名前ではなくuidとして登録されます。したがって、uidが0のプロセスまたはファイルはすべてルートとして表示されます。 (またはすべてのルートプロセスとファイルが代わりに表示されることがありますfoo
)root
。
答え2
vipw
とを使用して、そのアカウントの行を削除できます。これが完了すると、そのアカウントは技術的に消えます。foo
/etc/passwd
/etc/shadow
vipw
バージョンに応じて変更操作に使用すると、/etc/passwd
「あなたは編集しますか?(Y / N)」というメッセージが表示されるか、編集に/etc/shadow
使用することを提案できます。vipw -s
/etc/shadow
vigr
多くのLinuxディストリビューションには対応する編集コマンドがあります/etc/group
(/etc/gshadow
存在する場合)。
vipw
を使用すると、vigr
ファイルを直接編集するよりも安全です。これは、編集前にファイルのコピーを作成し、元のファイルを編集済みコピーに置き換える前にいくつかの完全性チェックを実行するためです。
アカウントを削除すると、ユーザーのホームディレクトリとローカルメールプールに対して必要なすべての操作を実行/etc/passwd
できます。/home/foo
/var/mail/foo
また、ジョブスケジューラを確認したい場合があります。レイアウトは若干異なる場合がありますが、少なくともDebianシステムにはディレクトリがありますatjobs
。atspool
crontabs
/var/spool/cron/
foo