Usando xargs para criar lista de usuarios [RESOLVIDO]

1. Usando xargs para criar lista de usuarios [RESOLVIDO]

mateus schott
mschott

(usa Debian)

Enviado em 06/07/2012 - 15:25h

Fala galera do VOL!

Tenho um arquivo com o seguinte conteudo:


nome1
nome2
nome3
nome4
nome5



Queria usar esta lista junto com o comando xargs para criar usuarios, tipo "cat arquivo | xargs useradd"
só que dá um erro:


Usage: useradd [options] LOGIN

Options:
-b, --base-dir BASE_DIR base directory for the new user account
home directory
-c, --comment COMMENT set the GECOS field for the new user account
-d, --home-dir HOME_DIR home directory for the new user account
-D, --defaults print or save modified default useradd
configuration
-e, --expiredate EXPIRE_DATE set account expiration date to EXPIRE_DATE
-f, --inactive INACTIVE set password inactive after expiration
to INACTIVE
-g, --gid GROUP force use GROUP for the new user account
-G, --groups GROUPS list of supplementary groups for the new
user account
-h, --help display this help message and exit
-k, --skel SKEL_DIR specify an alternative skel directory
-K, --key KEY=VALUE overrides /etc/login.defs defaults
-m, --create-home create home directory for the new user
account
-l, do not add user to lastlog database file
-M, do not create user's home directory(overrides /etc/login.defs)
-r, create system account
-o, --non-unique allow create user with duplicate
(non-unique) UID
-p, --password PASSWORD use encrypted password for the new user
account
-s, --shell SHELL the login shell for the new user account
-u, --uid UID force use the UID for the new user account
-Z, --selinux-user SEUSER use a specific SEUSER for the SELinux user mapping




Alguém sabe como devo fazer?
Vlw!!!


  


2. MELHOR RESPOSTA

Raimundo Alves Portela
rai3mb

(usa Outra)

Enviado em 07/07/2012 - 01:51h

O args coloca toda a saída para a entrada do próximo comando, então ficaria useradd usuario1 usuario2 o que resulta nesse erro ai.

faça:

for usuario in $(cat usuarios.txt); do useradd $usuario; done



3. Re: Usando xargs para criar lista de usuarios [RESOLVIDO]

mateus schott
mschott

(usa Debian)

Enviado em 09/07/2012 - 10:19h

sim tinha percebido que ele usava todos os usuários do arquivo numa linha só, aproveitando andei lendo mas não entendi direito o que faz o $ no comando $(....), desde já agradeço!!


4. Re: Usando xargs para criar lista de usuarios [RESOLVIDO]

Raimundo Alves Portela
rai3mb

(usa Outra)

Enviado em 09/07/2012 - 11:22h

o "$(...)" é um sub-shell, ou seja o conteúdo interno será executado antes do conteúdo externo, é semelhante ao que acontece na matemática com: x = 2 * ( 2 + 3 )

É um atalho para o antigo ` ` ( que é mais difícil de ver )


5. Re: Usando xargs para criar lista de usuarios [RESOLVIDO]

mateus schott
mschott

(usa Debian)

Enviado em 09/07/2012 - 11:30h

Obrigado pela resposta rai3mb, estou estudando para a LPIC 1 e vi seguido esse comando e não tinha entendido direito, agora ficou claro. Abraço


6. Usando o xargs para criar conta de usuários

Leandro Jose Nunes Oliveira
ljnoleo

(usa Debian)

Enviado em 16/03/2015 - 17:12h

rai3mb escreveu:

O args coloca toda a saída para a entrada do próximo comando, então ficaria useradd usuario1 usuario2 o que resulta nesse erro ai.

faça:

for usuario in $(cat usuarios.txt); do useradd $usuario; done




Pode-se usar o seguinte comando usando o xargs:
# cat arquivo_lista_de_usuario | xargs -n1 useradd







7. Usando o xargs para criar conta de usuários

Leandro Jose Nunes Oliveira
ljnoleo

(usa Debian)

Enviado em 16/03/2015 - 17:14h

Pode-se usar o seguinte comando usando o xargs:
# cat arquivo_lista_de_usuario | xargs -n1 useradd


8. xargs "salva vidas"

edson silva
lugh

(usa Debian)

Enviado em 20/03/2015 - 09:05h


cat lista | xargs -i ksh -c "/usr/sbin/useradd {}"

Exemplo de uso:
bash-3.2# cat lista
teste
teste2
teste3
bash-3.2# cat lista | xargs -i ksh -c "/usr/sbin/useradd {}"
bash-3.2# grep teste /etc/passwd
teste:x:6014:1::/home/teste:/bin/sh
teste2:x:6015:1::/home/teste2:/bin/sh
teste3:x:6016:1::/home/teste3:/bin/sh
bash-3.2# cat lista | xargs -i ksh -c "/usr/sbin/userdel {}"
bash-3.2# grep teste /etc/passwd
bash-3.2#








Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts