我正在尝试创建一个sed
语句来删除ftp
Redhat 5/6 服务器上不需要的其他用户。我正在尝试创建一个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.