Resumo LPI 102: Tópico 107 – Tarefas Administrativas

107.1 – Administrar contas de usuários e grupos

Em mais um resumo de tópico para a prova LPI 102, venho percebendo a facilidade em estudar usando associação. Com comandos de modo geral, procure saber para que ele serve e o que significa.

Alguns são bem intuitivos, por exemplo, o passwd (password), lsusb (list usb), nc (netcat), chfn (change information). Outros, são mais complicados. Geralmente comandos com ch, tem algo a ver com change (alteração, mudança), ls com list (listar).

Estar atento e disposto a associar os nomes dos comandos facilitará e MUITO seu estudo. O mesmo vale para parâmetros. Leia, ao menos, a descrição nas páginas de manual e faça testes, simule situações, se você ainda não passa boa parte do dia de frente pra tela preta.

Contas de usuários

O comando adduser só pode executado pelo root. Cria usuários automaticamente, com parâmetros definidos no arquivo: /etc/adduser.conf

O comando useradd só pode ser executado como root. Cria usuário setando manualmente os parâmetros desejados. Indicado para uso em scripts. Principais parâmetros:

  • -c (comment) :: Adiciona descrição à conta, geralmente nome completo do usuário;
  • -d (home dir) :: Define o caminho para o diretório pessoal do usuário;
  • -g (Group ID) :: Define o grupo principal – GID;
  • -G (groups) :: Define grupos secundários;
  • -u (User ID) :: Define o ID – UID;
  • -s (shell) :: Define o shell padrão;
  • -p (passaword) :: Define a senha;
  • -e (expire date) :: Define a data de expiração da conta;
  • -k (skel dir) :: Define se a conta do usuário usará a estrutura com base no /etc/skel;
  • -m (create home) :: Cria o diretório pessoal, se não existir.

O diretório /etc/skel/ serve como modelo na criação dos diretórios pessoais. Skel = Skeleton (esqueleto).

O comando passwd altera a senha de usuários. Sintaxe:

# passwd <usuário>
$ passwd

Ou seja, como root, é possível alterar a senha de qualquer usuário. Como usuário comum, somente é possível alterar a própria senha.

O comando chfn (change information) altera o campo descrição da conta de um usuário. Não precisa ser root.

O comando chsh (change shell) altera o shell padrão do usuário. Não precisa ser root.

O comando userdel exclui uma conta de usuário. Parâmetro principal: “-r” (remove) – remove o diretório pessoal.

O arquivo /etc/passwd armazena informações de contas de usuários e pode ser lido por qualquer usuário (permissão: rw-r–r–). Utiliza como separador de campos o “:” (2 pontos).

Observe a estrutura:

root:x:0:0::/root:/bin/bash

Enumerando os campos:

  1. Login do usuário;
  2. Senha. Se for “x”, a senha encontra-se criptografada no arquivo /etc/shadow;
  3. UID – ID do usuário;
  4. GID – ID do grupo principal do usuário;
  5. Descrição do usuário;
  6. Caminho do diretório pessoal;
  7. Shell padrão do usuário.

O comando vipw usa o editor padrão do sistema (Vi) para alterar o arquivo /etc/passwd, bloqueando-o contra edições concorrentes.

Parâmetro principal: -s (shadow) – edita o arquivo /etc/shadow, usando o modelo de bloqueio.

No arquivo /etc/shadow estão as senhas criptografadas dos usuários e mais algumas configurações. Não está visível para todos usuários, por medida de segurança (permissão: rw-r—–). Seu separador de campos também é o “:”.

Estrutura:

root:<senha>:15516:0:99999:7:::

Enumerando os campos:

  1. Login do usuário, que deve corresponder ao do /etc/passwd;
  2. Guarda a senha criptografada do usuário;
  3. Número de dias desde que a senha foi alterada pela última vez. Contando desde 01/01/1970.
  4. Número mínimo de dias que o usuário pode permanecer sem alterar a senha. Zero significa que não tem este prazo mínimo;
  5. Número máximo de dias que o usuário tem para trocar a senha;
  6. Número de dias que o usuário será avisado até que a senha expire;
  7. Número de dias a partir da expiração da senha até que a conta seja bloqueada;
  8. Mostra o número de dias que a conta encontra-se bloqueada. Contando desde 01/01/1970;
  9. Campo reservado.

O comando pwconv altera o armazenamento das senhas do arquivo /etc/passwd para o /etc/shadow.

O comando pwunconv altera o armazenamento das senhas do arquivo /etc/shadow para o /etc/passwd.

O comando chage altera informações referentes à validade de senhas de usuário. Parâmetros principais:

  • -m (minimum days) :: Número de dias mínimos para o usuário poder alterar sua senha;
  • -M (max days) :: Número máximo de dias para troca da senha;
  • -d (last days) :: Número de dias desde que a senha foi alterada, contando desde 01/01/1970;
  • -E (expire date) :: Data de expiração da conta do usuário;
  • -I (inactive) :: Número de dias a partir da expiração da senha até que a senha seja bloqueada;
  • -W (warn days) :: Número de dias para avisar o usuário que a senha deve ser trocada.

O comando usermod modifica contas de usuários. Parâmetros principais:

  • -c (comment) :: Altera o comentário da conta;
  • -d (diretory) :: Altera o caminho do diretório pessoal;
  • -m (move) :: Move o diretório pessoal do usuário para um novo local;
  • -g (group) :: Altera o grupo principal;
  • -G (groups) :: Adiciona o usuário a outros grupos;
  • -l (login) :: Altera o nome de login;
  • -p (password) :: Altera a senha;
  • -u (UID) :: Altera o ID do usuário;
  • -s (shell) :: Altera o shell padrão;
  • -e (expire date) :: Altera a data de expiração da conta do usuário. dd/mm/aaaa;
  • -f (??) :: Dias depois da expiração da senha que a conta será bloqueada. O -1 cancela essa função;
  • -L (lock) :: Bloqueia o usuário. Insere o “!” no campo da senha criptografada;
  • -U (unlock) :: Desbloqueia o usuário. Retira o “!”.

Administrando grupos de usuários

O comando groupadd cria um grupo de usuário.

Principal parâmetro: -g (GID) – Especifica um ID para o grupo.

O comando groupdel exclui um grupo de usuário.

O comando gpasswd insere e exclui usuários de grupos e realiza algumas modificações relacionadas às senhas. Este comando usado sem parâmetro cria uma senha para um grupo.

Principais parâmetros:

  • -r (remove) :: Remove a senha do grupo;
  • -a (add) :: Adiciona usuário ao grupo;
  • -d (delete) :: Deleta usuário do grupo;
  • -A (admin) :: Torna usuário administrador do grupo.

O comando groups mostra o grupo que o usuário pertence. Usado sem argumentos, mostra os grupos do usuário atual.

O comando id mostra os grupos do usuário e informações de UID e GID.

O comando newgrp altera o grupo principal do usuário. Caso ele não pertença, é adicionado automaticamente.

O arquivo /etc/group armazena informações dos grupos. Possui permissão: rw-r–r–

Estrutura:

adm:x:5012:pedro,joao

Enumerando os campos:

  1. Nome do grupo;
  2. Senha criptografada do grupo. O “x” significa que a senha está no arquivo /etc/gshadow;
  3. ID do grupo. GID;
  4. Usuários pertencentes ao grupo, separados por “,”.

O comando vigr edita o arquivo /etc/group, evitando gravações concorrentes.

Principal parâmetro: -s (shadow) – Edita o arquivo /etc/gshadow.

O arquivo /etc/gshadow armazena informações de senhas com criptografia. Possui permissão: rw–r—-

Estrutura:

adm:*::pedro

Enumerando:

  1. Nome do grupo, correspondente ao /etc/group;
  2. Senha criptografada. O “*” significa que o grupo não tem senha;
  3. Usuário administrador do grupo;
  4. Usuário pertencentes ao grupo, como no /etc/group.

O comando grpconv converte o armazenamento das senhas dos grupos, do arquivo /etc/group para o /etc/gshadow.

O comando grpunconv faz o inverso do comando grpconv.

O comando groupmod realiza algumas modificações nos grupos. Principais parâmetros:

  • -g (GID) :: Altera o GID;
  • -n (name) :: Altera o nome do grupo.
107.2 – Automatizar e agendar tarefas administrativas

O comando at é usado para agendar a execução de um comando/script apenas uma vez.

Sintaxe:

# at <quando> <comando>

O argumento “<quando>” pode ser:

  • now :: Execução instantânea;
  • midnight :: Executa à meia noite;
  • Mais opções podem ser vistas no arquivo: /usr/share//doc/at/timespec

Usuários comuns podem usar o “at”, se constarem no arquivo /etc/at.allow. Se este arquivo não existir, o arquivo /etc/at.deny será lido e só não poderá usar o “at” quem constar nele. Se nenhum dos arquivo existirem, só o root poderá usar o “at”.

Parâmetros e variações:

  • -l (parâmetro – list) :: Este parâmetro lista os agendamentos em espera;
  • atq (comando) :: Também lista agendamentos em espera;
  • atrm (comando) :: Exclui agendamentos em espera.

O cron é um daemon para agendamento de tarefas em determinados intervalos de tempo. A cada minuto este daemon verifica as tabelas de agendamento, chamadas crontabs, e executa as tarefas que estiverem configuradas.

Principal crontab (ou tabela de agendamento):

/etc/crontab :: Este é o crontab do sistema. Existem também um crontab para cada usuário.

O comando crontab é para usuários específicos, ao invés do arquivo geral do sistema. Usamos o comando comando crontab, que editará a tabela de agendamento do respectivo usuário.

Principais parâmetros:

  • -l (list) :: Lista as tarefas agendadas;
  • -e (edit) :: Edita o crontab do usuário;
  • -r (remove) :: Remove o crontab do usuário.

Sintaxe:

# crontab <parâmetro> <usuário>

Configurando uma tabela de agendamento (ou crontab). O separador pode ser:

0-59 0-23 0-31 1-12 0-6 <comando>

Enumerando:

  1. Variação dos minutos;
  2. Das horas;
  3. Dos dias;
  4. Dos meses;
  5. Dos dias da semana (0 é domingo e 6 é sábado);
  6. Comando a ser executado.

Exemplo real de utilização:

* */4 * 5,6 1-5   /root/script.sh

Nesta linha, que poderia estar no arquivo /etc/crontab, por exemplo, executaria o arquivo “script.sh” a cada quatro horas, nos meses de maio e junho de segunda à quinta-feira.

Explicando os caracteres utilizados no exemplo:

  • * → Nada a fazer;
  • → Determina um período;
  • / → Determina um espaço de tempo. Um marcapasso;
  • , → Determina tempos específicos. Serve para intercalar o tempo, quebrar uma sequência.

Diretórios auxiliares:

  • /etc/cron.hourly/ → Executa os arquivos dentro dele de a cada hora;
  • /etc/cron.daily/ → Executa os arquivos todos os dias;
  • /etc/cron.monthly/ → Executa todos os meses;
  • /etc/cron.weekly/ → Executa toda semana.

Estes diretórios são usados quando não é necessário especificar a hora para execução de uma tarefa.

Arquivos para controle de utilização do contrab:

  • /etc/cron.allow → Se existir, só os usuário especificados nele poderão agendar tarefas;
  • /etc/cron.deny → Se existir, os usuários que forem especificados nele não poderão agendar tarefas.

Obs.: Se os dois não existirem, todos os usuários poderão agendar tarefas.

107.3 – Localização e internacionalização

Fuso horário:

O comando tzselect ajusta o fuso horário do sistema. Após configurado, é criado o arquivo /etc/timezone.

O arquivo /etc/localtime guarda informações sobre o horário de verão. As opções de configuração estão no diretório /usr/share/zoneinfo.

O comando locale exibe as variáveis de ambiente que contém informações de idioma e padrão de codificação do sistema.

A variável LANG é uma variável global usada pela maioria dos programas, como referência para definição do idioma padrão. O conteúdo dessa variável obedece o formato idioma_PAIS.CODIFICAÇÃO.

Exemplo:

$ echo $LANG
pt_BR.UTF-8

Neste caso, significa:

  • pt :: Idioma português;
  • BR :: País, Brasil;
  • UTF-8 :: Codificação Unicode, padrão do GNU/Linux.

Obs.: Em scripts é recomendável setar a variável LANG dessa forma: LANG=C. Evitando assim resultados diferentes quando o script é executado em sistemas diferentes, com configurações diferentes.

Outras variáveis de ambiente são importantes para a correta configuração de programas. São elas:

  • LC_COLLATE :: Define ordenação alfabética;
  • LC_CTYPE :: Define o tratamento de caracteres;
  • LC_MESSAGES :: Definição do idioma em avisos emitidos por programas;
  • LC_MONETARY :: Define unidade monetária e formato da moeda;
  • LC_NUMERIC :: Define o formato numérico de valores não monetários;
  • LC_TIME ::- Define o formato de data e hora;
  • LC_PAPER :: Define o tamanho padrão do papel;
  • LC_ALL :: Sobrepõe todas as demais variáveis;
Rolar para cima