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.