从 /etc/passwd 中删除用户条目

从 /etc/passwd 中删除用户条目

我正在尝试创建一个sed语句来删除ftpRedhat 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.

相关内容