- Aprender
- Computação e TI
- TI, redes e nuvem
- Fundamentos de Linux
- Usuários, grupos e permissões no Linux
Usuários, grupos e permissões no Linux
sudo. Crie e gerencie usuários e grupos, consulte e altere o proprietário, o grupo e as permissões com chown e chmod, defina padrões adequados com umask e use os bits SUID, SGID e sticky bit. Por fim, investigue a causa de um erro “Permission denied” e corrija-o com a menor alteração segura.BásicoAula 5 de 7 do curso Curso de Fundamentos de Linux
O que você vai aprender
- Explicar como o Linux identifica cada usuário e grupo por um número, distinguir contas root, comuns e de sistema e ler os arquivos que armazenam dados de contas, grupos e senhas.
- Distinguir contas root, comuns e de sistemaDescrever os três tipos de conta, o identificador de usuário que identifica cada uma e os comandos que mostram quem você é e quem está conectado.
- Explicar grupos primários e suplementaresExplicar como os grupos concedem o mesmo acesso a vários usuários, a diferença entre o grupo primário e os grupos suplementares de um usuário e quais grupos têm permissões especiais.
- Ler os arquivos passwd, shadow e groupLer todos os campos de /etc/passwd, /etc/shadow e /etc/group, explicar por que os hashes de senha são mantidos separadamente e calcular as datas de senha a partir do arquivo shadow.
- Distinguir contas root, comuns e de sistema
- Trabalhar como usuário comum, elevar privilégios com sudo ou su apenas para os comandos que precisem deles e conceder a outros usuários exatamente as permissões administrativas necessárias.
- Usar sudo e su para executar ações como rootComparar su e sudo, executar comandos individuais com privilégios elevados e evitar problemas comuns com sudo, como arquivos pertencentes a root e redirecionamentos que falham.
- Conceder permissões de uso do sudo com a política do sudoersLer e escrever regras do sudoers com visudo, tornar um usuário administrador por meio do grupo adequado e limitar outros usuários aos poucos comandos de que precisam.
- Usar sudo e su para executar ações como root
- Adicionar usuários e grupos pela linha de comando, definir e controlar senhas, alterar e remover contas e gerenciar a participação em grupos.
- Criar contas de usuário com useradd e adduserCriar contas comuns e de sistema com useradd ou adduser, conhecer os arquivos e padrões usados por cada comando e verificar o resultado.
- Gerenciar senhas e alterar ou remover contasDefinir, bloquear e expirar senhas, aplicar regras de validade de senhas, alterar dados de contas com usermod e remover contas sem deixar problemas.
- Criar grupos e gerenciar seus membrosCriar, renomear e excluir grupos, adicionar e remover membros e configurar uma pasta que uma equipe possa compartilhar.
- Criar contas de usuário com useradd e adduser
- Consultar o proprietário, o grupo e os bits de permissão de qualquer arquivo ou diretório, explicar o que cada permissão permite e alterá-los com chmod, chown e chgrp.
- Identificar o proprietário, o grupo e as permissões em uma listagemInterpretar cada parte de uma linha de ls -l e determinar qual classe de permissões se aplica a um usuário específico.
- Explicar o que as permissões de leitura, escrita e execução permitemExplicar o que r, w e x permitem em um arquivo comum e em um diretório e prever se uma operação como leitura, execução, criação ou exclusão terá sucesso.
- Alterar permissões com chmodDefinir e alterar permissões com os modos simbólico e octal, converter entre as duas formas e alterar árvores inteiras de diretórios com segurança.
- Alterar o proprietário e o grupo com chown e chgrpAlterar o usuário e o grupo proprietários de arquivos e árvores de diretórios, saber quem pode fazê-lo e prever a quem pertencem arquivos recém-criados, copiados e movidos.
- Identificar o proprietário, o grupo e as permissões em uma listagem
- Escolher as permissões recebidas por novos arquivos, usar os bits SUID, SGID e sticky bit quando forem úteis e investigar a causa de um erro de permissão para corrigi-lo com a menor alteração segura.
- Definir permissões padrão com umaskDeterminar as permissões de novos arquivos e diretórios a partir da umask e definir uma umask para uma sessão ou permanentemente.
- Usar SUID, SGID e o sticky bitExplicar os três bits de permissão especiais, reconhecê-los em listagens, defini-los com chmod e usá-los com segurança em programas, pastas de equipe e diretórios compartilhados.
- Diagnosticar problemas de permissão e aplicar o princípio do menor privilégioInvestigar um erro “Permission denied” passo a passo, escolher a menor correção segura e manter arquivos sensíveis e permissões de administrador estritamente restritos.
- Definir permissões padrão com umask
Guia de estudo de Usuários, grupos e permissões no Linux
1Compreender usuários, grupos e arquivos de contas
O Linux atribui uma identidade a cada pessoa e serviço em execução. Essa identidade relaciona um identificador de usuário e a participação em grupos aos arquivos que o processo pode acessar. Consultar sua identidade atual, as sessões de login ativas e os registros de contas facilita a explicação das decisões de acesso. O arquivo público de contas descreve quem é cada conta, enquanto registros protegidos de senha controlam o login por senha e a validade das senhas.
1.1 Distinguir contas root, comuns e de sistema
Todo comando é executado com uma identidade. O Linux usa essa identidade para decidir quais arquivos o comando pode abrir e quais configurações pode alterar. Uma conta de usuário pode representar uma pessoa ou um serviço em execução em segundo plano.
O número por trás do nome
O kernel identifica uma conta por seu identificador de usuário (UID). Nomes como alice facilitam o reconhecimento do número, mas as permissões seguem o número. A conta root tem UID 0 e seu diretório pessoal é /root. Uma conta com outro nome e UID 0 tem o mesmo poder de superusuário.
Um usuário comum é a conta de uso cotidiano de uma pessoa. Na maioria das distribuições, UIDs de usuários comuns começam em 1000; UID_MIN em /etc/login.defs define esse limite. Um usuário comum pode alterar seus próprios arquivos e quaisquer outros que as permissões permitam. Alterar configurações protegidas do sistema exige privilégios elevados.
Uma conta de sistema dá a um serviço sua própria identidade limitada. A maioria tem UIDs abaixo de 1000 e um shell como /usr/sbin/nologin. A conta especial nobody geralmente tem UID 65534, portanto a faixa por si só não identifica todas as contas de serviço. Debian e Ubuntu usam www-data para serviços web; um serviço SSH pode usar sshd.
Consulte sua identidade atual
Execute whoami para ver seu nome de usuário ou id para ver os números e grupos. Por exemplo:
uid=1001(alice) gid=1001(alice) groups=1001(alice),27(sudo),1005(developers)
Leia a saída em três partes. O UID de Alice é 1001. Seu grupo primário é alice, GID 1001. Sua lista de grupos também inclui sudo e developers. Ela é uma usuária comum, não root: o grupo sudo pode autorizar comandos com privilégios elevados, mas seu shell atual continua sendo executado como Alice.
Muitos shells exibem # para root e $ para um usuário comum. Um prompt pode ser personalizado, então consulte id quando a identidade for importante. A primeira conta criada durante a instalação costuma ser uma conta comum com acesso ao sudo, inclusive no Ubuntu; ser criada primeiro não a torna root.
Verifique as sessões de login
| Comando | O que mostra |
|---|---|
who | Sessões de login atuais, terminais e horários de login |
w | Sessões atuais, atividade, tempo de funcionamento e carga |
last | Logins e reinicializações anteriores registrados, dos mais recentes aos mais antigos |
wtmpdb last | Histórico de login em sistemas que usam wtmpdb |
Esses comandos respondem a uma pergunta diferente de whoami: eles informam sessões, não apenas a identidade do seu shell. O Debian 13 é um sistema que usa wtmpdb para seu histórico.
Identidades separadas promovem o princípio do menor privilégio, a responsabilização e o isolamento. Um serviço web pode ler os arquivos que fornece sem receber os documentos privados de todos os usuários. Os logs podem mostrar qual conta realizou uma ação. Se o serviço for comprometido, o ataque começa com as permissões dessa conta de serviço. Root pode contornar restrições comuns de leitura e escrita de arquivos, portanto uma segunda conta com UID 0 é uma séria preocupação de segurança.
Principais conclusões
- O Linux acompanha identidades de usuário pelo UID; o UID 0 tem poder de root.
- Contas comuns atendem pessoas; contas de sistema dão identidades limitadas a serviços.
idmostra sua identidade e seus grupos ativos; pertencer asudonão torna seu shell root.whoewmostram sessões atuais;lastouwtmpdb lastmostra o histórico registrado.
1.2 Explicar grupos primários e suplementares
Compartilhar um arquivo com uma equipe é mais fácil quando ela tem um grupo. Atribua o arquivo a esse grupo, conceda a ele as permissões necessárias e gerencie seus membros conforme as pessoas entram ou saem.
Um grupo primário, participações adicionais
Um grupo tem um nome e um identificador de grupo (GID) numérico. Cada usuário tem um grupo primário, armazenado como GID em /etc/passwd. Um novo arquivo normalmente recebe o grupo primário do processo que o cria. Mais adiante, um diretório com SGID apresentará outra regra para atribuir o grupo de um novo arquivo.
Usuários também podem ter vários grupos suplementares. Essas participações adicionam identidades de grupo aos seus processos; o usuário não precisa trocar de grupo primário sempre que abre o arquivo de outra equipe. Tanto o grupo primário quanto os suplementares contam quando o Linux verifica se o usuário pertence ao grupo de um arquivo.
A maioria das distribuições cria um grupo privado de usuário junto com cada usuário comum. Alice pode ter nome de usuário alice, UID 1001, grupo primário alice e GID 1001. Ainda são identidades separadas de usuário e grupo, mesmo quando seus nomes e números coincidem. Um arquivo atribuído ao grupo privado de Alice não é compartilhado com toda a equipe.
Examine uma participação
Use groups para ver os nomes dos seus próprios grupos. groups bob e id bob consultam os grupos de Bob; id -Gn exibe os nomes dos grupos do processo atual sem números. Uma consulta de grupo pode mostrar:
getent group developers
developers:x:1005:alice,bob
O grupo se chama developers, seu GID é 1005, e Alice e Bob estão listados como integrantes suplementares. Uma conta cujo GID primário é 1005 também pertence ao grupo, mesmo que seu nome esteja ausente dessa lista final. Para verificar todos os grupos de uma pessoa, use id com o nome dela em vez de depender apenas dessa lista.
Aplique as permissões de um grupo
Suponha que plan.txt pertença a bob:developers e tenha o modo rw-r-----. Alice não é Bob, mas pertence a developers. Portanto, ela usa a trinca de permissões do meio, r--: pode ler o plano, mas não alterar seu conteúdo. Chen não é o usuário proprietário nem pertence ao grupo, então usa a última trinca, ---.
Alterar o nome do grupo associado a um arquivo não cria permissões por si só. Se a trinca do grupo for ---, os integrantes ainda não receberão acesso por essa classe. O grupo proprietário identifica a equipe; os bits de permissão especificam o que ela pode fazer.
Reconheça grupos com permissões amplas
Algumas participações concedem muito mais do que acesso a uma pasta de projeto. Debian e Ubuntu geralmente autorizam o grupo sudo para comandos administrativos; Fedora e Red Hat Enterprise Linux geralmente usam wheel. No Debian e no Ubuntu, adm permite acesso a muitos logs do sistema. O grupo docker controla o serviço Docker e, na prática, oferece controle de nível root.
Antes de adicionar alguém a um grupo, identifique o que ele pode acessar. Um grupo de projeto pode ser uma forma restrita de compartilhar trabalho, enquanto um grupo administrativo pode conceder controle sobre toda a máquina.
Principais conclusões
- Todo usuário tem um grupo primário e pode ter vários grupos suplementares.
- Novos arquivos normalmente recebem o grupo primário do processo que os cria.
- Um grupo privado de usuário geralmente contém apenas o usuário correspondente.
- Verifique todos os grupos de um usuário com
id username;/etc/groupnão precisa listar integrantes primários. - O grupo proprietário e os bits de permissão do grupo funcionam em conjunto.
- Trate a participação em grupos como
sudo,wheeledockercomo concessão de acesso amplo.
1.3 Ler os arquivos passwd, shadow e group
O Linux mantém os dados públicos das contas separados dos dados de senha. Ler a ordem dos campos ajuda a explicar a identidade, a configuração de login e a política de senha de uma conta sem alterar os arquivos manualmente.
Leia um registro de conta
/etc/passwd tem sete campos separados por dois-pontos:
name:password:UID:GID:comment:home:shell
alice:x:1001:1001:Alice Moreau:/home/alice:/bin/bash
O UID e o GID primário de Alice são ambos 1001. O comentário, também chamado de campo GECOS, informa seu nome completo. Seu diretório pessoal é /home/alice, e seu shell de login é Bash. O x aponta para os dados de senha em /etc/shadow; não significa que sua senha esteja vazia.
Usuários comuns podem ler /etc/passwd, normalmente com modo 644. Programas precisam de seus dados públicos para converter UIDs armazenados em nomes. Manter hashes de senha em um arquivo protegido separado impede que todos os usuários locais os leiam.
Leia os dados de senha
/etc/shadow tem nove campos: nome, hash de senha, dia da última alteração, idade mínima, idade máxima, dias de aviso, dias de inatividade, dia de expiração da conta e um campo reservado. Root pode lê-lo; alguns sistemas também concedem acesso ao grupo shadow.
Um hash de senha é um resultado unidirecional, não uma criptografia reversível. No login, o sistema aplica o método e o sal armazenados à senha informada e compara o resultado com o hash armazenado. Um sal criptográfico aleatório faz os hashes serem diferentes mesmo quando dois usuários escolhem a mesma senha. Registros SHA-512 crypt usam $6$salt$hash, opcionalmente com um campo rounds=N; yescrypt usa $y$parameters$salt$hash.
Um ! inicial bloqueia a senha e mantém o hash. Um campo que contém apenas !, !! ou * não tem senha utilizável. Outros métodos de login, como chaves SSH, ainda podem funcionar com uma senha bloqueada.
Calcule as datas
Considere este registro com hash abreviado:
alice:$y$j9T$...:20514:0:90:7:::
As datas contam os dias desde 1º de janeiro de 1970, UTC. O dia 20514 é 2 de março de 2026. Uma idade mínima de 0 permite a alteração imediata da senha; uma máxima de 90 significa expiração em 31 de maio de 2026. O aviso de sete dias começa em 24 de maio. Campos vazios de inatividade e expiração da conta não definem nenhum desses limites. Um valor de última alteração igual a 0 força uma alteração no próximo login; uma idade máxima de 99999 representa, na prática, uma validade de senha muito longa. A expiração da senha e a expiração da conta são campos separados.
Leia registros de grupo com segurança
/etc/group usa name:password:GID:members. Em developers:x:1005:alice,bob, o último campo lista integrantes suplementares. Integrantes primários são encontrados pelo GID em seus registros passwd. O arquivo protegido /etc/gshadow armazena dados de senha e de administradores de grupos.
Use getent passwd alice ou getent group developers para consultas. getent consulta fontes de contas configuradas, além dos arquivos locais. cut -d: -f1,3 /etc/passwd exibe nomes locais e UIDs. Altere registros com comandos de contas como usermod e passwd; se a edição direta for inevitável, vipw e vigr bloqueiam os arquivos durante a edição.
Principais conclusões
/etc/passwdarmazena dados públicos de identidade e login;xaponta para/etc/shadow./etc/shadowmantém separadamente hashes de senha, validade de senhas e expiração de contas.- Um sal criptográfico faz senhas iguais produzirem hashes armazenados diferentes.
- Uma senha bloqueada pode deixar outros métodos de login disponíveis.
- As datas do shadow são contagens de dias a partir de 1º de janeiro de 1970, UTC.
/etc/grouplista integrantes suplementares; a participação primária vem de/etc/passwd.- Use comandos de gerenciamento de contas para alterar registros e
getentpara consultá-los.
2Executar comandos administrativos com segurança
Comandos administrativos podem alterar todo o sistema, portanto a identidade que os executa é importante. O sudo permite que um usuário autorizado execute um comando específico com privilégios elevados e registra a tentativa; o su abre o shell de outro usuário. Uma política útil pode conceder a uma equipe uma ação de manutenção sem conceder um shell de root irrestrito. Ler a regra, editá-la com segurança e verificar seu resultado efetivo fazem parte da concessão desse acesso.
2.1 Usar sudo e su para executar ações como root
Tarefas administrativas precisam de mais acesso do que o trabalho cotidiano. Mantenha seu shell habitual na sua própria conta e eleve privilégios para a ação que precisa deles. Arquivos criados por um comando com privilégios elevados podem pertencer a root mesmo quando estão dentro do seu diretório pessoal.
Escolha sudo ou su
| Comando | O que inicia | Senha normalmente solicitada |
|---|---|---|
su | Um shell como root | Senha de root |
su - bob | Um shell de login como Bob | Senha de Bob |
sudo command | Um comando como root | Sua própria senha |
sudo -u postgres psql | Um comando como postgres | Sua própria senha |
Um shell de login carrega o ambiente de login do usuário de destino, incluindo o diretório pessoal e os arquivos de inicialização. Use exit para sair de um shell iniciado por su. sudo -i abre um shell de login de root; sudo -s abre um shell de root. Eles são úteis para uma sequência de tarefas administrativas relacionadas, mas todo comando nesse shell tem privilégios elevados até você sair.
O sudo verifica sua política antes de executar o comando e registra a tentativa. Os logs podem ir para o diário de registros do sistema, /var/log/auth.log em sistemas da família Debian ou /var/log/secure em sistemas da família Red Hat. sudo -l mostra os comandos que sua conta pode executar. A permissão para usar sudo é uma decisão da política, não o resultado de conhecer a senha de outra pessoa.
Entenda a autenticação
Por padrão, o sudo pede a senha do usuário que o invoca, não a de root. A política pode alterar esse comportamento. O registro de autenticação do projeto de origem do sudo dura cinco minutos por padrão; as configurações da distribuição podem usar outro valor, como 15 minutos. O registro normalmente se aplica naquele terminal. Execute sudo -k para invalidá-lo quando terminar.
O Ubuntu normalmente começa sem uma senha de root utilizável e coloca o usuário da instalação em sudo. O Fedora e sistemas da família Red Hat geralmente usam wheel. Uma tentativa negada pode informar que o usuário não está no arquivo sudoers; a tentativa é registrada.
Coloque a operação de escrita sob sudo
Este comando falha quando sua conta comum não pode escrever em /etc/hosts:
sudo echo "192.0.2.10 test.local" >> /etc/hosts
Seu shell atual abre o arquivo para >> antes de o sudo ser executado. Apenas echo recebe permissões de root, e echo não é o programa que abre o destino. Atribua a tarefa de escrita a um processo com privilégios elevados:
echo "192.0.2.10 test.local" | sudo tee -a /etc/hosts
Aqui, tee abre o arquivo protegido como root. Sua opção -a acrescenta ao final; omitir essa opção substituiria o conteúdo do arquivo. Para uma edição interativa, sudoedit /etc/hosts, também escrito como sudo -e /etc/hosts, executa seu editor como você e cuida da atualização do arquivo protegido.
Observe arquivos de trabalho pertencentes a root
Após sudo mkdir ~/project, inspecione o resultado com ls -ld ~/project. O diretório está no seu diretório pessoal, mas foi criado por root. Portanto, suas permissões de proprietário se aplicam a root, enquanto sua conta pode ter apenas acesso de leitura e execução. Restabeleça o proprietário pretendido com sudo chown alice: ~/project quando Alice for a proprietária do projeto. Os dois-pontos finais também selecionam o grupo de login de Alice. A edição e a criação comuns de arquivos podem então ser feitas na conta de Alice.
Principais conclusões
sunormalmente pede a senha do usuário de destino; sudo normalmente pede a sua.- Use
sudo -lpara consultar comandos permitidos esudo -kpara invalidar a autenticação armazenada temporariamente. - O redirecionamento do shell ocorre antes do sudo; eleve os privilégios do programa que abre o arquivo protegido.
sudoeditpermite que seu próprio editor trabalhe em uma cópia do arquivo protegido.- Um comando com privilégios elevados pode criar arquivos pertencentes a root dentro do seu diretório pessoal.
2.2 Conceder permissões de uso do sudo com a política do sudoers
Uma regra do sudo determina quem pode executar uma ação, em qual sistema hospedeiro e sob qual identidade. Conceder a uma equipe uma ação administrativa pode atender às suas necessidades sem dar controle irrestrito sobre a máquina.
Leia as partes de uma regra
O padrão básico é who where = (as_whom) what. Por exemplo:
alice ALL=(ALL:ALL) ALL
%sudo ALL=(ALL:ALL) ALL
A primeira regra permite que Alice execute qualquer comando em qualquer sistema hospedeiro como qualquer usuário e grupo. A segunda concede as mesmas permissões ao grupo sudo; % indica um nome de grupo. Uma regra comum da família Red Hat é %wheel ALL=(ALL) ALL.
Para tornar Alice administradora com permissões completas por meio de uma regra existente da distribuição, execute sudo usermod -aG sudo alice no Debian ou Ubuntu, ou use wheel no Fedora e em sistemas relacionados. Alice precisa fazer um novo login para que a participação chegue à sua sessão. O -a é importante: sem ele, -G substitui os outros grupos suplementares dela.
Edite e verifique a política
O arquivo principal é /etc/sudoers; regras adicionais podem ficar em /etc/sudoers.d/. Use sudo visudo ou um arquivo específico:
sudo visudo -f /etc/sudoers.d/webteam
O visudo bloqueia o arquivo de política durante a edição e verifica sua sintaxe antes de salvar. Uma política com erros pode impedir que administradores usem sudo. Nomeie o arquivo como webteam, e não webteam.conf: o tratamento de diretórios incluídos do sudo ignora nomes que contêm ponto ou terminam em ~.
Os arquivos no diretório incluído são lidos em ordem de nome. Quando várias regras correspondem, a última regra correspondente controla o resultado; a regra que parece mais específica não necessariamente prevalece. A inclusão normalmente fica perto do fim da política principal, então um arquivo adicional pode afetar uma regra escrita antes.
Conceda uma ação exata
Uma equipe que mantém um serviço web pode receber:
%webteam ALL=(root) /usr/bin/systemctl restart nginx
Um integrante pode executar sudo systemctl restart nginx. A regra especifica o caminho completo do comando e seus argumentos. Ela não autoriza systemctl stop nginx nem bash. Verifique as permissões efetivas com sudo -l; um administrador pode examinar a política de Bob com sudo -l -U bob.
O programa permitido também importa. Um shell de root pode fazer qualquer coisa. Editores e paginadores podem iniciar shells, e cp ou tee sem restrições pode sobrescrever configurações protegidas. Uma lista de comandos aparentemente curta pode, portanto, conceder controle completo.
Decida se uma senha é necessária
NOPASSWD: remove a solicitação de autenticação para um comando correspondente:
backup ALL=(root) NOPASSWD: /usr/local/bin/backup.sh
Isso pode atender a uma tarefa automatizada. O script deve ser controlado por root: se backup puder reescrevê-lo, a conta poderá substituir seu conteúdo por qualquer comando de root. Mantenha a ação permitida restrita e proteja o script.
Linhas Defaults alteram configurações da política. Defaults timestamp_timeout=10 define um registro de autenticação de dez minutos; Defaults logfile=/var/log/sudo.log seleciona um arquivo de log adicional. Essas configurações controlam o comportamento do sudo, enquanto as regras de comandos controlam as ações que ele autoriza.
Principais conclusões
- Uma regra do sudoers especifica quem, o sistema hospedeiro, a identidade de destino e o comando permitido.
- Edite a política com
visudopara que o bloqueio e a verificação de sintaxe protejam o arquivo. - Um comando exato com argumentos pode autorizar uma ação sem autorizar um shell.
- Proteja scripts usados por regras
NOPASSWDcontra alterações pela conta que os invoca. - Nomes que contêm ponto são ignorados em
/etc/sudoers.d/. - Quando várias regras correspondem, sua ordem importa.
3Criar e gerenciar contas de usuário e grupos
A configuração de uma conta inclui mais do que um nome de login: ela precisa de um identificador de usuário, grupos, um diretório pessoal, um shell e uma configuração de autenticação. Esses dados também mudam quando as pessoas trocam de função ou saem. O gerenciamento de grupos facilita o acesso da equipe, mas sessões em execução mantêm as identidades que já carregaram. Examine a criação, as alterações posteriores e a remoção, verificando tanto os registros de contas quanto os arquivos identificados por eles.
3.1 Criar contas de usuário com useradd e adduser
Criar uma conta configura uma identidade, um ambiente de login e, muitas vezes, um diretório pessoal. Escolher as opções explicitamente torna o resultado previsível entre distribuições.
Crie uma conta comum
Suponha que o grupo developers já exista. Crie a conta de Priya e defina sua senha em dois comandos:
sudo useradd -m -s /bin/bash -c "Priya Shah" -G developers priya
sudo passwd priya
-m cria /home/priya e copia os arquivos iniciais de /etc/skel. -s /bin/bash seleciona Bash como shell de login, e -c fornece o comentário. -G developers adiciona uma participação em grupo suplementar; vários nomes de grupos formam uma lista separada por vírgulas, sem espaços. A conta normalmente também recebe um grupo primário privado.
O primeiro comando adiciona registros de conta a /etc/passwd e /etc/shadow e registros de grupo, conforme necessário, a /etc/group e /etc/gshadow. Seu campo inicial de senha está bloqueado, frequentemente com ! ou !!. A conta existe antes de ter uma senha utilizável. passwd priya define essa senha; sua solicitação mantém a senha fora da linha de comando.
Entenda os padrões das distribuições
useradd é o comando de baixo nível para criação de contas usado nas distribuições Linux. Debian e Ubuntu também fornecem um script interativo adduser que pede dados e cria um diretório pessoal. Em sistemas da família Red Hat, adduser é outro nome para useradd, portanto não oferece o mesmo processo interativo.
Sem opções explícitas, useradd depende dos padrões locais. Os padrões da família Red Hat geralmente criam um diretório pessoal; os do Debian e do Ubuntu não, a menos que -m seja informado. O shell padrão também pode ser diferente. Consulte useradd -D para ver padrões como o diretório base dos diretórios pessoais e o shell. /etc/default/useradd e /etc/login.defs fornecem configurações que incluem faixas de UID, grupos privados e validade de senhas.
Informe outro diretório pessoal ou identidade
Opções úteis descrevem partes distintas da conta:
| Opção | Finalidade |
|---|---|
-u 1500 | Escolher um UID |
-g staff | Selecionar um grupo primário existente |
-d /data/priya | Definir o caminho do diretório pessoal |
-e 2026-12-31 | Definir uma data de expiração da conta |
-r | Criar uma conta de sistema |
Um caminho de diretório pessoal no registro não cria o diretório por si só. Combine -d com -m quando o novo diretório pessoal precisar ser criado. No Debian, omitir -m pode deixar uma conta válida sem um diretório pessoal para usar no login.
Para uma identidade de serviço, sudo useradd -r -s /usr/sbin/nologin backupsvc solicita um UID de sistema e um shell não interativo. Contas de sistema não têm diretório pessoal por padrão. O shell nologin impede o login em um shell interativo comum sob essa identidade.
Verifique a configuração
Execute getent passwd priya, id priya e ls -la /home/priya. Verifique o caminho do diretório pessoal, o shell, o grupo primário, os grupos adicionais e os arquivos ocultos copiados. /etc/skel é um modelo: adicionar .bash_aliases ali afeta a criação posterior de diretórios pessoais, não os que já existem. Use nomes de conta simples em letras minúsculas, com algarismos, hífens ou sublinhados após a letra inicial; espaços e nomes incomuns são rejeitados ou tratados incorretamente por muitas ferramentas.
Principais conclusões
- Use
useradd -mpara criar um diretório pessoal e copiar/etc/skel. - Defina a senha inicial separadamente com
passwd. -gescolhe um grupo primário;-Gescolhe grupos suplementares.- O
adduserinterativo do Debian difere do comando de mesmo nome da família Red Hat. useradd -rcria uma conta de sistema; um shell nologin impede o login em um shell interativo.- Verifique o registro da conta, os grupos e o diretório pessoal após a criação.
3.2 Gerenciar senhas e alterar ou remover contas
Uma conta pode precisar de uma nova senha, de outro diretório pessoal, de um bloqueio temporário de acesso ou de remoção permanente. Essas operações alteram partes diferentes da conta, portanto identifique o resultado pretendido antes de escolher um comando.
Altere uma senha ou sua validade
Execute passwd para alterar sua própria senha, normalmente após digitar a atual. Um administrador usa sudo passwd priya para definir a senha de Priya sem conhecer a antiga. Verificações de qualidade de senha podem rejeitar escolhas curtas ou simples.
sudo passwd -S priya informa o estado da senha. sudo passwd -l priya bloqueia a senha colocando ! antes de seu hash, e sudo passwd -u priya a desbloqueia. sudo passwd -e priya faz a senha expirar, de modo que o usuário precise escolher outra no próximo login. Fazer uma senha expirar é útil ao fornecer uma senha temporária.
Use sudo chage -l priya para consultar as datas de validade. Por exemplo:
sudo chage -M 90 -m 1 -W 7 priya
A idade máxima é de 90 dias, a mínima entre alterações é de um dia e os avisos começam sete dias antes da expiração. Esses valores vão para /etc/shadow. sudo chage -E 2026-12-31 priya define a data de expiração da conta inteira, separadamente da validade de sua senha.
Bloqueie o acesso sem excluir registros
Um bloqueio de senha impede a autenticação por senha. Ele não remove chaves SSH nem interrompe todos os outros métodos de autenticação. Para desabilitar logins futuros na conta de um usuário que está saindo, bloqueie a senha e defina uma data de expiração da conta no passado, como em sudo usermod -e 1 priya. O valor 1 é uma contagem de dias em janeiro de 1970, portanto essa data já passou. Isso não encerra processos que já estão em execução; eles precisam de atenção separada.
Altere uma conta existente
usermod pode alterar o comentário com -c, o shell com -s e o caminho do diretório pessoal com -d. Combine -d e -m para mover o conteúdo do diretório pessoal, como em sudo usermod -d /data/priya -m priya. -l newname altera o nome de login, mas o diretório pessoal e o grupo privado mantêm seus nomes existentes, a menos que também sejam alterados. -L e -U bloqueiam e desbloqueiam a senha.
Para adicionar uma participação em grupo suplementar, execute sudo usermod -aG developers priya. O -a significa acrescentar. Sem ele, usermod -G developers priya substitui toda a lista de grupos suplementares de Priya; uma participação anterior em sudo pode desaparecer. Seu grupo primário é uma configuração separada, controlada por -g.
Remova a conta e cuide de seus arquivos
sudo userdel priya exclui os registros da conta, mas mantém o diretório pessoal. sudo userdel -r priya também remove o diretório pessoal e a fila de correio. O comando normal se recusa a remover a conta enquanto o usuário ainda tiver processos em execução.
Arquivos em outros locais mantêm o UID numérico do proprietário. Após a exclusão da conta, uma listagem pode mostrar 1003 como proprietário porque nenhum nome corresponde a ele. Reutilizar esse UID para uma nova conta dá a ela a propriedade dos arquivos antigos. Use sudo find / -nouser para localizar arquivos sem usuário correspondente e depois arquive-os ou atribua-os a outro proprietário. Quando alguém sair, bloqueie primeiro os logins futuros, cuide das atividades em execução e preserve os arquivos necessários; depois, exclua a conta quando essas tarefas estiverem concluídas.
Principais conclusões
- Bloqueio de senha, expiração de senha e expiração de conta atendem a finalidades diferentes.
- Use
chagepara consultar ou alterar datas de validade de senhas e de expiração de contas. - Mantenha
-acomusermod -Gao adicionar grupos sem remover participações existentes. - Alterar um nome de login não renomeia o diretório pessoal nem o grupo privado.
userdel -rremove o diretório pessoal e a fila de correio, mas arquivos em outros locais mantêm o UID antigo.- Arquive os arquivos restantes ou atribua-os a outro proprietário antes que esse UID possa ser reutilizado.
- A expiração da conta não encerra processos que já estão em execução.
3.3 Criar grupos e gerenciar seus membros
Uma pasta compartilhada precisa de um grupo, de membros e de permissões de diretório que permitam a esses membros trabalhar. Após uma alteração de participação em grupo, o banco de dados de contas e os grupos mantidos por um shell já em execução podem divergir temporariamente.
Crie e mantenha o grupo
sudo groupadd developers atribui o próximo GID disponível. Adicione -g 1500 para escolher um GID específico ou -r para criar um grupo de sistema. Verifique com getent group developers; um último campo vazio significa que ainda não há integrantes suplementares listados.
Adicione um membro com qualquer um dos comandos:
sudo usermod -aG developers priya
sudo gpasswd -a priya developers
sudo gpasswd -d priya developers remove essa participação suplementar. sudo gpasswd -M alice,bob developers define toda a lista de membros, substituindo a anterior. Escolha acrescentar, remover ou substituir conforme a alteração pretendida.
Atualize os grupos de uma sessão
Após adicionar Priya, id priya consulta o banco de dados de contas e mostra a nova participação imediatamente. id sem argumentos no shell existente dela informa os grupos que esse shell está realmente usando. Eles foram estabelecidos quando a sessão começou.
Um novo login carrega a nova lista. newgrp developers oferece outra opção: inicia um novo shell com developers como grupo primário. Use exit para sair desse shell. Ao diagnosticar uma operação negada, examine a identidade na sessão que tenta executá-la, não apenas o registro no banco de dados.
Renomeie ou exclua um grupo
sudo groupmod -n devteam developers altera o nome, mas mantém o GID. Os arquivos existentes continuam se referindo ao mesmo grupo numérico. Já sudo groupmod -g 1600 developers altera o número do grupo. Arquivos que ainda contêm o GID antigo 1005 precisam de atenção; localize-os com sudo find / -gid 1005 e depois use chgrp para atribuir o grupo pretendido.
sudo groupdel developers recusa a exclusão se um usuário existente ainda o tiver como grupo primário. Defina outro grupo primário com usermod -g antes de excluí-lo. Excluir um nome de grupo não apaga os arquivos que contêm seu GID anterior.
Configure uma pasta de equipe
Para a equipe web de Priya e Kenji:
sudo groupadd webteam
sudo usermod -aG webteam priya
sudo usermod -aG webteam kenji
sudo mkdir /srv/web
sudo chgrp webteam /srv/web
sudo chmod 2770 /srv/web
Após novos logins, os dois usuários podem criar arquivos em /srv/web. O modo 2770 concede rwx ao proprietário e ao grupo, --- aos outros e define SGID no diretório. Um novo arquivo recebe o grupo webteam, mesmo quando o grupo primário de quem o criou é seu grupo privado. Novos subdiretórios também herdam SGID.
O diretório torna útil a participação na equipe e impede a entrada de outros usuários, mas cada arquivo ainda tem seu próprio modo. Com a solicitação usual de 666 para arquivos, uma umask 002 de quem cria concede escrita ao grupo, enquanto 022 deixa o grupo com acesso somente de leitura. Se integrantes da equipe precisarem editar os arquivos uns dos outros, verifique esses padrões de criação além da pasta.
Principais conclusões
- Use
groupaddpara criar grupos egpasswdouusermod -aGpara adicionar membros. - Alterações de participação no banco de dados chegam a uma sessão existente após um novo login ou um novo shell adequado.
- Renomear um grupo mantém seu GID; alterar seu GID deixa os GIDs dos arquivos existentes para serem corrigidos.
- Um grupo não pode ser excluído enquanto uma conta ainda o usar como grupo primário.
- Um diretório SGID compartilhado atribui seu grupo a novos arquivos; o modo de cada arquivo ainda controla a edição.
4Consultar e alterar o proprietário, o grupo e as permissões
O acesso depende de duas perguntas relacionadas: qual usuário e grupo são proprietários de um objeto e o que seus bits de permissão permitem. Uma listagem detalhada fornece as informações, mas os mesmos bits têm funções diferentes em arquivos e diretórios. Por isso, ler um documento, entrar em uma pasta e excluir um nome exigem verificações diferentes. Use chmod para definir as ações permitidas e chown ou chgrp para atribuir as identidades às quais essas ações se aplicam.
4.1 Identificar o proprietário, o grupo e as permissões em uma listagem
Uma listagem detalhada coloca em uma linha as informações necessárias para uma decisão de acesso. Leia o proprietário e o grupo junto com os nove bits de permissão; os bits sozinhos não indicam quais permissões uma pessoa específica recebe.
Interprete uma listagem detalhada
-rw-r----- 1 priya developers 2048 Oct 22 09:15 report.txt
O primeiro campo contém o tipo de arquivo e as permissões. Os campos seguintes informam a contagem de links físicos, o usuário proprietário, o grupo proprietário, o tamanho em bytes, a data e hora de modificação e o nome. Esse arquivo comum pertence a Priya e ao grupo developers. O tamanho é de 2048 bytes; a data e hora exibidas registram a última modificação do conteúdo.
O primeiro caractere é - para um arquivo comum, d para um diretório ou l para um link simbólico. Você também pode encontrar c e b para dispositivos de caracteres e de blocos, p para um pipe nomeado e s para um socket.
Divida as nove posições seguintes em três trincas:
| Classe | Bits neste caso | Acesso ao arquivo comum |
|---|---|---|
| Proprietário | rw- | Ler e alterar o conteúdo |
| Grupo | r-- | Ler o conteúdo |
| Outros | --- | Nenhum acesso por essa classe |
Em cada trinca, as posições significam leitura, escrita e execução, nessa ordem. Um traço indica uma permissão ausente, não uma posição vazia a ser pulada na contagem.
Escolha exatamente uma classe
Para uma verificação comum de permissão, o Linux pergunta:
- O usuário do processo corresponde ao proprietário do arquivo? Use a trinca do proprietário.
- Caso contrário, um de seus grupos corresponde ao grupo do arquivo? Use a trinca do grupo.
- Caso contrário, use a trinca dos outros.
As classes não são somadas. Suponha que Priya seja proprietária de um arquivo cuja sequência completa de tipo e modo seja ----rw-rw-. Sua trinca de proprietário é ---, então ela não pode lê-lo por meio dos bits comuns, embora grupo e outros tenham rw-. Como proprietária, ela pode alterar o modo. Uma trinca menos restritiva de grupo ou outros não substitui a trinca selecionada do proprietário.
Root pode contornar as verificações comuns de permissão de leitura e escrita. Para executar um arquivo de programa comum, até root precisa de pelo menos um bit de execução nele. Portanto, uma verificação de modo precisa considerar tanto a identidade do usuário quanto a operação tentada.
Examine diretórios e números
ls -ld /srv/web lista o próprio diretório. Sem -d, ls -l /srv/web normalmente lista as entradas dentro dele, o que pode desviar sua atenção de uma restrição no diretório. ls -a inclui nomes ocultos, enquanto ls -n exibe proprietários e grupos numéricos. Arquivos armazenam UIDs e GIDs; se uma conta ou grupo tiver sido excluído, uma listagem comum também poderá mostrar o número restante.
Para um relatório compacto, execute:
stat -c '%A %a %U %G %n' report.txt
Ele pode mostrar -rw-r----- 640 priya developers report.txt, colocando letras e dígitos octais lado a lado. Um + após as letras indica entradas adicionais de lista de controle de acesso. Um link simbólico geralmente aparece como lrwxrwxrwx; o Linux usa as permissões do destino para determinar o acesso, não esses bits exibidos do link.
Principais conclusões
- Leia primeiro o tipo de arquivo e depois as trincas do proprietário, do grupo e dos outros.
- A primeira classe correspondente fornece as permissões comuns; as classes não se combinam.
- Arquivos armazenam UIDs e GIDs numéricos mesmo quando uma listagem mostra nomes.
ls -ldexamina o próprio diretório, estatpode mostrar os modos em letras e em octal.
4.2 Explicar o que as permissões de leitura, escrita e execução permitem
Leitura, escrita e execução descrevem ações diferentes em arquivos e diretórios. Um diretório armazena nomes que levam a arquivos, portanto alterar o conteúdo de um arquivo e remover seu nome são verificações de permissão diferentes.
Relacione o bit ao objeto
| Bit | Arquivo comum | Diretório |
|---|---|---|
r | Ler ou copiar o conteúdo | Listar nomes das entradas |
w | Alterar, sobrescrever ou acrescentar conteúdo | Criar, excluir ou renomear entradas, com x |
x | Executar como programa | Entrar e acessar entradas pelo nome |
Um arquivo com permissão de escrita, mas sem permissão de leitura, pode receber conteúdo ao final sem ser lido. Por exemplo, um shell pode abrir um log com permissão de escrita para echo text >> log.txt mesmo quando cat log.txt falha. Um editor frequentemente precisa de leitura e escrita porque primeiro carrega o conteúdo existente.
Um script executado como ./backup.sh precisa de permissão de execução e deve ser legível por seu interpretador. Se o script for legível, mas não tiver execução, bash backup.sh ainda poderá lê-lo e executá-lo: Bash é o programa executável nesse comando.
Separe listagem de busca
A permissão de leitura de diretório permite ver nomes. A execução de diretório, também chamada de permissão de busca, permite acessar uma entrada pelo nome. Com leitura, mas sem execução, ls pode mostrar nomes, enquanto ls -l não consegue obter seus detalhes e pode exibir erros e pontos de interrogação. Você não pode abrir os arquivos nomeados por esse diretório.
Com execução, mas sem leitura, o inverso é possível: você pode acessar notes.txt se já souber seu nome exato, mas não pode listar o diretório para descobrir os nomes. O próprio modo do arquivo ainda deve permitir o acesso solicitado.
Examine todo o caminho
Para ler /home/priya/notes/public.txt, Kenji precisa de permissão de execução em todos os diretórios do caminho e permissão de leitura no arquivo. Se /home/priya tiver modo 700, sua trinca dos outros será ---; Kenji para ali mesmo que public.txt tenha modo 644. Acrescentar mais permissão de leitura ao arquivo não corrige a falta de um bit de busca em um diretório acima dele.
Use ls -ld /home/priya /home/priya/notes para examinar os próprios diretórios. Em cada nível, escolha a classe que se aplica a Kenji e verifique seu bit de execução. A classe relevante pode mudar de um diretório para outro porque seus proprietários e grupos podem ser diferentes.
Preveja exclusões e renomeações
Excluir um arquivo remove uma entrada de diretório. Kenji precisa de escrita e execução no diretório que o contém, não de escrita no arquivo. Em um diretório comum com permissão de escrita e sem sticky bit, ele pode remover o arquivo somente de leitura de Priya. Por outro lado, ser proprietário de um arquivo não permite que ele o exclua de um diretório onde não tem permissão de escrita.
Portanto, remover a escrita do arquivo é útil para proteger o conteúdo contra edições, mas não protege o nome contra remoção. O sticky bit de um diretório acrescenta uma restrição de propriedade à exclusão e à renomeação em pastas compartilhadas com permissão de escrita. O acesso ao arquivo e o acesso à entrada de diretório respondem a perguntas diferentes.
Principais conclusões
- Os bits
r,wexde um arquivo controlam sua leitura, alteração e execução. - Em um diretório,
rlista nomes;xacessa entradas;wcomxaltera entradas. - Acessar um arquivo exige execução em todos os diretórios de seu caminho.
- Um script legível pode ser passado ao seu interpretador mesmo sem seu próprio bit de execução.
- Excluir um arquivo depende das permissões de seu diretório, com uma restrição adicional em diretórios com sticky bit.
4.3 Alterar permissões com chmod
Use chmod para alterar as permissões de um arquivo ou diretório do qual você é proprietário. Root também pode alterá-las. Ter acesso de escrita por meio de um grupo permite alterar o conteúdo do arquivo, mas não torna você proprietário nem permite definir seu modo.
Faça uma alteração simbólica específica
Um modo simbólico tem uma classe, um operador e bits. As classes são u para proprietário, g para grupo, o para outros e a para as três. + adiciona permissões, - as remove e = define exatamente as permissões dessa classe.
chmod u+x deploy.sh
chmod go-w notes.txt
chmod u=rw,g=r,o= report.txt
O primeiro comando adiciona apenas o bit de execução do proprietário. O segundo remove a escrita do grupo e dos outros, mantendo seus demais bits. O terceiro concede leitura e escrita ao proprietário, leitura ao grupo e nenhuma permissão aos outros: rw-r-----.
Especifique a classe quando quiser uma alteração precisa. Se você a omitir, como em chmod +w notes.txt, a umask restringirá quais bits de classe serão afetados. Com umask 022, esse comando adiciona escrita somente para o proprietário; chmod a+w notes.txt inclui explicitamente as três classes.
Converta cada trinca em um dígito octal
Leitura tem valor 4, escrita 2 e execução 1. Some os valores presentes em cada classe:
| Dígito | Bits | Cálculo |
|---|---|---|
| 7 | rwx | 4 + 2 + 1 |
| 6 | rw- | 4 + 2 |
| 5 | r-x | 4 + 1 |
| 4 | r-- | 4 |
| 0 | --- | Nenhum |
Para rw-r-----, divida em rw-, r--, ---: os dígitos são 6, 4, 0. chmod 640 report.txt define esses nove bits comuns, independentemente do modo comum anterior. Inverta o processo para 750: 7 fornece rwx, 5 fornece r-x e 0 fornece ---, formando rwxr-x---.
Escolha um modo final útil
O modo 600 mantém um arquivo privado para seu proprietário. O modo 644 permite que outros usuários leiam um arquivo comum. O modo 664 também permite que o grupo edite. Diretórios privados geralmente usam 700, diretórios legíveis pelo grupo usam 750 e diretórios nos quais o grupo pode escrever usam 770. Programas ou diretórios públicos geralmente usam 755.
Os mesmos dígitos permitem ações úteis diferentes em objetos diferentes. Aplicar 644 a um diretório remove a execução de todas as classes. Nem mesmo seu proprietário pode mais entrar nele ou abrir arquivos por meio dele. Use um modo de diretório com permissão de busca para as pessoas que precisam de acesso.
Aplique alterações a uma árvore
chmod -R 755 site/ também torna todos os arquivos comuns executáveis. Para uma árvore que contém diretórios e documentos comuns, use a execução condicional:
chmod -R u=rwX,go=rX site/
O X maiúsculo adiciona execução a diretórios e a arquivos que já têm um bit de execução. Arquivos não executáveis passam a ter 644; diretórios passam a ter 755. Arquivos executáveis existentes mantêm o acesso de execução. Isso mantém o percurso possível sem marcar todo documento como programa. Os bits especiais são separados: o GNU chmod preserva SUID e SGID de diretórios, a menos que você os limpe explicitamente, por exemplo com chmod g-s site/.
Principais conclusões
- Somente o proprietário ou root pode alterar o modo de um arquivo.
- Os operadores simbólicos
+e-alteram bits selecionados;=define exatamente uma classe. - Modos octais somam leitura 4, escrita 2 e execução 1 para cada classe.
- Uma classe omitida no modo simbólico torna a umask relevante.
- Diretórios precisam de permissão de busca para usuários que devem acessar suas entradas.
- O
Xmaiúsculo permite alterações recursivas sem tornar todos os arquivos comuns executáveis.
4.4 Alterar o proprietário e o grupo com chown e chgrp
O proprietário e o grupo identificam o usuário e o grupo cujas trincas de permissão serão verificadas. Atribuí-los corretamente pode corrigir uma pasta de trabalho criada acidentalmente com sudo, sem conceder acesso mais amplo a todos os outros.
Leia as formas de chown
chown pode alterar um usuário, um grupo ou ambos:
| Comando | Resultado |
|---|---|
sudo chown kenji report.txt | Altera o proprietário; mantém o grupo |
sudo chown kenji:webteam report.txt | Altera o proprietário e o grupo |
sudo chown :webteam report.txt | Altera apenas o grupo |
sudo chown kenji: report.txt | Define o proprietário e o grupo de login de Kenji |
chgrp webteam report.txt | Altera apenas o grupo |
Identificadores numéricos também funcionam, como em sudo chown 1002:1005 report.txt. Os nomes são resolvidos em números; o arquivo armazena esses números.
Somente root pode transferir um arquivo para outro usuário proprietário. Um proprietário pode alterar o grupo de seu próprio arquivo para um grupo ao qual pertence. Assim, Priya pode usar chgrp webteam plan.txt se for proprietária do arquivo e pertencer a webteam. Para atribuí-lo a finance, ela também precisaria pertencer a esse grupo. A capacidade de outro integrante de editar o arquivo não concede a capacidade de alterar seu proprietário ou modo.
Corrija uma pasta criada acidentalmente como propriedade de root
Kenji executou um comando de criação com sudo. A listagem é:
drwxr-xr-x 2 root root 4096 Oct 22 10:02 /home/kenji/app
Ele não é o proprietário nem está usando o grupo proprietário, então recebe o r-x dos outros. Ele pode inspecionar a pasta e entrar nela, mas não pode criar entradas porque falta escrita. Tornar a pasta gravável por todos concederia mais acesso do que o projeto dele precisa.
Se o projeto pertence a Kenji, sudo chown -R kenji: ~/app restabelece sua propriedade e seu grupo de login em todo o projeto. Sua trinca de proprietário agora é rwx, então ele pode criar arquivos. Inspecione o caminho de destino antes de qualquer comando recursivo de alteração de propriedade: aplicá-lo a /etc ou /usr pode prejudicar o funcionamento do sistema. -R significa o diretório e tudo abaixo dele.
Preveja a propriedade após operações com arquivos
Um arquivo recém-criado pertence ao usuário do processo que o cria. Seu grupo normalmente vem do grupo primário desse processo ou de um diretório pai com SGID. Portanto, criar uma nova cópia comum com cp torna quem executa o comando seu proprietário. Um mv dentro do mesmo sistema de arquivos altera o local de um arquivo existente e mantém seu proprietário e grupo. Opções de cópia que preservam a propriedade têm um comportamento diferente do de uma nova cópia comum.
Essa distinção explica por que mover um arquivo antigo para uma pasta compartilhada não aplica a ele a regra de herança de grupo dessa pasta. SGID se aplica na criação; use chgrp quando o grupo de um arquivo existente precisar ser alterado.
Combine identidade e acesso
Atribuir webteam com chgrp seleciona quem a classe de grupo representa. Isso não adiciona leitura ou escrita ao grupo. Use chmod para conceder os bits necessários após escolher o grupo. Alterar o proprietário ou o grupo de um executável também pode limpar privilégios SUID ou SGID; examine o modo resultante quando esses bits forem importantes.
Principais conclusões
chownatribui o usuário ou o grupo proprietário;chgrpaltera apenas o grupo.- Somente root pode alterar o usuário proprietário.
- Proprietários podem atribuir seus arquivos a grupos aos quais pertencem.
- Uma nova cópia normalmente pertence a quem a criou; uma movimentação no mesmo sistema de arquivos mantém o proprietário e o grupo.
- A herança de SGID se aplica a arquivos recém-criados, não a um arquivo existente movido para o diretório.
5Controlar permissões padrão e especiais e resolver problemas de acesso
Novos arquivos herdam configurações de criação, enquanto bits de permissão especiais alteram o comportamento de programas ou diretórios compartilhados. Uma pasta de equipe só funciona quando seu grupo, a herança do grupo proprietário e os modos dos novos arquivos estão alinhados. Quando o acesso falhar, siga o usuário e o caminho reais até a primeira permissão ausente. Esse diagnóstico permite corrigir a permissão necessária e manter restritos os dados privados e os poderes de administrador.
5.1 Definir permissões padrão com umask
As permissões de um novo arquivo vêm de duas entradas: o modo solicitado pelo programa que o cria e a umask do processo. A máscara remove bits solicitados; ela nunca adiciona permissões que o programa não pediu.
Comece pela solicitação de criação
Editores e redirecionamento do shell geralmente solicitam 666, ou rw-rw-rw-, para novos arquivos comuns. A criação de diretórios geralmente solicita 777, ou rwxrwxrwx. Uma umask é um conjunto de bits a limpar dessa solicitação. Um bit permanece somente quando a solicitação o inclui e a máscara não.
Para umask 022, mantenha todos os bits solicitados do proprietário, remova a escrita do grupo e remova a escrita dos outros. Um arquivo passa a ter 644; um diretório passa a ter 755. Leia cada dígito como bits, não como uma quantidade decimal comum.
| Máscara | Arquivo solicitado como 666 | Diretório solicitado como 777 |
|---|---|---|
| 022 | 644 | 755 |
| 027 | 640 | 750 |
| 077 | 600 | 700 |
| 002 | 664 | 775 |
| 033 | 644 | 744 |
Com 027, o grupo perde escrita enquanto os outros perdem os três bits. Ela é útil quando uma equipe deve ler novos arquivos, mas usuários fora da equipe não devem ter acesso. Com 002, a escrita do grupo continua disponível; o grupo proprietário do arquivo ainda determina quem a recebe.
Por que a subtração falha
Considere a solicitação de arquivo 666 e a máscara 033. Cada 3 significa escrita mais execução. Mas cada trinca solicitada para o arquivo é rw-: a execução já está ausente. Limpar escrita e execução deixa r-- para grupo e outros, então o resultado é 644. Subtrair os dígitos produziria 633, sugerindo incorretamente que bits de execução podem aparecer.
Para uma solicitação de diretório de 777, limpar esses mesmos bits produz 744. Esse diretório não tem execução para grupo e outros, então essas classes não podem acessar suas entradas, mesmo podendo listar os nomes. Uma máscara que produz o modo de arquivo desejado pode produzir um resultado inconveniente para diretórios.
Consulte e defina sua máscara
Execute umask para ver a configuração atual, frequentemente exibida com um zero inicial, como 0022. O zero inicial é formatação; o Linux usa os nove bits comuns de permissão. umask -S exibe os bits permitidos, como u=rwx,g=rx,o=rx para 022; um programa pode solicitar um subconjunto desses bits.
umask 027 altera o shell atual e é herdado pelos programas iniciados por ele. Arquivos existentes mantêm seus modos. Use chmod quando um arquivo já criado precisar de permissões diferentes.
Escolha um padrão persistente
Uma linha como umask 027 em ~/.profile ou ~/.bashrc pode definir o valor para os shells que leem esse arquivo de inicialização. Os padrões do sistema podem vir de /etc/profile ou de UMASK em /etc/login.defs. A distribuição e a configuração da conta determinam quais arquivos são lidos e quando.
Muitos sistemas usam 022, enquanto configurações com grupos privados frequentemente usam 002 para usuários comuns. Um compilador pode solicitar saída executável com modo 777; sob 022, ela passa a ter 755. A solicitação 666 de um editor de texto não tem bits de execução, então escrever um script não o torna executável por si só.
Principais conclusões
- Um novo modo mantém os bits solicitados pelo programa, a menos que a umask os remova.
- Solicitações de arquivos comuns geralmente começam em 666; solicitações de diretórios geralmente começam em 777.
- Aplique a máscara bit a bit; uma subtração como a de números decimais pode dar o resultado errado.
- Alterar a máscara afeta criações posteriores, não arquivos existentes.
- Uma máscara herdada do shell e o modo solicitado por um programa são entradas separadas.
- Verifique os resultados para arquivos e diretórios ao selecionar um padrão.
5.2 Usar SUID, SGID e o sticky bit
Três bits especiais acrescentam comportamentos além das permissões comuns de proprietário, grupo e outros. Seu significado depende de o objeto ser um programa ou um diretório.
Reconheça o dígito adicional
Um dígito octal inicial combina SUID 4, SGID 2 e sticky 1. O modo 4755 é SUID mais o modo comum 755. O modo 2770 é SGID mais 770. O modo 3770 combina SGID e sticky porque 2 mais 1 é 3.
Em uma listagem detalhada, os bits compartilham as posições de execução. Um s minúsculo na posição do proprietário significa SUID e execução para o proprietário; um s minúsculo na posição do grupo significa SGID e execução para o grupo. Um t minúsculo na posição dos outros significa sticky e execução para os outros. Um S ou T maiúsculo significa que o bit especial está presente, mas a execução nessa posição está ausente.
SUID e SGID em programas
O SUID permite que um executável seja executado com a identidade efetiva do proprietário do arquivo. /usr/bin/passwd geralmente aparece como -rwsr-xr-x root root: o programa pode atualizar dados protegidos de senha enquanto controla qual senha de usuário quem o invocou pode alterar. Iniciá-lo não dá a essa pessoa um shell de root. O Linux ignora SUID em scripts e diretórios.
O SGID em um executável usa, de forma semelhante, a identidade de grupo do arquivo. Esses bits concedem acesso controlado pelo programa, portanto o comportamento do programa importa. Nunca adicione SUID a um shell, editor ou script. Um administrador pode listar arquivos comuns com SUID usando sudo find / -perm -4000 -type f 2>/dev/null; use -perm -2000 para arquivos SGID e compare os resultados com a configuração esperada do sistema.
SGID em um diretório de equipe
Em um diretório, SGID faz com que novas entradas recebam o grupo do diretório, e novos subdiretórios herdem SGID. Suponha que /srv/web pertença a root:webteam, com modo 2770, exibido como drwxrws---. Priya tem um grupo primário privado, mas pertence a webteam. Quando ela cria index.html nesse diretório, seu grupo passa a ser webteam.
Seu modo comum ainda depende da criação. Com uma solicitação de arquivo de 666 e umask 002, ele passa a ter 664 e Kenji, outro integrante da equipe, pode editá-lo. Com 022, passa a ter 644, então Kenji tem apenas acesso de leitura. SGID fornece o grupo, não um bit adicional de escrita.
Diretórios com sticky bit e exclusão
O sticky bit restringe a exclusão e a renomeação: com o acesso necessário ao diretório, uma entrada pode ser removida pelo proprietário do arquivo, pelo proprietário do diretório ou por root. Isso torna úteis os diretórios compartilhados com permissão de escrita sem permitir que usuários removam as entradas uns dos outros. /tmp e /var/tmp geralmente usam 1777, exibido como drwxrwxrwt. O sticky bit não impede edições no conteúdo do arquivo quando seu modo as permite. O Linux o ignora em arquivos comuns.
Defina bits com chmod u+s prog, chmod g+s /srv/web ou chmod o+t /srv/drop. Limpe-os com u-s, g-s ou o-t. Com GNU chmod, chmod 755 /srv/web preserva um bit SGID existente no diretório; use chmod g-s /srv/web para limpá-lo explicitamente.
Principais conclusões
- SUID usa a identidade do proprietário de um arquivo de programa; SGID em um executável usa a identidade de seu grupo.
- SGID em diretório atribui seu grupo a novos arquivos e passa SGID a novos subdiretórios.
- Um diretório com sticky bit restringe exclusão e renomeação conforme a propriedade.
soutminúsculo inclui execução;SouTmaiúsculo indica ausência de execução nessa posição.- A herança de grupo por SGID e a permissão de escrita do novo arquivo são coisas separadas.
- O GNU chmod preserva SGID em diretórios quando um modo de três dígitos é usado.
- O sticky bit protege entradas contra remoção, não conteúdo gravável contra edição.
5.3 Diagnosticar problemas de permissão e aplicar o princípio do menor privilégio
Um erro “Permission denied” identifica uma operação que falhou, não necessariamente um modo de arquivo incorreto. O bloqueio pode estar nos grupos da sua sessão, em um diretório pai, no próprio arquivo ou na propriedade deixada por um comando com privilégios elevados.
Examine identidade, caminho, classe e operação
Comece com id sem argumentos na sessão afetada. Se um grupo foi adicionado recentemente, compare a lista ativa com id username, que consulta o banco de dados. Um novo login pode carregar a nova participação.
Em seguida, examine todo o caminho:
namei -l /srv/reports/q3.txt
namei -l informa proprietários, grupos e modos ao longo do caminho. Você também pode examinar cada diretório com ls -ld. Em cada objeto, selecione a primeira classe correspondente: proprietário, caso contrário grupo, caso contrário outros. Depois pergunte do que a operação tentada precisa. A leitura exige r no arquivo e permissão de busca em todos os diretórios pais. Criar, remover ou renomear uma entrada exige w e x em seu diretório, com restrições do sticky bit onde ele estiver presente.
Encontre a primeira operação bloqueada
Kenji pertence a finance e tenta executar cat /srv/reports/q3.txt. Os objetos relevantes são:
drwxr-xr-x root root /srv
drwxr-x--- root finance /srv/reports
-rw------- maria finance /srv/reports/q3.txt
Kenji pode atravessar /srv usando a execução dos outros. Em /srv/reports, sua participação em finance seleciona o r-x do grupo, então ele também pode atravessá-lo. Em q3.txt, ele não é Maria, e a trinca de finance é ---. A permissão ausente é a leitura do arquivo para o grupo.
Se integrantes de finance devem ler o relatório, Maria ou root pode executar chmod g+r /srv/reports/q3.txt. O modo resultante é 640. Ele fornece a permissão ausente sem dar escrita ao grupo nem abrir o relatório aos outros. Um administrador pode testar com sudo -u kenji cat /srv/reports/q3.txt, executando o comando como Kenji em vez de testá-lo como root.
Escolha a menor correção
Uma correção adequada pode ser adicionar uma participação em equipe, definir leitura para o grupo, restabelecer o proprietário de um projeto ou adicionar busca no diretório para a classe pretendida. chmod -R 777 concede a todas as contas locais acesso de escrita em toda a árvore e torna arquivos comuns executáveis. Ele também não consegue resolver todas as causas de falha de acesso.
Verifique causas comuns antes de editar uma árvore grande: nova participação ainda inativa, x ausente em um diretório pai, arquivos de trabalho pertencentes a root criados com sudo e novos arquivos cuja umask removeu o acesso necessário à equipe. Unidades FAT32 e exFAT não armazenam UIDs, GIDs e modos nativos do Linux; as opções de montagem fornecem esses valores, então chmod ou chown por arquivo pode falhar ou não ter efeito.
Mantenha dados privados protegidos
Uma chave privada SSH como ~/.ssh/id_ed25519 normalmente deve ter modo 600; seu diretório .ssh geralmente tem 700. O SSH verifica a proteção da chave privada e pode rejeitar uma chave excessivamente acessível. /etc/shadow continua inacessível a usuários comuns. Administradores com sudo completo podem contornar a privacidade comum dos arquivos, portanto mantenha esse grupo pequeno e conceda ações específicas quando a administração completa for desnecessária.
Principais conclusões
- Verifique a identidade e os grupos ativos da sessão afetada antes de alterar modos de arquivo.
- Examine todos os diretórios pais, além do arquivo de destino.
- Relacione a permissão à operação e use a menor alteração necessária.
- Teste o resultado como o usuário afetado; um teste como root pode ocultar uma permissão comum ausente.
- Padrões de criação e sistemas de arquivos que não são do Linux podem explicar modos inesperados.
Exercícios resolvidos de Usuários, grupos e permissões no Linux
1Consultar uma identidade e seus registros de conta
13 passos
- 1IntroduçãoComece pela identidade que realiza a tarefa
Uma solicitação de arquivo vem de um processo em execução, e esse processo carrega uma identidade de usuário e grupos. Você consultará a identidade de Alice, relacionando-a a registros de conta e distinguindo sessões atuais de dados de conta armazenados. Essas são as informações necessárias antes de decidir qual acesso os comandos dela recebem.
- 2ExplicaçãoUm número dá poder a root
O Linux usa um UID, não a escrita de um nome, para identificar um usuário. UID 0 é root; contas comuns geralmente começam em 1000. Serviços normalmente são executados em contas de sistema limitadas com um shell nologin. Assim, um serviço não precisa do login de uma pessoa nem de permissões completas de root para realizar seu trabalho.
- 3ExemploLeia a saída de id de Alice
Alice executa
ide vê:uid=1001(alice) gid=1001(alice) groups=1001(alice),27(sudo),1005(developers)O UID identifica Alice. O GID é seu grupo primário. A lista final inclui seu grupo primário, além de sudo e developers. UID 1001 não é root, embora o grupo sudo possa autorizar determinados comandos com privilégios elevados.
- 4DesafioUm nome poderoso ou um UID poderoso?
Uma conta chamada
maintainertem UID 0. Outra chamadaroot-helpertem UID 1030. Qual identidade tem poder de root sem usar sudo e por quê?---reveal---
Maintainer tem poder de root porque seu UID é 0. O nome root-helper não transforma o UID 1030 na identidade de superusuário. Examine o número, não um nome sugestivo ou um prompt personalizado.
- 5ConexãoIdentidade e histórico de login respondem a perguntas diferentes
whoamiidentifica o usuário atual;idacrescenta identificadores e grupos.wholista sessões de login atuais, ewacrescenta atividade, tempo de funcionamento e carga.lastinforma logins e reinicializações anteriores registrados. Em sistemas que usam wtmpdb, como o Debian 13, usewtmpdb lastpara consultar esse histórico. Uma entrada do histórico não é a lista de grupos do seu shell atual. - 6ExplicaçãoCompartilhe por meio de um grupo adicional
O grupo primário de Alice é seu grupo privado, também chamado alice. Developers é um grupo suplementar adicional. Um processo pode usar tanto a participação primária quanto as suplementares para acesso de grupo. Atribuir um relatório a developers pode, portanto, compartilhá-lo com Alice e Bob, enquanto atribuí-lo ao grupo privado de Alice normalmente não o compartilha com colegas.
- 7ExemploAssocie um relatório a developers
O relatório pertence a
bob:developers, com modorw-r-----. Alice não é sua proprietária, mas sua participação em developers seleciona or--do grupo: ela pode ler, não editar. Chen está fora de developers e recebe o---dos outros. Definir o grupo proprietário identifica a equipe; a trinca do meio determina as ações permitidas à equipe. - 8DesafioUma lista vazia com um integrante
Um registro de conta informa que o GID primário de Robin é 1440. A consulta do grupo retorna
review:x:1440:. Robin pertence a review apesar do último campo vazio?---reveal---
Sim. O GID primário de Robin corresponde a review. O último campo do grupo lista integrantes suplementares, portanto não precisa incluir integrantes primários. Uma consulta completa do usuário com
id robinverifica os dois tipos de participação. - 9ExemploDivida a linha pública da conta
Leia
alice:x:1001:1001:Alice Moreau:/home/alice:/bin/bashcomo sete campos separados por dois-pontos. Alice é o nome, x aponta para dados protegidos de senha, 1001 é o UID e o próximo 1001 é o GID primário. Os campos restantes informam um comentário, o diretório pessoal e o shell de login. O registro público passwd não contém a senha de Alice em formato legível. - 10ExplicaçãoUm hash é verificado, não descriptografado
O arquivo shadow armazena hashes de senha e campos de validade com acesso restrito. No login, o hash da senha é calculado com o método e o sal armazenados e depois comparado ao resultado salvo. Sais diferentes permitem que senhas iguais tenham hashes diferentes. Um
!inicial bloqueia a autenticação por senha, mas não remove todos os outros métodos de login. - 11ExemploLeia os campos de validade
Em
alice:$y$j9T$...:20514:0:90:7:::, o dia 20514 é 2 de março de 2026. A idade mínima 0 permite outra alteração imediatamente. A idade máxima 90 coloca a expiração em 31 de maio, e o aviso 7 começa em 24 de maio. Os campos vazios de inatividade e expiração da conta não definem nenhum desses limites. Todos os valores de data usam dias desde 1º de janeiro de 1970, UTC. - 12DesafioSepare o bloqueio de senha da identidade
Uma consulta mostra uma conta com UID 1090, grupo primário 1090 e um hash no shadow precedido por
!. Um colega diz: “A conta desapareceu, então seu grupo não importa mais”. O que está errado?---reveal---
A conta ainda existe com seu UID e grupo. O prefixo bloqueia sua senha; ele não exclui sua identidade. Seus arquivos e suas participações em grupos ainda têm significado, e um método de login sem senha ainda pode estar disponível.
- 13RecapitulaçãoEscolha as informações certas
Use a identidade do processo ativo para entender quem está agindo. A participação em grupos conecta essa identidade a permissões compartilhadas. Os registros passwd e group descrevem relações públicas de contas; shadow contém dados protegidos de senha e validade. Consulte com
getente use comandos de gerenciamento de contas quando os registros precisarem ser alterados.
2Elevar privilégios para uma ação e ler sua política
13 passos
Salve esta aula para seguir cada Lição Interativa passo a passo.
- 1IntroduçãoMantenha o foco na ação administrativa
- 2ExplicaçãoTroque de shell ou execute um comando
- 3DicaVerifique permissões e autenticação temporária
- 4DesafioDe quem é a senha para outro usuário de destino?
- 5ExemploAcompanhe a tentativa malsucedida de acréscimo
- 6ExemploDê privilégios elevados ao programa que escreve
- 7DesafioPreserve o conteúdo antigo
- 8ExplicaçãoLeia uma autorização completa
- 9DicaEdite uma regra com proteção de sintaxe
- 10DesafioPermissão para reiniciar não é permissão para parar
- 11Ideia-chaveUm script pode ampliar uma regra restrita
- 12DesafioVerifique a política e o processo
- 13RecapitulaçãoMantenha o escopo tão restrito quanto a tarefa
3Criar uma conta e fazer o acesso da equipe funcionar
15 passos
Salve esta aula para seguir cada Lição Interativa passo a passo.
- 1IntroduçãoConfigure uma identidade de trabalho utilizável
- 2ExemploCrie a conta explicitamente
- 3ExplicaçãoComplete a configuração da senha e do diretório pessoal
- 4DicaVerifique o resultado em três lugares
- 5DesafioUm caminho de diretório pessoal sem o diretório
- 6ExplicaçãoEscolha uma alteração de senha ou de conta
- 7ExemploDefina a validade sem confundir as datas
- 8DesafioMantenha as participações existentes em equipes
- 9ExplicaçãoAdicione e remova membros de grupos
- 10ExemploCompare o banco de dados e a sessão
- 11DesafioCorrija a sessão antes dos arquivos
- 12ConexãoDê à equipe um local compartilhado para criação
- 13Ideia-chaveA exclusão deixa a propriedade numérica
- 14DesafioUma saída tem vários efeitos distintos
- 15RecapitulaçãoVerifique os registros e a sessão de trabalho
4Ler um modo e prever uma operação
17 passos
Salve esta aula para seguir cada Lição Interativa passo a passo.
- 1IntroduçãoPergunte o que o usuário está tentando fazer
- 2ExemploDivida a listagem em campos
- 3ExplicaçãoSelecione a primeira trinca correspondente
- 4DesafioO grupo não prevalece sobre o proprietário
- 5ExplicaçãoUse o significado de x para cada objeto
- 6ExemploPercorra um caminho bloqueado
- 7DesafioUm arquivo somente de leitura em uma pasta gravável
- 8Ideia-chaveUm interpretador lê um script
- 9ExplicaçãoAdicione, remova ou defina uma classe
- 10ExemploConverta 750 uma classe por vez
- 11DicaMantenha a busca nos diretórios de uma árvore
- 12DesafioAdicione uma permissão sem substituir as demais
- 13ExplicaçãoAtribua as identidades corretas
- 14ExemploCorrija o proprietário de uma pasta de trabalho
- 15DesafioMover ou criar uma nova cópia?
- 16DesafioEscolha uma correção de modo ou de proprietário
- 17RecapitulaçãoRelacione a identidade, o objeto e a ação
5Controlar novos modos e investigar uma solicitação negada
19 passos
Salve esta aula para seguir cada Lição Interativa passo a passo.
- 1IntroduçãoExplique o modo antes de alterá-lo
- 2ExplicaçãoComece pelo que o programa solicita
- 3ExemploAplique a máscara 027 a um arquivo
- 4ExemploTeste o atalho da subtração
- 5DesafioPreveja dois resultados de criação
- 6DicaSepare padrões futuros de arquivos existentes
- 7ExplicaçãoReconheça bits especiais na exibição
- 8ExemploUm programa recebe poder adicional controlado
- 9ExemploAcompanhe um novo arquivo na pasta de equipe
- 10ExplicaçãoProteja nomes em um diretório compartilhado gravável
- 11DesafioEditar sem permissão para excluir
- 12DicaLimpe um bit especial explicitamente
- 13ExplicaçãoFaça quatro perguntas de diagnóstico
- 14ExemploVerifique primeiro o caminho de Kenji
- 15ExemploLocalize a permissão ausente
- 16DesafioPare no diretório pai bloqueado
- 17ConexãoVerifique a causa de resultados inesperados
- 18DesafioUm novo padrão e um arquivo existente exigem correções diferentes
- 19RecapitulaçãoMantenha distintos os mecanismos de permissão
Questões de Usuários, grupos e permissões no Linux
Conjunto 1: Gerenciar contas e arquivos compartilhados10 Questões de Prática
Questão 1 de 10
rwxr-----?Mostrar respostaOcultar resposta
Questão 2 de 10
Mostrar respostaOcultar resposta
Questão 3 de 10
sudo -u postgres psql?Mostrar respostaOcultar resposta
-u altera o usuário de destino do comando, não a senha que é verificada. Pedir a senha de postgres descreve o comportamento usual do su.Questão 4 de 10
sudo e editors. Um administrador executa usermod -G reviewers mei. Qual será sua lista suplementar em um novo login?Mostrar respostaOcultar resposta
-a, usermod trata a lista -G fornecida como a lista suplementar completa. Portanto, Mei perde as duas participações suplementares anteriores. Manter os grupos antigos exigiria o modo de acréscimo, -aG; o comando não dá proteção especial à participação em sudo.Questão 5 de 10
/data/zoe, criado agora, e de Bash como shell. Qual comando solicita as três coisas?Mostrar respostaOcultar resposta
-d seleciona o caminho do diretório pessoal, -m o cria e -s define o shell de login. Um comando apenas com -d registra um caminho, mas não solicita explicitamente a criação do diretório. A opção de comentário -c não pode substituir a opção de caminho do diretório pessoal nem a de shell.Questão 6 de 10
audit para records sem alterar seu GID. O que acontece com os arquivos atribuídos a esse GID?Mostrar respostaOcultar resposta
records após a renomeação. A perda do grupo proprietário é uma preocupação quando o GID numérico muda sem atualizar os arquivos, não quando apenas o nome muda.Questão 7 de 10
brief.txt e pertence a writers, mas não a sales. Qual alteração de grupo ela pode fazer sem sudo?Mostrar respostaOcultar resposta
Questão 8 de 10
/srv/art está como root:artists com modo 2770. Inez pertence a artists, tem grupo primário inez e umask 027. Ela cria um arquivo solicitando 666. Qual grupo e modo comum resultam?Mostrar respostaOcultar resposta
Questão 9 de 10
%ops ALL=(root) /usr/bin/systemctl reload nginx. Qual ação ela autoriza?Mostrar respostaOcultar resposta
Questão 10 de 10
lab. /srv tem 755, /srv/lab está como root:lab com modo 740 e seu arquivo está como ana:lab com modo 640. Todos os diretórios pais anteriores permitem busca. Qual é a menor alteração de classe que permite a Niko ler o arquivo?Mostrar respostaOcultar resposta
/srv/lab é r--, então ele não pode fazer buscas nesse diretório. Adicionar execução ao grupo fornece a permissão ausente no caminho. Adicionar leitura do arquivo para os outros não ajudaria porque o diretório ainda bloqueia o caminho e Niko usa a classe do grupo.Conjunto 2: Identificar contas e controlar o acesso10 Questões de Prática
Salve esta aula para ver todas as respostas e praticar cada conjunto.
Questão 1 de 10
rescue tem UID 0. Qual poder administrativo essa identidade tem?Mostrar respostaOcultar resposta
Salve esta aula para ver esta resposta.
Questão 2 de 10
design:x:1420:. O último campo vazio significa que a conta não pertence a design?Mostrar respostaOcultar resposta
Salve esta aula para ver esta resposta.
Questão 3 de 10
nora:x:1042:1042:Nora:/home/nora:/bin/bash, o que significa x?Mostrar respostaOcultar resposta
Salve esta aula para ver esta resposta.
Questão 4 de 10
Mostrar respostaOcultar resposta
Salve esta aula para ver esta resposta.
Questão 5 de 10
sudo echo "ready" >> /etc/team-status pode falhar quando somente root pode escrever no arquivo?Mostrar respostaOcultar resposta
Salve esta aula para ver esta resposta.
Questão 6 de 10
Mostrar respostaOcultar resposta
Salve esta aula para ver esta resposta.
Questão 7 de 10
Mostrar respostaOcultar resposta
Salve esta aula para ver esta resposta.
Questão 8 de 10
id lena inclui media, mas id sem argumentos no shell antigo de Lena não inclui. O que Lena deve fazer antes de tentar novamente o acesso de grupo?Mostrar respostaOcultar resposta
Salve esta aula para ver esta resposta.
Questão 9 de 10
004 e pertence ao grupo proprietário. Qual classe de permissão comum controla sua tentativa de leitura?Mostrar respostaOcultar resposta
Salve esta aula para ver esta resposta.
Questão 10 de 10
docs. /srv está como root:root com modo 755, /srv/notes está como root:docs com modo 750 e a.txt dentro dele está como maya:docs com modo 440. Tariq pode lê-lo e excluí-lo usando permissões comuns?Mostrar respostaOcultar resposta
Salve esta aula para ver esta resposta.
Conjunto 3: Prever modos e acesso a diretórios10 Questões de Prática
Salve esta aula para ver todas as respostas e praticar cada conjunto.
Questão 1 de 10
check.sh, mantendo os outros bits?Mostrar respostaOcultar resposta
Salve esta aula para ver esta resposta.
Questão 2 de 10
/srv/box. Ela conhece o nome exato de um arquivo, e esse arquivo lhe concede leitura. O que ela pode fazer?Mostrar respostaOcultar resposta
Salve esta aula para ver esta resposta.
Questão 3 de 10
Mostrar respostaOcultar resposta
Salve esta aula para ver esta resposta.
Questão 4 de 10
umask 077?Mostrar respostaOcultar resposta
Salve esta aula para ver esta resposta.
Questão 5 de 10
drwxr-S--- indica sobre os bits SGID e de execução do grupo?Mostrar respostaOcultar resposta
Salve esta aula para ver esta resposta.
Questão 6 de 10
ben:ben é movido para uma pasta SGID de equipe no mesmo sistema de arquivos. Qual proprietário e grupo ele mantém?Mostrar respostaOcultar resposta
Salve esta aula para ver esta resposta.
Questão 7 de 10
/srv/drop está como root:shared com modo 3770. Dev e Eva são integrantes ativos de shared. Eva cria um arquivo solicitando 666 com umask 002. Dev pode editar e excluir o arquivo dela pelas permissões comuns?Mostrar respostaOcultar resposta
Salve esta aula para ver esta resposta.
Questão 8 de 10
chmod -R u=rwX,g=rX,o= tree/ produz?Mostrar respostaOcultar resposta
Salve esta aula para ver esta resposta.
Questão 9 de 10
root:review com modo 705. Sam pertence a review e não é root. Quais permissões de diretório Sam recebe das classes comuns?Mostrar respostaOcultar resposta
Salve esta aula para ver esta resposta.
Questão 10 de 10
x.txt, mas não pode renomeá-lo dentro de um diretório root:team com modo 1750; Oli pertence a team e é proprietário de x.txt. Qual é a menor alteração de permissão que permite a renomeação mantendo o sticky bit?Mostrar respostaOcultar resposta
Salve esta aula para ver esta resposta.
Conjunto 4: Escolher alterações administrativas seguras10 Questões de Prática
Salve esta aula para ver todas as respostas e praticar cada conjunto.
Questão 1 de 10
Mostrar respostaOcultar resposta
Salve esta aula para ver esta resposta.
Questão 2 de 10
/etc/sudoers.d/, mas a regra válida em release.conf não é aplicada. Qual alteração no nome permite que esse arquivo de regra seja lido?Mostrar respostaOcultar resposta
Salve esta aula para ver esta resposta.
Questão 3 de 10
Mostrar respostaOcultar resposta
Salve esta aula para ver esta resposta.
Questão 4 de 10
draft.txt para authors?Mostrar respostaOcultar resposta
Salve esta aula para ver esta resposta.
Questão 5 de 10
Mostrar respostaOcultar resposta
Salve esta aula para ver esta resposta.
Questão 6 de 10
pat com UID 1088 é excluído, deixando /data/archive pertencente a 1088. Uma nova conta recebe o UID 1088. O que explica seu acesso a esse arquivo como proprietária?Mostrar respostaOcultar resposta
Salve esta aula para ver esta resposta.
Questão 7 de 10
memo em /srv/review. O diretório está como root:review com 2750 e memo está como jo:review com 640; Rae pertence a review. Rae precisa apenas alterar o conteúdo no próprio arquivo. Qual é a menor correção que atende a essa necessidade?Mostrar respostaOcultar resposta
Salve esta aula para ver esta resposta.
Questão 8 de 10
Mostrar respostaOcultar resposta
Salve esta aula para ver esta resposta.
Questão 9 de 10
chmod 750 team/ e depois cria um subdiretório dentro dele. Qual comportamento dos bits especiais deve esperar?Mostrar respostaOcultar resposta
Salve esta aula para ver esta resposta.
Questão 10 de 10
research ainda é o grupo primário de Kim. Por que o groupdel research comum recusa a exclusão, mesmo após Kim ser removido da lista de integrantes suplementares?Mostrar respostaOcultar resposta
Salve esta aula para ver esta resposta.
Conjunto 5: Investigar o acesso por usuários e caminhos10 Questões de Prática
Salve esta aula para ver todas as respostas e praticar cada conjunto.
Questão 1 de 10
Mostrar respostaOcultar resposta
Salve esta aula para ver esta resposta.
Questão 2 de 10
/srv tem 755; /srv/qa está como root:qa com modo 2710, e result dentro dele está como lee:qa com modo 640. Todos os diretórios pais anteriores permitem busca. Uma pode listar nomes, ler o arquivo conhecido e criar um novo arquivo?Mostrar respostaOcultar resposta
Salve esta aula para ver esta resposta.
Questão 3 de 10
Mostrar respostaOcultar resposta
Salve esta aula para ver esta resposta.
Questão 4 de 10
/var/log/team-run. Qual comando eleva os privilégios do processo que escreve e preserva o conteúdo anterior?Mostrar respostaOcultar resposta
Salve esta aula para ver esta resposta.
Questão 5 de 10
cp sem opções. Quem é proprietário do novo arquivo de destino?Mostrar respostaOcultar resposta
Salve esta aula para ver esta resposta.
Questão 6 de 10
edit. /srv/edit está como root:edit com 2770. Noor pode criar arquivos ali, mas um arquivo existente kai:edit tem 640 e ela não pode acrescentar conteúdo. Quem cria arquivos usa programas que solicitam modo 666. Qual alteração na criação futura de arquivos comuns permite que colegas acrescentem conteúdo sem abrir os arquivos aos outros?Mostrar respostaOcultar resposta
Salve esta aula para ver esta resposta.
Questão 7 de 10
Mostrar respostaOcultar resposta
Salve esta aula para ver esta resposta.
Questão 8 de 10
drwxrwx---, proprietário teo, grupo build. Teo também pertence a build. Qual classe é usada para o acesso comum de Teo?Mostrar respostaOcultar resposta
Salve esta aula para ver esta resposta.
Questão 9 de 10
mira:team com modo 1770. Ren pertence a team; Sol é proprietário de uma entrada ali. Quem entre Mira e Ren pode excluir a entrada de Sol segundo os bits comuns e a regra do sticky bit?Mostrar respostaOcultar resposta
Salve esta aula para ver esta resposta.
Questão 10 de 10
NOPASSWD: /usr/bin/systemctl restart nginx a ops, depois uma regra correspondente posterior usa PASSWD: para o mesmo comando. Sem um registro de autenticação válido, o que acontece nessa ação permitida?Mostrar respostaOcultar resposta
Salve esta aula para ver esta resposta.
Travou em uma questão sua? Ajuda com Tarefas
Termos-Chave
A
adduser
adduser solicita dados da conta e cria o diretório pessoal do novo usuário durante a configuração.Alteração recursiva
-R do comando.Arquivo group
/etc/group armazena nomes de grupos, marcadores de senha, GIDs e listas de nomes de integrantes suplementares.Arquivo órfão
Arquivo passwd
/etc/passwd, que armazena nomes, identificadores, caminhos de diretórios pessoais, comentários e shells de login./home.Arquivo shadow
/etc/shadow que armazena hashes de senhas locais e campos de validade de contas.B
Bit de restrição de exclusão (sticky bit)
/tmp permite que usuários criem arquivos temporários sem permitir que removam as entradas uns dos outros.Bloqueio de senha
! antes de seu hash.C
Campo GECOS
priya, o campo GECOS contém “Priya Shah” enquanto o nome de login continua sendo o mais curto priya.chage
chage -l lea para consultar as datas antes de alterar as configurações de validade da conta.chgrp
chgrp editors draft.txt em seu próprio arquivo após entrar no grupo editors.chmod
chmod g+w draft.txt para permitir que o grupo proprietário de seu arquivo altere o conteúdo do documento.chown
chown lea:editors draft.txt para atribuir tanto o proprietário quanto o grupo do arquivo.Classe do grupo
Classe do proprietário
Classe dos outros
--- em um relatório com modo 640.Conta de sistema
www-data permite que um serviço web seja executado sem usar a conta comum de uma pessoa.Conta de usuário
D
Dígito de permissões especiais
Diretório de modelos
/etc/skel..bash_aliases ao diretório de modelos para contas criadas posteriormente.Diretório pessoal
/home./data/lea ainda precisa ser criado se não existir.E
Entrada de diretório
Entrada Defaults
timestamp_timeout=10 define um intervalo de autenticação de dez minutos.Especificação de identidade de execução (runas)
(root) restringe uma ação de manutenção à execução sob a identidade de root.Expiração da conta
Expiração da senha
passwd -e provoca a expiração da senha para que um usuário substitua uma senha temporária recebida.G
gpasswd
gpasswd -a lea editors adiciona Lea sem substituir os outros integrantes suplementares do grupo editors.groupadd
groupadd, o administrador confirma o novo grupo de equipe com getent group.groupmod
groupmod mantém o GID, então os arquivos continuam associados ao grupo renomeado.Grupo
editors torna sua trinca de permissões de grupo útil para essa equipe.Grupo primário
mina, um novo arquivo normalmente começa com esse grupo fora de uma pasta SGID.Grupo privado de usuário
Grupo suplementar
design permite que um usuário use as permissões de design em arquivos compartilhados.Grupos ativos
id sem argumentos mostra os grupos ativos no shell antigo de um usuário antes de ele iniciar uma nova sessão de login.H
Hash de senha
Herança de grupo
editors, a herança de grupo faz um novo relatório pertencer a editors, mas seu próprio modo decide se editors pode escrever nele.I
Identificação numérica do proprietário e do grupo
Identificador de grupo (GID)
Identificador de usuário (UID)
uid=1051(ava) identifica Ava mesmo que o nome de sua conta seja alterado depois.Identificador efetivo de usuário
Indicador de lista de controle de acesso (ACL)
-rw-r-----+ tem um indicador de ACL além das nove posições comuns de permissão.Interpretador
task.sh por meio de bash task.sh mesmo quando o script não tem bit de execução.M
Marcador NOPASSWD
Máscara de criação de arquivos (umask)
Máscara herdada
Modo de permissões solicitado na criação
Modo octal
rwx, o grupo recebe r-x e os outros não recebem permissões.Modo simbólico
g+w para adicionar escrita ao grupo.go-w remove a escrita do grupo e dos outros, mantendo suas permissões restantes.Movimentação dentro do mesmo sistema de arquivos
N
namei
-l mostra informações de proprietário, grupo e permissões dos componentes ao longo de um caminho de arquivo.namei -l para encontrar um diretório pai que bloqueia o acesso a um arquivo legível.newgrp
newgrp editors e verifica a identidade do novo shell com id.O
Opções de montagem
P
Período de inatividade da senha
Permissão de busca em diretório
Permissão de escrita
Permissão de execução
Permissão de execução condicional
X maiúsculo do chmod, que seleciona execução para diretórios e arquivos que já têm um bit de execução.Permissão de leitura
Política do sudoers
Princípio do menor privilégio
Processo
R
Redirecionamento
>>.sudo echo iniciar porque o shell comum abre o arquivo protegido.Registro de data e hora da autenticação
sudo -k.Remoção de bits
Responsabilização
S
Sal criptográfico
SGID
Shell de bloqueio de login (nologin)
Shell de login
sudo -i inicia um shell de login de root, então comandos posteriores nesse shell são executados sob a identidade de root.su
su - bob para iniciar o ambiente de login de Bob e depois digita exit para voltar ao seu próprio shell.sudo
sudo para reiniciar um serviço e depois edita seus próprios arquivos de projeto sem privilégios elevados.SUID
Superusuário (root)
T
Trinca de permissões
r--, então seus integrantes podem ler, mas não editar o arquivo.U
useradd
useradd com -m e -s para criar um diretório pessoal e selecionar um shell de login.usermod
-a a usermod -G preserva participações suplementares anteriores ao acrescentar uma nova.V
visudo
visudo em um arquivo de política de equipe para detectar um erro de digitação antes de salvá-lo.- 1Linux e código aberto
- 2Linha de comando do Linux
- 3Pipes e redirecionamento no Linux
- 4Scripts de shell
- 5Usuários, grupos e permissões no Linux
- 6Processos, pacotes e serviços no Linux
- 7Sistemas de arquivos e redes no Linux
Sobre esta aula
Crie seus próprios Materiais de Estudo
Transforme suas anotações, slides e documentos em Guias de Estudo, Questões de Prática, Flashcards e mais 6 ferramentas.