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

11

Sumário

Posso criar um novo usuário sem criar spool de correio e sem modificar /etc/default/useradd?

Explicação

Quero criar um usuário que tenha um diretório inicial e um esqueleto, mas não quero que o useraddscript adicione um arquivo de spool de correio ao sistema unix.

Meu /etc/default/useraddarquivo afirma 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, -dmas parece que não consigo encontrar uma opção para não criar um spool de email .

Estou pensando em existe uma opção para usar /etc/default/useraddarquivo personalizado .

drinchev
fonte

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 o seguinte:

# useradd -K MAIL_DIR=/dev/null nomailuser

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

quanta
fonte
Obrigado, funciona como um encanto. Existe algum motivo específico que -K CREATE_MAIL_SPOOL=nonão funcione?
11133 drinchev
1
Porque não pertence /etc/login.defs.
quanta
@quanta, pois -K MAIL_DIR=/dev/nullrecebi um erro: #Creating mailbox file: Not a directory
Kirby
@drinchev, pois -K CREATE_MAIL_SPOOL=norecebi um erro configuration error - unknown item 'CREATE_MAIL_SPOOL' (notify administrator).
Kirby
Eu tenho o mesmo resultado que Kirby ... Eu estava usando-o para um recipiente janela de encaixe alpino então eu fui comecho "CREATE_MAIL_SPOOL no" >> /etc/default/useradd
Adi Roiban
5

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

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

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

Esta é uma diretiva do Dockerfile . Se você estiver enfrentando problemas com um host já em execução, 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 criar sua caixa de correio.
Se esse não for o comportamento desejado, você pode apenas criar a pasta / var / mail com

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

Ou no Dockerfile:

RUN mkdir /var/mail 

Espero que isso tenha ajudado.

Gaston Martin
fonte
3

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

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

Dennis Kaarsemaker
fonte