Buscar

Capítulo 14 Criar um novo usuário Conteúdo

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 19 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 19 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 19 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Capítulo 14 - Criar um novo usuário
14.1 Introdução
No capítulo anterior, você viu que as informações da conta do usuário são armazenadas no arquivo /etc/passwd e as informações de autenticação do usuário (dados da senha) são armazenadas no arquivo /etc/shadow. Criar um novo usuário pode ser realizado adicionando manualmente uma nova linha a cada um desses arquivos, mas geralmente não é a técnica recomendada. Ao usar um comando apropriado para adicionar um novo usuário, esses arquivos podem ser modificados de forma automática e segura. Se você fosse modificar manualmente esses arquivos, você arriscaria cometer um erro que poderia impedir que todos os usuários pudessem fazer o login normalmente.
Em algumas distribuições, criar uma nova conta de usuário também cria automaticamente uma conta de grupo para o usuário, chamado Grupo Privado de Usuários (UPG). Nesses sistemas, o nome do grupo e do usuário seria o mesmo e o único membro desse novo grupo seria o novo usuário.
Para distribuições que não criam uma UPG, os usuários novos normalmente recebem o grupo "usuários" como seu grupo principal. O administrador pode criar manualmente contas de grupo que são privadas para o usuário, mas é mais comum que o administrador crie grupos para vários usuários que precisam colaborar. As contas de usuário podem ser modificadas a qualquer momento para adicioná-las ou removê-las de membros da conta de grupo, mas os usuários devem pertencer a pelo menos um grupo para uso como seu grupo primário.
Antes de começar a criar usuários, você deve planejar como você usará grupos. Os usuários podem ser criados com membros em grupos que já existem ou usuários existentes podem ser modificados para ter membros em grupos existentes.
Se você já planejou quais usuários e grupos deseja, é mais eficiente criar seus grupos primeiro e criar seus usuários com suas associações de grupo. Caso contrário, se você criar seus usuários primeiro e, em seguida, seus grupos, você precisará dar um passo extra para modificar seus usuários para torná-los membros de seus grupos.
14.2 Criando um Grupo
O motivo mais comum para criar um grupo é fornecer uma maneira para os usuários compartilhar arquivos. Um exemplo disso pode ser onde existem várias pessoas que trabalham juntas no mesmo projeto e precisam ser capazes de colaborar em documentos armazenados em arquivos para o projeto. Nesse cenário, o administrador pode fazer essas pessoas membros de um grupo comum, alterar a propriedade do diretório para o novo grupo e definir permissões no diretório que só permitirá que membros do grupo acessem os arquivos.
Depois de criar ou modificar um grupo, você pode verificar as mudanças visualizando as informações de configuração do grupo no arquivo /etc/group com o comando grep. Se estiver trabalhando com serviços de autenticação baseados em rede, o comando getent pode mostrar-lhe grupos locais e baseados em rede. Para o uso local, esses comandos mostram o mesmo resultado, neste caso para o grupo raiz:
root@localhost:~# grep root /etc/group
root:x:0:
root@localhost:~# getent group root
root:x:0:
O comando groupadd pode ser executado pelo usuário root para criar um novo grupo. O comando requer apenas o nome do grupo a ser criado. A opção -g pode ser usada para especificar um ID de grupo para o novo grupo:
root@localhost:~# groupadd -g 506 research
root@localhost:~# grep research /etc/group
research:x:506:
Se a opção -g não for fornecida, o comando groupadd fornecerá automaticamente um GID para o novo grupo. Para realizar isso, o comando groupadd examina o arquivo /etc/group e usa um número que é um valor maior do que o número GID mais alto atual. A execução dos seguintes comandos ilustra isso:
root@localhost:~# grep research /etc/group
research:x:506:
root@localhost:~# groupadd development
root@localhost:~# grep development /etc/group
development:x:507:
14.2.1 Considerações sobre ID de grupo
Em algumas distribuições Linux, particularmente aquelas baseadas no Red Hat, quando uma ID de usuário (UID) é criada, um grupo particular de usuários (UPG) também é criado com esse usuário como seu único membro. Nessas distribuições, o UID do usuário e o ID do grupo privado devem corresponder (seja o mesmo número).
Portanto, você deve evitar a criação de GIDs nos mesmos intervalos numéricos onde você espera criar IDs de usuário (UIDs), para evitar um conflito entre um GID que você cria contra um número UPG criado para coincidir com um UID.
Lembre-se de que os GID inferiores a 500 estão reservados para o uso do sistema. Pode haver momentos em que você deseja atribuir um GID inferior a 500. Para fazer isso, use o -r. A opção -r atribuirá ao novo grupo um GID que será menor que o UID padrão mais baixo:
root@localhost:~# groupadd -r sales
root@localhost:~# getent group sales 
sales:x:491:
14.2.2 Considerações de nomeação de grupo
Seguir estas orientações para nomes de grupo irá ajudá-lo a selecionar um nome de grupo que será portátil (função corretamente com outros sistemas ou serviços):
O primeiro caractere do nome deve ser um sublinhado _ ou um caractere alfabético em minúsculas a-z.
São permitidos até 32 caracteres na maioria das distribuições do Linux, mas usar mais de 16 pode ser problemático, pois algumas distribuições podem não aceitar mais de 16.
Após o primeiro personagem, os caracteres restantes podem ser alfanuméricos, o dash - ou um underscore _.
O último caractere não deve ser um hífen -.
Infelizmente, essas diretrizes nem sempre são aplicadas. O problema não é que o comando groupadd falhe necessariamente, mas que outros comandos ou serviços de sistema podem não funcionar corretamente.
14.3 Modificando um Grupo
O comando groupmod pode ser usado para alterar o nome do grupo (com a opção -n) ou alterar o GID (com a opção -g) para o grupo.
AVISO: alterar o nome do grupo pode causar confusão para os usuários que estavam familiarizados com o nome antigo e não foram informados sobre o novo nome. No entanto, alterar o nome do grupo não causará problemas ao acessar arquivos, uma vez que os arquivos são realmente de propriedade de GIDs, e não nomes de grupo. Por exemplo:
root@localhost:~# ls -l index.html
-rw-r-----. 1 root sales 0 Aug 1 13:21 index.html
root@localhost:~# groupmod -n clerks sales
root@localhost:~# ls -l index.html
-rw-r-----. 1 root clerks 0 Aug 1 13:21 index.html
Após o comando groupmod anterior, o arquivo index.html tem um nome diferente do proprietário do grupo. No entanto, todos os usuários que estavam no grupo de vendas estão agora no grupo de funcionários, então todos esses usuários ainda podem acessar o arquivo index.html. Novamente, isso ocorre porque o grupo é definido pelo GID, e não o nome do grupo.
Por outro lado, se você alterar o GID para um grupo, todos os arquivos associados a esse grupo não serão mais associados a esse grupo. Na verdade, todos os arquivos associados a esse grupo não serão mais associados a nenhum nome de grupo. Em vez disso, esses arquivos serão de propriedade de um GID somente, conforme mostrado abaixo:
root@localhost:~# groupmod -g 10003 clerks
root@localhost:~# ls -l index.html
-rw-r-----. 1 root 491 13370 Aug 1 13:21 index.html
Esses arquivos sem nome de grupo são chamados de arquivos "órfãos". Como usuário root, você pode querer procurar por todos os arquivos pertencentes apenas a um GID (não associado a um nome de grupo). Isso pode ser realizado com a opção -nogroup para o comando find:
root@localhost:~# find / -nogroup 
/root/index.html
14.4 Apagar um grupo
Se você decidir excluir um grupo com o comando groupdel, lembre-se de que qualquer arquivo pertencente a esse grupo se tornará "órfão".
Somente grupos suplementares podem ser excluídos, portanto, se um grupo for o grupo principal para qualquer usuário, ele não pode ser excluído. O administrador pode modificar qual grupo é o grupo principal de um usuário, de modo que um grupo que estava sendo usado como um grupo primário pode ser transformado em um grupo suplementar e, em seguida, pode ser excluído.
Enquantoo grupo a ser excluído não é o grupo principal de um usuário, a exclusão do grupo é realizada usando o comando groupdel juntamente com o nome do grupo:
root@localhost:~# groupdel clerks
14.5 Arquivo /etc/default/useradd
Antes de começar a criar usuários para o seu sistema, você deve verificar ou estabelecer valores práticos que serão usados por padrão com o comando useradd. Isso pode ser feito modificando configurações nos arquivos de configuração que são usados pelo comando useradd.
Garantir que os valores nesses arquivos de configuração sejam razoáveis antes de adicionar usuários podem ajudá-lo a economizar tempo e o problema de ter que corrigir as configurações da conta de usuário depois de adicionar os usuários.
A opção -D no comando useradd permitirá que você visualize ou altere alguns dos valores padrão usados pelo comando useradd. Os valores mostrados pelo useradd -D também podem ser visualizados ou atualizados manipulando o arquivo /etc/default/useradd:
root@localhost:~# useradd -D 
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
A tabela a seguir descreve cada um desses valores:
	Campo
	Exemplo
	Descrição
	GROUP
	100
	Nas distribuições que não utilizam UPG, este será o grupo primário padrão para um novo usuário, se um não for especificado com o comando useradd. Este é normalmente o grupo "usuários" com um GID de 100.
Esta configuração afeta a configuração padrão do arquivo /etc/passwd destacado abaixo:
bob:x:600:600:bob:/home/bob:/bin/bash
A opção -g para o comando useradd permite que você use um grupo primário diferente do padrão ao criar uma nova conta de usuário.
	HOME
	/home
	O diretório /home é o diretório base padrão do qual o novo diretório inicial do usuário será criado. Isso significa que um usuário com um nome de conta de bob teria um diretório pessoal de /home/bob.
Esta configuração afeta a configuração padrão do arquivo /etc/passwd destacado abaixo:
bob:x:600:600:bob:/home/bob:/bin/bash
A opção -b para o comando useradd permite que você use um grupo de diretório base diferente do padrão ao criar uma nova conta de usuário.
	INACTIVE
	-1
	Esse valor representa o número de dias após a expiração da senha que a conta está desabilitada. Um valor de -1 significa que este recurso não está habilitado por padrão e nenhum valor "inativo" é fornecido para novas contas por padrão.
Esta configuração afeta a configuração padrão do arquivo /etc/shadow destacado abaixo em:
bob:pw:15020:5:30:7:60:15050:
A opção -f para o comando useradd permite que você use um valor INACTIVO diferente do padrão ao criar uma nova conta de usuário.
	EXPIRE
	
	Por padrão, não há valor definido para a data de validade. Normalmente, uma data de validade é definida em uma conta individual, não todas as contas por padrão.
Por exemplo, se você tivesse um empreiteiro contratado para trabalhar até o final do dia 1 de novembro de 2013, você poderia garantir que eles não seriam capazes de fazer login depois dessa data, usando o campo EXPIRE.
Esta configuração afeta a configuração padrão do arquivo /etc/shadow destacado abaixo:
bob:pw:15020:5:30:7:60:15050:
A opção -e no comando useradd permite que você use um valor EXPIRE diferente do padrão ao criar uma nova conta de usuário.
	SHELL
	/bin/bash
	A configuração SHELL indica o shell padrão para usuários quando eles fazem login no sistema.
Esta configuração afeta a configuração padrão do arquivo /etc/passwd destacado abaixo:
bob:x:600:600:bob:/home/bob:/bin/bash
A opção -s para o comando useradd permite que você use um shell de logon diferente do padrão ao criar uma nova conta de usuário.
	SKEL
	/etc/skel
	O valor SKEL determina qual diretório "esqueleto" terá seu conteúdo copiado para o diretório inicial dos novos usuários. O conteúdo deste diretório é copiado para o diretório inicial do novo usuário e o novo usuário recebe propriedade dos novos arquivos.
Isso fornece aos administradores uma maneira fácil de "preencher" uma nova conta de usuário com os principais arquivos de configuração.
A opção -k para o comando useradd permite que você use um diretório SKEL diferente do padrão ao criar uma nova conta de usuário.
	CREATE_MAIL_SPOOL
	yes
	Um "spool de email" é um arquivo onde o email recebido é colocado.
Atualmente, o valor para criar um spool de email é sim, o que significa que os usuários, por padrão, são configurados com a capacidade de receber e armazenar correios locais. Se você não está planejando usar o correio local, esse valor pode ser alterado para no (não).
Para modificar um dos valores padrão do useradd, o arquivo /etc/default/useradd pode ser editado com um editor de texto. Outra técnica (mais segura) é usar o comando useradd -D.
Por exemplo, se você quisesse permitir que os usuários tenham senhas expiradas para as quais ainda pudessem fazer login por até trinta dias, então você poderia executar:
root@localhost:~# useradd -D -f 30
root@localhost:~# useradd -D
GROUP=100
HOME=/home
INACTIVE=30
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
14.6 Arquivo /etc/login.defs
O arquivo /etc/login.defs também contém valores que serão aplicados por padrão aos novos usuários que você crie com o comando useradd. Ao contrário do /etc/default/useradd, que pode ser atualizado com o comando useradd -D, o /etc/login.defs geralmente é editado diretamente pelo administrador para alterar seus valores.
Este arquivo contém muitos comentários e linhas em branco, então, se você quiser apenas visualizar linhas que não sejam comentários ou linhas em branco (as configurações de configuração reais), você pode usar o seguinte comando grep:
root@localhost:~# grep -Ev '^#|^$' /etc/login.defs
MAIL_DIR	/var/mail/spool
PASS_MAX_DAYS	99999
PASS_MIN_DAYS	0
PASS_MIN_LEN	5
PASS_WARN_AGE	7
UID_MIN			 500
UID_MAX			60000
GID_MIN			 500
GID_MAX			60000
CREATE_HOME	yes
UMASK 077
USERGROUPS_ENAB yes
ENCRYPT_METHOD SHA512
MD5_CRYPT_ENAB no
O exemplo acima representa um arquivo /etc/login.defs típico da distribuição do CentOS 6 com seus valores. A tabela a seguir descreve cada um desses valores:
	Campo
	Exemplo
	Descrição
	MAIL_DIR
	/var/mail/spool
	O diretório no qual o arquivo de spool de email do usuário será criado.
	PASS_MAX_DAYS
	99999
	Esta configuração determina o número máximo de dias que um usuário pode continuar a usar a mesma senha. Uma vez que é padrão para 99999 dias, ou mais de 200 anos, efetivamente significa que os usuários nunca precisam mudar sua senha.
Organizações com políticas efetivas para manter senhas seguras geralmente alteram esse valor para 60 ou 30 dias.
Esta configuração afeta a configuração padrão do arquivo /etc/shadow destacado abaixo:
bob:pw:15020:5:30:7:60:15050:
	PASS_MIN_DAYS
	0
	Com este conjunto para um valor padrão de 0 (zero), o menor tempo que um usuário é necessário para manter uma senha é zero dias, o que significa que eles podem mudar imediatamente uma senha que eles acabaram de definir.
Se o valor PASS_MIN_DAYS foi definido para 3 dias, depois de configurar uma nova senha, o usuário precisaria esperar três dias antes de poder mudar de novo.
Esta configuração afeta a configuração padrão do arquivo /etc/shadow destacado abaixo:
bob:pw:15020:3:30:7:60:15050:
	PASS_MIN_LEN
	5
	Isso indica o número mínimo de caracteres que uma senha deve conter.
	PASS_WARN_AGE
	7
	Este é o padrão para o campo de aviso. À medida que um usuário se aproxima do número máximo de dias que eles podem usar sua senha, o sistema verificará se é hora de começar a avisar o usuário sobre a mudança de senha no login.
Esta configuração afeta a configuração padrão do arquivo /etc/shadow destacado abaixo:
bob:pw:15020:3:30:7:60:15050:
	UID_MIN
	500
	O UID_MIN determina o primeiro UID que será atribuído a um usuário comum. Qualquer usuário com um UID que seria menor do que esse valor seria para uma conta do sistema ou a conta raiz.
	UID_MAX
	60000
	Um UID tecnicamente poderiater um valor de mais de quatro bilhões. Para compatibilidade máxima, recomenda-se que o deixe no seu valor padrão de 60000.
	GID _MIN
	500
	O GID _MIN determina o primeiro GID que será atribuído a um grupo comum. Qualquer grupo com um GID que seria menor do que esse valor seria para um grupo de sistema ou o grupo raiz.
	GID _MAX
	60000
	Um GID como um UID poderia ter um valor de mais de quatro bilhões. Qualquer valor que você use para seu UID_MAX, deve ser usado para GID_MAX para suportar UPG.
	CREATE_HOME
	yes
	O valor disto determina se um novo diretório será ou não criado para o usuário, quando sua conta for criada.
	UMASK
	077
	Este UMASK funciona no momento em que o diretório inicial do usuário está sendo criado; Ele determinará quais serão as permissões padrão neste diretório. Usar o valor padrão de 077 para UMASK significa que somente o proprietário do usuário terá qualquer tipo de permissão para acessar seu diretório.
O UMASK será abordado com mais detalhes em um capítulo posterior.
	USERGROUPS_ENAB
	yes
	Nas distribuições que apresentam um grupo particular para cada usuário, como mostra este exemplo do CentOS, o USERGROUPS_ENAB terá um valor de sim. Se o UPG não for utilizado na distribuição, isso terá um valor de não.
	ENCRYPT_METHOD
	SHA512
	O método de criptografia que é usado para criptografar as senhas dos usuários no arquivo /etc/shadow. A configuração ENCRYPT_METHOD substitui a configuração MD5_CRYPT_ENAB (veja a próxima linha).
	MD5_CRYPT_ENAB
	no
	Esta configuração obsoleta originalmente permitiu ao administrador especificar o uso da criptografia MD5 de senhas em vez da criptografia DES original. Agora é substituído pela configuração do ENCRYPT_METHOD.
14.7 Criando um usuário
Durante o processo de instalação, a maioria dos instaladores criará um usuário normal e dará a esse usuário a permissão para executar comandos administrativos com sudo ou exigir que a senha da conta de usuário raiz seja configurada como parte do processo de instalação. Isso significa que a maioria dos sistemas Linux será configurado para permitir que um usuário não privilegiado inicie sessão, além de ter a capacidade de efetivamente executar comandos como usuário raiz, direta ou indiretamente.
Se o computador for usado por uma única pessoa, então, ter apenas uma conta de usuário regular pode ser suficiente. No entanto, se um computador precisa ser compartilhado por várias pessoas, é desejável ter uma conta separada para cada pessoa que a usa. Existem várias vantagens para os indivíduos que possuem suas próprias contas separadas:
As contas podem ser usadas para conceder acesso seletivo a arquivos ou serviços. Por exemplo, o usuário de cada conta possui um diretório particular separado, geralmente não acessível aos outros usuários.
O comando sudo pode ser configurado para permitir a execução de comandos administrativos selecionados. Se os usuários forem obrigados a usar o comando sudo para executar comandos administrativos, o sistema será logado quando os usuários executarem esses comandos.
Cada conta pode ter associações e direitos de grupo associados, permitindo uma maior flexibilidade de gerenciamento.
14.7.1 Considerações sobre a conta
Criar uma conta de usuário para usar com um sistema Linux pode exigir que você colete várias informações. Enquanto tudo o que for necessário é o nome da conta, você também pode planejar o UID, o grupo primário, os grupos suplementares, o diretório inicial, o diretório do esqueleto e o shell a ser usado. Ao planejar esses valores, considere o seguinte:
Nome do usuário: O único argumento necessário para o comando useradd é o nome que deseja que a conta tenha. Este nome deve seguir as mesmas diretrizes discutidas anteriormente neste capítulo para nomes de grupos. Para resumir, deve ter 32 caracteres ou menos, começar com uma letra minúscula ou um sublinhado e, em seguida, só deve conter letras minúsculas, números, hifens e sublinhados. Se o usuário precisa acessar vários sistemas, geralmente é recomendado que o nome da conta seja o mesmo nesses sistemas. O nome da conta deve ser exclusivo para cada usuário.
Identificador de usuário (UID): Depois de criar um usuário com um UID específico, o sistema geralmente aumentará apenas um UID para o próximo usuário que você criou. Se estiver conectado a uma rede com outros sistemas, você pode querer garantir que este UID seja o mesmo em todos os sistemas para ajudar a fornecer um acesso consistente. A opção -u para o comando useradd permite que você especifique o número UID. Normalmente, os UIDs podem variar de zero a mais de quatro bilhões, mas para maior compatibilidade com sistemas mais antigos, o valor UID máximo recomendado é de 60.000.
Conforme discutido anteriormente, o usuário raiz possui um identificador de usuário (UID) de 0, que é o que faz com que a conta tenha privilégios especiais. Qualquer conta com um UID de zero efetivamente poderá atuar como o "administrador".
As contas do sistema são contas geralmente usadas para executar serviços em segundo plano (chamados daemons). Ao não ter os serviços executados como usuário root, a quantidade de danos que pode ser feita com uma conta de serviço comprometida é limitada. As contas do sistema usadas pelos serviços geralmente usarão UIDs que estão no intervalo "reservado". Uma conta do sistema que é uma exceção a esta regra é o usuário nfsnobody, que possui um UID de 65534.
O intervalo reservado usado para contas de serviço expandiu ao longo do tempo. Originalmente, era para UIDs entre 1 e 99. Então, expandiu para estar entre 1 e 499. A tendência atual entre as distribuições é que as contas do sistema serão qualquer conta que tenha um UID entre 1 e 999, mas o intervalo 1-499 também é comumente usado.
Se você estiver configurando um novo sistema, é uma boa prática iniciar seus UIDs não inferiores a 1000. Isso também tem a vantagem de garantir que você tenha UIDs suficientes disponíveis para muitos serviços do sistema e lhe dará a capacidade de criar muitos GIDs em o intervalo "reservado".
grupo primário: em distribuições que possuem UPG, este grupo será criado automaticamente com um nome GID e grupo que corresponde ao UID e ao nome de usuário da conta de usuário recém-criada. Em distribuições que não usam UPG, o grupo primário normalmente será padrão para o grupo "usuários" com um GID de 100. Para especificar um grupo primário com o comando useradd, use a opção -g com o nome ou GID do grupo.
grupo(s) suplementar(es): se você deseja tornar o usuário um membro de um ou mais grupos suplementares, a opção -G pode ser usada para especificar uma lista separada por vírgulas de nomes ou números de grupo.
Diretório inicial: por padrão, a maioria das distribuições criará o diretório inicial do usuário com o mesmo nome que a conta de usuário abaixo do /home. Por exemplo, se criar uma conta de usuário chamada sam, o novo diretório inicial do usuário seria /home/sam. Existem várias opções para o comando useradd que podem afetar a criação do diretório inicial do usuário:
A opção -b permite que você especifique um diretório diferente no qual o diretório inicial do usuário será criado. Por exemplo: -b /test resultaria em um diretório pessoal de /test/sam para uma conta de usuário chamada sam.
A opção -d permite que você especifique um diretório existente ou um novo diretório inicial para criar para o usuário. Este deve ser um caminho completo para o diretório inicial do usuário. Por exemplo: -d /home/sam
A opção -m diz ao useradd para criar o diretório inicial; normalmente não é necessário, pois este é o comportamento padrão do comando useradd. No entanto, ao usar a opção -k (veja abaixo) para especificar um diretório de esqueleto diferente, a opção -m é necessária.
A opção -M é usada para especificar o comando useradd que não deve criar o diretório inicial
Diretório de esqueleto: Por padrão, o conteúdo do diretório /etc/skel é copiado para o diretório inicial do novo usuário. Os arquivos resultantes também são de propriedade do novo usuário.Ao usar a opção -k com o comando useradd, o conteúdo de um diretório diferente pode ser usado para preencher o diretório inicial de um novo usuário. Ao especificar o diretório de esqueleto com a opção -k, a opção -m deve ser usada ou então o comando useradd falhará com um erro informando, "a bandeira -k só é permitida com o sinalizador -m."
shell: enquanto o shell padrão é especificado no arquivo /etc/default/useradd, ele também pode ser substituído pela opção useradd -s no momento da criação da conta. Mais tarde, o administrador pode usar a opção usermod -s para alterar o shell ou o usuário pode alterar seu shell com o comando chsh. É comum especificar o shell /sbin/nologin para que as contas sejam usadas como contas do sistema.
Comentário: O campo de comentários, originalmente chamado de Sistema Geral de Sistema Elétrico Geral (GECOS), geralmente é usado para manter o nome completo do usuário. Muitos programas de login gráfico exibem o valor desse campo em vez do nome da conta. A opção -c dos comandos useradd e usermod permite que o valor desse campo seja especificado.
14.7.2 comando useradd
Depois de verificar quais valores padrão serão usados e você reuniu as informações sobre o usuário, então você está pronto para criar uma conta de usuário. Um exemplo de um comando useradd usando algumas opções pareceria o seguinte:
root@localhost:~# useradd -u 1000 -g users -G wheel,research -c 'Jane Doe' jane
Este exemplo do comando useradd cria um usuário com um UID de 1000, um grupo primário de usuários, membros suplementares em roda e grupos de pesquisa, um comentário de "Jane Doe" e um nome de conta de jane.
As informações sobre a conta de usuário do jane serão adicionadas automaticamente aos arquivos /etc/passwd e /etc/shadow, enquanto as informações sobre o acesso suplementar ao grupo do jane serão automaticamente adicionadas aos arquivos /etc/group e /etc/gshadow. Por exemplo:
root@localhost:~# useradd -u 1000 -g users -G wheel,research -c "Jane Doe" jane
root@localhost:~# grep jane /etc/passwd
jane:x:1000:100:Jane Doe:/home/jane:/bin/bash
root@localhost:~# grep jane /etc/shadow
jane:!!:16003:0:99999:7:::
root@localhost:~# grep jane /etc/group
wheel:x:10:jane
research:x:2000:jane
root@localhost:~# grep jane /etc/gshadow
wheel:::jane
research:!::jane
root@localhost:~#
Tenha em atenção que a conta ainda não possui uma senha válida.
Além disso, o arquivo de spool de correio /var/spool/mail/jane seria criado, o diretório /home/jane seria criado com permissões apenas permitindo o acesso do usuário do jane e o conteúdo do diretório /etc/skel seria copiado para o diretório:
root@localhost:~# ls /var/spool/mail 
jane root rpc sysadmin 
root@localhost:~# ls /home 
jane sysadmin 
root@localhost:~# ls -a /home/jane 
. .. .bash_logout .bashrc .profile .selected_editor 
root@localhost:~# ls -a /etc/skel 
. .. .bash_logout .bashrc .profile .selected_editor 
root@localhost:~# 
14.8 Escolhendo uma senha
Escolher uma boa senha não é uma tarefa fácil, mas é fundamental que seja feito corretamente ou a segurança de uma conta (talvez todo o sistema) possa ser comprometida. Escolher uma boa senha é apenas um começo; você precisa ter muito cuidado com sua senha para que ela não seja revelada a outras pessoas. Você nunca deve contar a ninguém sua senha e nunca permitir que alguém a veja digite sua senha. Se você optar por anotar sua senha, então você deve armazená-la de forma segura em um lugar como um cofre ou cofre.
É fácil fazer uma senha ruim! Se você usar qualquer informação na sua senha relacionada com você, essa informação também pode ser conhecida ou descoberta por outros, resultando em sua senha facilmente comprometida. Sua senha nunca deve conter informações sobre você ou qualquer pessoa que você conheça, como:
primeiro nome
nome do meio
último nome
aniversário
telefone
nomes de animais de estimação
carteira de motorista
seguro Social
Existem inúmeros fatores a serem considerados quando você está tentando escolher uma senha para uma conta:
Comprimento: O arquivo /etc/login.defs permite que o administrador especifique o comprimento mínimo da senha. Enquanto alguns acreditam que quanto mais tempo a senha, melhor, isso não é realmente correto. O problema com as senhas que são muito longas é que eles não são facilmente lembrados e, como resultado, eles são freqüentemente escritos em um local onde eles podem ser facilmente encontrados e comprometidos.
Composição: uma boa senha deve ser composta por uma combinação de caracteres alfabéticos, numéricos e simbólicos.
Tempo de vida: a quantidade de tempo que uma senha pode ser usada no máximo deve ser limitada por vários motivos:
Se uma conta é comprometida e o tempo que a senha é válida é limitado, o intruso perderá o acesso, uma vez que a senha acabará se tornando inválida.
Se uma conta não estiver sendo usada, ela pode ser desabilitada automaticamente quando a senha não for mais válida.
Se os atacantes estão tentando um ataque de "força bruta" tentando todas as possíveis senhas, então a senha pode ser alterada antes que o ataque possa ter sucesso.
No entanto, exigir que um usuário altere sua senha muitas vezes pode representar problemas de segurança, incluindo:
A qualidade da senha que o usuário escolher pode sofrer.
O usuário pode começar a escrever sua senha em papel, aumentando a possibilidade de que a senha possa ser descoberta.
As contas de usuários raramente usadas podem expirar e exigir que a atenção administrativa seja reiniciada.
As opiniões variam com a frequência com que os usuários devem ser forçados a mudar suas senhas. Para contas altamente sensíveis, recomenda-se alterar senhas com mais freqüência, como por exemplo, a cada 30 dias. Por outro lado, para contas não críticas sem acesso a informações confidenciais, há menos necessidade de mudanças frequentes. Para contas com risco mínimo, ter uma duração de 90 dias seria considerado mais razoável.
14.9 Definir uma senha de usuário
Há várias maneiras de mudar a senha do usuário: o usuário pode executar o comando passwd, o administrador pode executar o comando passwd, fornecendo o nome do usuário como argumento e ferramentas gráficas também estão disponíveis.
O administrador pode usar o comando passwd para definir a senha inicial ou alterar a senha da conta. Por exemplo, se o administrador criou a conta jane, a execução do jane passwd fornecerá ao administrador um prompt para configurar a senha da conta jane. Se concluído com sucesso, o arquivo /etc/shadow será atualizado com a nova senha do usuário.
Enquanto os usuários regulares devem seguir muitas regras de senha, o usuário raiz só precisa seguir uma regra: a senha não pode ser deixada em branco. Todas as outras regras de senha que o usuário root viola simplesmente resultarão em um aviso sendo impresso na tela e a regra não sendo aplicada:
root@localhost:~# passwd jane 
Enter new UNIX password: 
BAD PASSWORD: it is WAY to short
BAD PASSWORD: is too simple 
Retype new UNIX password: 
passwd: password updated successfully 
root@localhost:~#
Supondo que o administrador tenha configurado uma senha para uma conta de usuário, o usuário pode fazer login com o nome e a senha da conta. Depois que o usuário abrir um terminal, eles podem executar o comando passwd sem argumentos para alterar sua própria senha. Eles são solicitados para sua senha atual e então eles são solicitados a inserir a nova senha duas vezes.
Como um usuário comum, pode ser difícil configurar uma senha válida porque todas as regras para a senha devem ser seguidas. Normalmente, o usuário épermitido três tentativas de fornecer uma senha válida antes do comando passwd sair com um erro.
Usando os privilégios do usuário raiz, as senhas criptografadas e outras informações relacionadas à senha podem ser visualizadas ao visualizar o arquivo /etc/shadow. Lembre-se de que os usuários regulares não podem ver o conteúdo deste arquivo.
14.10 Usando o comando Chage
Embora não esteja listado como um comando que você precisa saber nos objetivos do Linux Essentials, o comando chage oferece muitas opções para gerenciar as informações de envelhecimento da senha encontradas no arquivo /etc/shadow.
Aqui está um resumo das opções de chage:
	Opção Curta
	Opção Longa
	Descrição
	-l
	--list
	Liste a informação do envelhecimento da conta
	-d LAST_DAY
	--lastday LAST_DAY
	Defina a data da última alteração de senha para LAST_DAY
	-E EXPIRE_DATE
	--expiredate EXPIRE_DATE
	Defina a conta para expirar no EXPIRE_DATE
	-h
	--help
	Mostre a ajuda para a mudança
	-I INACTIVE
	--inactive INACTIVE
	Configure a conta para permitir o login para INACTIVEdays após a expiração da senha
	-m MIN_DAYS
	--mindays MIN_DAYS
	Defina o número mínimo de dias antes da senha pode ser alterada para MIN_DAYS
	-M MAX_DAYS
	--maxdays MAX_DAYS
	Defina o número máximo de dias antes de uma senha ser alterada para MAX_DAYS
	-W WARN_DAYS
	--warndays WARN_DAYS
	Defina o número de dias antes da expiração de uma senha para começar a exibir um aviso para WARN_DAYS
Um bom exemplo do comando chage seria alterar o número máximo de dias em que a senha de um indivíduo é válida para 60 dias:
root@localhost:~# chage -M 60 jane
14.11 Modificando um usuário
Antes de fazer alterações em uma conta de usuário, entenda que alguns comandos não modificarão com sucesso uma conta de usuário se o usuário estiver logado no momento (como, por exemplo, ao alterar o nome de login do usuário).
Outras alterações que você pode fazer não serão efetivas se o usuário estiver logado, mas entrará em vigor assim que o usuário efetuar o logout e depois retornar novamente. Por exemplo, se você estiver modificando as associações de grupo, as novas associações estarão indisponíveis para o usuário até a próxima vez que o usuário fizer logon.
Em ambos os casos, é útil saber como usar os comandos who, w e last, para que você possa estar ciente de quem está logado no sistema, pois isso pode afetar as mudanças que você quer fazer para um usuário.
Os comandos who e w foram discutidos em um capítulo anterior. Ambos os comandos permitem que você veja quem está logado no sistema. O comando w é realmente o mais detalhado dos dois, pois mostra o tempo de atividade e as informações de carga do sistema, bem como o processo que cada usuário está executando.
O comando last é um pouco diferente dos comandos who e w. Por padrão, ele também mostra o nome do usuário, terminal e local de login, não apenas das sessões de login atuais, mas também das sessões anteriores. Ao contrário dos comandos who e w, ele exibirá a data/hora em que o usuário fez logon no sistema. Se o usuário tiver desconectado o sistema, então ele exibirá o tempo total que o usuário tenha efetuado no login ou exibirá "ainda conectado".
O comando last irá ler todo o histórico de login a partir do arquivo /var/log/wtmp e exibir todos os logins e reiniciar os registros por padrão. Um detalhe interessante dos registros de reinicialização é que ele exibe a versão do kernel do Linux que foi inicializada em vez do local de login.
Ao fornecer um nome de usuário ou um nome de tty (terminal) como um argumento, o comando mostrará apenas os registros que correspondem a esse nome. Se você precisa descobrir quem foi logado em uma determinada data e hora, o comando last pode exibir isso se você usar a opção -t para especificar essa data e hora.
14.11.1 comando usermod
O comando usermod oferece muitas opções para modificar uma conta de usuário existente. Você deve notar que a maioria dessas opções também está disponível com o comando useradd no momento em que você criou a conta. A tabela a seguir fornece um resumo das opções do usermod:
	Opção Curta
	Opção Longa
	Descrição
	-c
	COMMENT
	Define o valor do campo GECOS ou comentário para COMENTAR.
	-d HOME_DIR
	--home HOME_DIR
	Define um novo diretório inicial para o usuário.
	-e EXPIRE_DATE
	--expiredate EXPIRE_DATE
	Defina a data de validade da conta para EXPIRE_DATE.
	-f INACTIVE
	--inactive INACTIVE
	Configure a conta para permitir o login para INACTIVEdays após a expiração da senha.
	-g GROUP
	--gid GROUP
	Defina GROUP como grupo primário.
	-G GROUPS
	--groups GROUPS
	Defina grupos suplementares para uma lista especificada em GRUPOS.
	-a
	--append
	Anexe os grupos suplementares do usuário com os especificados por -G.
	-h
	--help
	Mostre a ajuda para usermod.
	-l NEW_LOGIN
	--login NEW_LOGIN
	Altere o nome de login do usuário.
	-L
	--lock
	Bloqueie a conta de usuário.
	-s SHELL
	--shell SHELL
	Especifique o shell de login para a conta.
	-u NEW_UID
	--uid NEW_UID
	Especifique o UID do usuário para ser NEW_UID.
	-U
	--unlock
	Desbloqueie a conta de usuário.
Várias dessas opções são dignas de discussão por causa de como elas afetam o gerenciamento de usuários. Pode ser muito problemático alterar o UID do usuário com a opção -u, pois qualquer arquivo de propriedade do usuário será órfão. Por outro lado, especificar um novo nome de login para o usuário com -l não faz com que os arquivos sejam órfãos.
A exclusão de um usuário com o comando userdel (veja a próxima seção) pode orfamar ou remover os arquivos do usuário no sistema. Em vez de excluir a conta, outra opção é bloquear a conta com a opção -L para o comando usermod. Bloquear uma conta impede que a conta seja usada, mas a propriedade dos arquivos permanece.
Há algumas coisas importantes a serem conhecidas quanto à gestão dos grupos suplementares. Se você usar a opção -G sem a opção -a, então você deve listar todos os grupos aos quais o usuário pertenceria. Usar a opção -G sozinho pode levar a remover acidentalmente um usuário de todos os grupos suplementares anteriores aos quais o usuário pertencia.
Se você usa a opção -a com -G, basta listar os novos grupos aos quais o usuário pertenceria. Por exemplo, se o usuário jane atualmente pertence à roda e grupos de pesquisa, então, para adicionar sua conta ao grupo de desenvolvimento, execute o seguinte comando:
root@localhost:~# usermod -aG development jane
14.12 Excluir um usuário
Quando você exclui uma conta de usuário, você também precisa decidir se deseja excluir o diretório inicial do usuário. Os arquivos do usuário podem ser importantes para sua organização e você pode até ter requisitos legais para manter os dados por um certo período de tempo, então tenha cuidado para não tomar esta decisão de forma leve. Além disso, a menos que você tenha feito cópias de backup dos dados, uma vez que você executou o comando para excluir o usuário e seus arquivos, não há uma inversão da ação.
Para excluir o jane do usuário sem excluir o diretório inicial do usuário (/home/jane), você pode executar:
root@localhost:~# userdel jane
Tenha em atenção que excluir um usuário sem excluir seu diretório inicial significa que os arquivos do diretório inicial do usuário agora serão órfãos e esses arquivos serão de propriedade exclusiva do seu antigo UID e GID.
Para excluir o usuário jane e excluir o diretório /home/jane também, use a opção -r:
root@localhost:~# userdel -r jane
AVISO: o comando acima excluirá apenas os arquivos do usuário em seu diretório inicial e seu spool de email. Se o usuário possui outros arquivos fora do seu diretório inicial, esses arquivos continuarão a existir como arquivos órfãos.

Outros materiais