/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.

관련 정보