/etc/passwdからユーザーエントリを削除する

/etc/passwdからユーザーエントリを削除する

Redhat 5/6サーバーに不要な追加ユーザーをsed削除するステートメントを作成しようとしています。行全体を削除する例を見つけるためにパターンを作成しようとしていftpます。私が持っているものは次のとおりですが、動作しません。 sedftp

sed '/ftp/d'  /etc/passwd

答え1

暗示したようにクリストファーのコメント、ユーザーエントリを削除しても、/etc/passwdそのユーザーのすべてのトレースがシステムから削除されるわけではありません。次のようにする方が良いでしょう。

userdel ftp

または

for user in <list of users>;do
    userdel $user
done

-rスイッチ(図を参照userdel -r bob)を提供して、ユーザーのホームディレクトリの内容を削除することもできます。しかし、注意してください。悪い考えシステムユーザーを削除したい場合、これらのユーザーには通常、/etc下と下に住んでいる家族がいます/var/lib

答え2

Red HatはGNU Sedを使用するようになっているので、これが効果があります。

sed -i '/pattern_you_are_matching/d' /dir/whatever-the-file

-i オプションは GNU Sed でのみ使用できます。

答え3

-iオプションを追加する必要があります。

sed -i '/ftp/d' /etc/passwd

-i[サフィックス]、--in-place[=サフィックス]

          edit files in place (makes backup if extension  supplied).   The
          default  operation  mode  is  to  break symbolic and hard links.
          This can be changed with --follow-symlinks and --copy.

関連情報