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