Posso criar automaticamente um usuário com senha com pw adduser no freebsd?

1

Posso criar automaticamente um usuário com senha com pw adduser no freebsd?

 pw useradd [name] [switches]
        -V etcdir      alternate /etc location
        -C config      configuration file
        -q             quiet operation
  Adding users:
        -n name        login name
        -u uid         user id
        -c comment     user name/comment
        -d directory   home directory
        -e date        account expiry date
        -p date        password expiry date
        -g grp         initial group
        -G grp1,grp2   additional groups
        -m [ -k dir ]  create and set up home
        -M mode        home directory permissions
        -s shell       name of login shell
        -o             duplicate uid ok
        -L class       user class
        -h fd          read password on fd
        -H fd          read encrypted password on fd
        -Y             update NIS maps
        -N             no update
  Setting defaults:
        -V etcdir      alternate /etc location
        -D             set user defaults
        -b dir         default home root dir
        -e period      default expiry period
        -p period      default password change period
        -g group       default group
        -G grp1,grp2   additional groups
        -L class       default user class
        -k dir         default home skeleton
        -M mode        home directory permissions
        -u min,max     set min,max uids
        -i min,max     set min,max gids
        -w method      set default password method
        -s shell       default shell
        -y path        set NIS passwd file path

De acordo com isso, eu posso. Mas não sei como ... Parece que preciso usar um descritor de arquivo, mas não consegui ver nenhum exemplo de como fazer isso. Eu tenho um script bash que precisa fazer isso automaticamente sem entrada do usuário ...

Alguma idéia?

    
por olive 13.12.2010 / 18:35

2 respostas

3

Veja um exemplo usando um descritor de arquivo:

echo password | pw useradd -h 0 user1

Todo processo Unix normalmente possui três descritores de arquivos padrão:

  • stdin (0)
  • stdout (1)
  • stderr (2)

Nesse caso, estamos dizendo pw para ler a entrada de fd 0, também conhecida como stdin . Você pode querer rever a página bash man, que tem todos os tipos de exemplos de coisas sofisticadas que você pode fazer com descritores de arquivos e redirecionamento.

Observe que há alguns problemas de segurança com este exemplo - qualquer um que execute o comando ps no momento certo poderá ver o argumento para o comando echo . Isso pode ou não ser uma preocupação em seu ambiente. Você poderia fazer isso em vez disso:

pw useradd -h 0 user1 <<EOP
password
EOP
    
por 13.12.2010 / 20:15
0

Você precisará certificar-se de que seu sistema FreeBSD tenha o seguinte instalado

bash (pkg_add -r bash) esperar (pkg_add -r esperar)

Abaixo, um script que gera automaticamente senhas aleatórias e as aplica automaticamente à conta raiz. Você pode fazer disso um script de inicialização. Eu primeiro faria os seguintes diretórios.

  1. Do diretório raiz não mkdir .script da raiz
  2. Ter uma conta de usuário normal
  3. mkdir /var/log/.rec
  4. chown normaluser: normaluser /var/log/.rec
  5. coloque o script passgen.sh em .script, localizado na estrutura de arquivos raiz
  6. chmod 777 passgen.sh

    ! / usr / local / bin / bash

    PASSGEN = head -c 10 /dev/random | uuencode -m - | tr -d '\n' | cut -c 19-32

echo $PASSGEN > /var/log/.rec/encrypted

chown someuser:someuser /var/log/.rec/encrypted

chmod 666 /var/log/.rec/encrypted

Encryption is obfuscation

LOG=root

PASS=$PASSGEN

expect << EOF

spawn passwd $LOG

expect "New Password:"

send "${PASS}\r"

expect "Retype New Password:"

send "${PASS}\r"

expect eof;

EOF

agora adicione isto à sua inicialização rc.local / rc.d / rc.conf dependendo da sua versão do BSD.

Espero que isso ajude alguém lá fora, parece que este editor é filtrar alguns hashes e citações meio.

Obrigado Sean Hulbert

    
por 03.05.2014 / 03:33