Como criar uma conta linux com useradd sem criar spool de email

10

Resumo

Posso criar um novo usuário sem criar spool de e-mail e sem modificação de /etc/default/useradd ?

Explicação

Eu quero criar um usuário que tenha um diretório inicial e um skeletion, mas não quero que o script useradd adicione um arquivo de spool de correio ao sistema unix.

Meu arquivo /etc/default/useradd informa que

CREATE_MAIL_SPOOL=yes

mas não quero modificar o comportamento padrão.

Por enquanto estou usando

useradd nomailuser
rm /var/spool/mail/nomailuser

Também sei sobre -d , mas parece que não consigo encontrar uma opção para não criar um spool de email .

Estou pensando em uma opção para usar o arquivo /etc/default/useradd personalizado.

    
por drinchev 11.07.2013 / 16:07

3 respostas

9

man useradd

   -K, --key KEY=VALUE
       Overrides /etc/login.defs defaults (UID_MIN, UID_MAX, UMASK, PASS_MAX_DAYS and others).

       Example: -K PASS_MAX_DAYS=-1 can be used when creating system account to turn off password ageing, even though
       system account has no password at all. Multiple -K options can be specified, e.g.: -K UID_MIN=100 -K UID_MAX=499

Então, tente isto:

# useradd -K MAIL_DIR=/dev/null nomailuser

Um aviso aparecerá ( Criando arquivo de caixa de correio: não um diretório ), mas você pode ignorar.

    
por 11.07.2013 / 16:54
3

Curiosamente, a resposta é não. Acabei de ler o código fonte e não há nenhuma opção para isso, embora haja uma solução alternativa (mais ou menos): os maildirs não são criados para contas do sistema.

Então você pode fazer useradd -r -m . Você também precisará especificar um UID / GID manualmente, já que eles são escolhidos de diferentes intervalos.

    
por 11.07.2013 / 16:27
2

Estou configurando uma imagem do Docker com o Alpine e o pacote shadow e recebi o mesmo erro.

Para evitar esse erro "Criando arquivo de caixa de correio: Nenhum arquivo ou diretório" , tive de adicionar a seguinte substituição inline antes de tentar adicionar usuário:

RUN sed -i 's/^CREATE_MAIL_SPOOL=yes/CREATE_MAIL_SPOOL=no/' /etc/default/useradd

Esta é uma diretiva Dockerfile . Se você está lutando com um host já em execução, apenas edite o arquivo / etc / default / useradd e altere a configuração de acordo. Essa alteração impediria qualquer outra criação de usuário de obter sua caixa de correio criada. Não é esse o comportamento desejado, você pode simplesmente criar a pasta / var / mail com

[ -d /var/mail ] || mkdir /var/mail

Ou no Dockerfile:

RUN mkdir /var/mail 

Espero que isso tenha ajudado.

    
por 11.07.2018 / 16:01