Removendo a entrada do usuário de / etc / passwd

0

Estou tentando criar uma instrução sed para remover ftp e outros usuários que não precisamos em nossos servidores Redhat 5/6. Eu estou tentando criar um padrão de sed para que eu possa encontrar por exemplo ftp e remove a linha inteira. O que segue é o que eu tenho, mas não está funcionando:

sed '/ftp/d'  /etc/passwd
    
por user67186 30.05.2014 / 22:37

3 respostas

4

Como sugerido no comentário de Christopher , removendo um a entrada do usuário de /etc/passwd não remove todos os rastreamentos do usuário do sistema. Você está melhor fazendo algo como:

userdel ftp

ou

for user in <list of users>;do
    userdel $user
done

Você também pode fornecer a opção -r (como em userdel -r bob ) para remover também o conteúdo do diretório pessoal do usuário. Cuidado, porém, seria uma idéia terrível caso você esteja excluindo usuários do sistema, pois eles geralmente têm residências que vivem sob /etc e /var/lib .

    
por 30.05.2014 / 22:53
3

A Red Hat deve usar o GNU Sed, então isso deve funcionar.

sed -i '/pattern_you_are_matching/d' /dir/whatever-the-file

Note que a opção -i está disponível apenas no GNU Sed.

    
por 30.05.2014 / 22:44
1

você precisa adicionar a opção -i:

sed -i '/ftp/d' /etc/passwd

-i [SUFFIX], --in-place [= SUFFIX]

          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.
    
por 30.05.2014 / 22:46

Tags