Primeiras aulas do curso Certificação Linux LPI Essentials parte 12: Security and File Permissions

Certificação Linux LPI Essentials parte 12: Security and File Permissions

Criação de usuários - Adicionando usuários

Tudo bem, pessoal? Nesse próximo curso falaremos, na parte de certificação do LPI, sobre segurança e permissão de acesso a arquivos, acesso, escrita, execução, permissão de arquivos.

Começaremos falando sobre segurança básica, diversos usuários, que tipo de usuários temos, como gerenciar esses usuários.

Passaremos e falaremos também como criar usuários e grupos. Falaremos também sobre como gerenciar a permissão desses arquivos e quem é dono desses arquivos que temos. Por fim, falaremos um pouco sobre alguns arquivos e diretórios especiais. É sobre isso que falaremos nesse curso. Vamos lá?

Para começar, falaremos agora sobre os usuários. A primeira coisa que temos é: eu estou logado com o usuário Guilherme que foi criado durante a instalação do meu Ubuntu, lembra cada uma das distribuições permitiu que criássemos um usuário inicial, não necessariamente seria obrigatório que criássemos um usuário, talvez ela tivesse somente um usuário, aquele usuário raiz, o root.

Que é um usuário especial. Por que o root é um usuário especial? Porque ele é o usuário 0, cuidado, não é o usuário 1. Ele é o usuário 0, ele é o usuário que o ID do usuário, uid 0.

Por quê? Porque ele é a raiz, ele é a base, ele é o usuário que tem acesso a tudo do nosso sistema de arquivos, se temos um usuário com usuário root, ele tem acesso a tudo, por isso é extremamente perigoso ficar acessando ele no dia a dia, porque se sem querer eu executo o comando rm -fr /, ele começa a tentar apagar tudo da raiz, se eu estiver logado com o usuário root o que acontece? Ele começa a apagar tudo desde a raiz.

Agora se eu estou com o usuário Guilherme e eu tento apagar o diretório /bin, o que acontece? Não, não pode, você não pode, Guilherme, você não é um usuário que tem acesso a esse diretório.

Percebeu a importância de ter usuários e um usuário administrador principal que tem acesso a tudo? E na prática, no dia a dia evitarmos usar esse cara o máximo possível, tentaremos sempre usar os nossos usuários. Muito importante por questões de segurança.

Temos os usuários padrão, os usuários que foram criados para o nosso dia a dia, já vimos também que temos o usuário root e já vimos no arquivo cat/etc/passwd.

Que tem diversos outros usuários que foram criados para o sistema trabalhar no dia a dia, por exemplo, se eu instalo uma MySQL em um banco de dados, é capaz de do meu MySQL criar um usuário chamado MySQL que é usado para executar o MySQL. Por quê? Porque assim ele isola o acesso ao banco de dados somente ao usuário MySQL.

Se você quiser acessar os dados do seu MySQL, você vai ter que se conectar ao banco de dados MySQL, você não vai conseguir fazer um ls no arquivo do MySQL, ou fazer um cat no arquivo do MySQL, o ls talvez você até consiga, agora o cat, ver o conteúdo lá de dentro do seu banco, como se o cat fosse ver em arquivo de texto, mas é binário.

Como se o cat fosse ver ele, não vai conseguir. Por quê? Porque está no usuário do MySQL.

A mesma coisa em diversos outros programas que são executados, diversos programas do Linux são baseados em ter um usuário específico para controlar o acesso aos arquivos deste programa. O banco de dados é um bom exemplo disso.

Vimos que temos diversos outros usuários, essa é a importância do admin, é claro que com isso também se segura um pouco mais, se eu instalar algum vírus sem querer na minha máquina, com o meu usuário, esse vírus só vai ter acesso ao que o meu usuário tem acesso, e não ao que o usuário root tem acesso.

Claro que de tempos em tempos existem bugs que aparecem em todos os sistemas operacionais e alguns vírus podem se beneficiar disso para causar mais estrago na nossa máquina.

Vimos três tipos de usuário, o usuário que sou eu, você e outro usuário que se loga aqui - Guilherme, um usuário humano -, vimos o root que é o usuário raiz principal do nosso sistema, perigoso usar ele no nosso dia a dia.

E vimos os usuários de sistema, que não são usuários padrões que é um ser humano, não é um ser humano que está acessando essa máquina, ele é simplesmente um programa que está sendo executado por dentro, como se fosse através desse usuário.

Para identificar todos esses usuários eu tenho um nome dos meus usuários, por exemplo, o usuário, como era mesmo? Usuário Guilherme, tem o usuário saned, tem o usuário pulse, o usuário root, etc. Só que, repare que para o sistema em si, o nome a palavra não é o que mais importa, o que mais importa é o ID do usuário, cada um desses usuários tem um ID de verdade, cada um desses caras tem um ID.

E a sintaxe do arquivo cat /etc/passwd é o nome do usuário, o usuário para logar, a senha, está vindo um x porque estamos usando o arquivo shadow para ter as senhas. Dá para configurar senhas de diversos tipos de maneiras, dá para avançar mais, não é o foco desse curso, da certificação nesse instante.

E depois temos o ID do usuário. O ID do usuário Guilherme é 1000. O ID do usuário syslog é 104. O ID do usuário avahi é 107. Cada usuário tem um ID diferente, tem um UID diferente.

Como eu sei o meu ID? Eu posso dar um cat nesse arquivo cat /etc/passwd, ou eu posso só executar o comando id.

Ele fala diversas coisas, a primeira delas, falaremos das outras, é o meu uid=1000, esse número é importante, o número é importante para nós, o número 1000 é importante. Não somente a palavra "guilherme" porque por trás dos panos está sendo usando o número 1000. O "gid" é o grupo e outras coisas que falaremos daqui a pouco.

Repara que se o meu usuário tem um uid=1000, e se eu quiser saber o ID do usuário root? id root, "Enter". Ele me dá o uid root que é 0, lembra que eu já tinha falado que o uid root é 0? Se você tem esses IDs para identificar os usuários, é importante lembrar que é o número e não a palavra.

Eu falei que ele mostra mais informações, ele mostra um tal de gid, e os grupos, gid grupos, grupo ID, quer dizer, os usuários do meu sistema, eu tenho diversos usuários, eu tenho o Guilherme, eu tenho o MySQL, eu tenho o root, eu tenho o Paulo, o João, o Carlos, a Maria, a Ana, a Julieta, Daniela, tem um monte de usuário.

Quero agrupar esses usuários por qualquer motivo, por que motivo eu poderia querer agrupar os usuários? Por exemplo, usuários de determinada área vão ter acesso a determinados arquivos, eu tenho arquivos que são para o pessoal do financeiro acessar, não posso falar que esse arquivo é só do Cláudio, eu quero falar que esse arquivo é do financeiro, o Cláudio está no grupo do financeiro, a Ayume está no grupo do financeiro, diversas pessoas estão no grupo do financeiro.

Se diversas pessoas estão no grupo do financeiro, eles têm acesso ao que o grupo do financeiro tem acesso. Repara que além de usuários do meu sistema, eu tenho grupos para facilitar o acesso aos arquivos do meu sistema.

Se eu tenho arquivos que são do Guilherme e só o usuário Guilherme pode acessar, beleza, só o usuário Guilherme, mas eu posso criar arquivos para um grupo chamado "financeiro", eu tenho lá um extrato bancário e o extrato bancário está no grupo do financeiro, em um diretório quem tem acesso o grupo do financeiro.

Todos os usuários que estão no grupo do financeiro, dado que esse arquivo é visível para quem está no grupo do financeiro, terão acesso a esse arquivo. Faremos isso na prática.

Criação de usuários - Adicionando usuários

Vamos tentar adicionar um usuário agora? Vou chamar o comando mais básico para a criação de usuário, mais simples que eu tenho aqui, vou executar o clearpara limpar a tela.

Eu quero adicionar um usuário useradd, usuário adiciona, muito cuidado, não é adduser, é useradd, primeiro a palavra user, depois a palavra add, A-D-D.

Se eu quero depois remover, userdel. Primeiro o usuário, depois o que você quer fazer com o seu usuário. Useradd é o mais básico. Quando eu chamo o useradd. Ele me dá todas as opções que eu posso passar para o useradd.

O que eu vou chamar é useradd, por favor, eu gostaria de adicionar com as seguintes características, eu queria de adicionar um usuário, o nome é paulo, eu dou "Enter".

E ele fala, não pode, você não pode criar o usuário paulo. Por que não? Porque eu não tenho permissão para criar usuários, o usuário guilherme não é um administrador do sistema que pode criar usuários, o root pode, já vimos como executar comandos como root, você lembra?

O que fazemos para executar comandos como root? sudo, quer dizer, façam um comando como super usuário, execute um comando como super usuário, useradd paulo. Vamos tentar? "Enter". Ele está pedindo a minha senha para executar o sudo. E ele falou que está ok.

Agora que eu adicionei o meu usuário Paulo com o uid 1001, vou limpar minha tela e vou me logar com ele.

Como eu faço para me logar com o usuário Paulo? Eu chamo o programa su, por favor, troca, me loca com outro usuário, o usuário que eu quero me logar é o usuário paulo.

Ele pede a senha, que senha? Eu não configurei senha nenhuma para o Paulo, deixa eu tentar a minha senha, não funciona.

Não tem senha configurada para o Paulo, se não tem senha configurada para o Paulo, o Paulo não se loga. Lembra o arquivo em que estamos armazenando as senhas? cat /etc/shadow "Enter". Tem que fazer como super usuário sudo. No meu etc/shadow o usuário paulo tem uma exclamação.

Exclamação, por um acaso, é um caractere que nunca será gerado no algoritmo de criptografia da senha, quer dizer, você nunca vai conseguir acertar a senha do paulo, não vai conseguir, ponto final. É como se ele estivesse com a senha desativada por padrão.

Porque o useradd não coloca uma senha e os usuários no Linux não precisam de senha, vamos ver de novo sudo cat etc/shadow "Enter". Não tem senha para esse usuário, não tem como acessar esse cara. Vou executar clear.

O que eu vou fazer? Eu quero colocar uma senha para o usuário paulo, você fala "Guilherme, e agora, como você faz? Para você colocar uma senha no usuário paulo, você vai ter que trocar a senha dele. Como você faz para trocar a senha dele?"

Existe um comando que já vimos para trocar senha. O comando passwd troca a minha própria senha. O que ele pede? Ele pede a minha senha atual e pede a minha próxima senha.

Digitei errado a senha, não funciona. Vamos tentar de novo? Minha senha atual e minha nova senha. Agora eu acertei, ele trocou a minha senha. Mas o passwd troca a senha do usuário atual e eu tenho que me logar como paulo para poder trocar a senha do paulo. O que eu posso fazer?

Eu posso fazer o seguinte: o passwd permite que eu troque a senha de outra pessoa passwd paulo. Só que para eu trocar a senha do paulo, eu preciso ser super usuário sudo passwd paulo.

Agora sim, ele está pedindo a senha do usuário paulo. Repare que diferente da senha do usuário guilherme que ele pediu a minha senha atual para depois mudar a senha, a senha do usuário paulo nem existe a senha atual, e você é o super usuário, faça o que você quiser.

Super usuário pode trocar a senha das outras pessoas, você é super usuário. Percebeu o perigo do super usuário? Na prática, evite ao máximo usar no dia a dia.

Adicionei um usuário, estou configurando a senha dele, vou colocar a senha do paulo igual a minha, coloquei igual a minha senha. Se eu der uma olhada no arquivo cat /etc/passwd, eu tenho os dois usuários. E se eu der uma olhada no arquivo sudo cat etc/shadow, estou falando para vocês, eu coloquei a mesma senha para os dois. E você olha os dois aqui e fala "Poxa, Guilherme, mas esses dois caras não estão iguais". Olha aqui no final.

“D91”, “tf1”. "E você falou que colocou a mesma senha, Guilherme?". Repara, o algoritmo de criptografia de senhas do Linux pode gerar por padrão até 4096 variações baseadas na mesma senha, a mesma senha pode gerar 4096. Por quê?

Porque vai que você é super usuário da máquina, ou você consegue acesso a um arquivo shadow, e você olha e fala "Nossa, esse código é igual ao meu código". Você acabou de descobrir a senha de uma pessoa.

Não é muito simples descobrir a senha de uma pessoa. Existem diversas outras maneiras, força bruta, dicionários de palavras cruas ou dicionários de palavras traduzidas, e diversas outras variações, mas a sacada do 4096 já faz com que fique cada vez mais difícil de quebrarmos a senha das pessoas.

Não que seja extremamente difícil, se usarmos senhas simples, muito simples fica ainda simples de encontrar essas senhas. Mas a grande sacada é que aqui eu tenho a minha senha. E aqui eu tenho a senha do paulo. Tem as duas senhas.

O comando é useradd para adicionar um usuário, e comando passwd para trocar a senha do usuário atual.

Posso trocar a senha de outro usuário? Posso trocar a senha de outro usuário, para isso eu tenho que ser super usuário. Então sudo passwd.

E o que o useradd tem de opção? Se executarmos só o useradd, ele mostra diversas opções. Por exemplo, podemos configurar para ele com a opção -s. Shell, falar qual é o shell padrão que queremos que ele utilize. Podemos forçar um ID específico goela abaixo do nosso usuário.

Podemos forçar para criar o diretório, ou não criar o diretório home. Lembra o nosso padrão de home é “/home/nome de usuário”.

Conseguimos forçar o diretório padrão, temos aqui o -d, está um pouco mais para cima, -d conseguimos forçar o diretório padrão dele. -c, adicionar alguns comentários nesse nosso usuário. Conseguimos colocar diversas características para o nosso usuário com as opções do useradd.

Uma que eu acho extremamente importante para nós é a seguinte, quando criamos uma home para um usuário, era o -m para criar o diretório.

sudo useradd -m carlos, quero criar o usuário carlos, vou criar esse usuário. Criei o usuário, se eu dou um ls /home/carlos ele criou e ele colocou um arquivo lá, “examples.desktop”, de onde ele pegou isso? De onde será que ele pegou esse arquivo que ele colocou lá dentro?

Ele pega de um diretório chamado etc/skel/, vou executar ls etc/skel/. Ele copia o diretório esqueleto, skeleton, ele copia o diretório de configuração esqueleto para o diretório home do teu usuário. Quando você coloca o -m para criar a home, ele copia. Se você não coloca o -m, ls /home ele não cria o diretório paulo, ele só criou o diretório carlos porque eu coloquei a opção -m.

Como eu disse, o useradd, extremamente baixo nível, você precisa até falar com o -m que você quer esse diretório criado. Você pode também falar com outra opção, você pode falar "Eu gostaria de utilizar outro diretório sem ser o diretório /etc /skel, então man useradd. Podemos procurar o /skel

-K permite que passemos outro diretório de esqueleto, por exemplo, você tem o pessoal do financeiro que tem certos arquivos que eles devem ter no desktop deles, você cria um esqueleto, um diretório esqueleto para esses arquivos.

Você tem o pessoal do comercial que são outros arquivos, cria um diretório esqueleto com esses outros arquivos.

Você consegue ter vários esqueletos, quando você cria um usuário para certo grupo de pessoas, você pode mandar usar esses esqueleto e ele usa esse esqueleto para criar o usuário, a home desse usuário. Dessa maneira, conseguimos trabalhar com adicionar novos usuários.

Repara que como ele cria o nosso usuário, copia o diretório, basicamente é isso que ele faz, é comum que as empresas que vão trabalhar com administração de muitos usuários criem um próprio script, ou utilizem alguma outra ferramenta que use por trás dos panos o useradd.

Por quê? Porque já executa vários outros processos, por exemplo, já quero criar uma conta Gmail dele no servidor de e-mail, já quero criar um conta de usuário dele na impressora para ele ter direito a tantas cópias por semana, quero fazer diversas outras coisas. Já faz tudo isso com o nosso usuário, cria um script que faz tudo isso para o nosso usuário.

As empresas costumam fazer isso, é normal. Nós precisamos saber o useradd. Assim como temos o useradd, temos o userdel e podemos remover um usuário, não tem problema nenhum, userdel carlos. Ele vai remover, só que ele precisa ser super usuário sudo userdel carlos "Enter".

Se eu dou uma olhada agora no cat /etc/passwd. Não tem carlos lá, só tem guilherme e paulo. Mas se eu der uma olhada na ls /home.

Está lá o carlos, está lá o diretório carlos. Por quê? Porque quando eu dou um userdel, eu tenho que fazer o userdel -r carlos, remove o diretório home do usuário carlos. Tem que dar um sudo userdel -r carlos, ele removeria a home. Por que ele não conseguiu agora? Porque já não existe mais esse usuário, me dei mal agora.

O que eu vou fazer é: vou com o sudo rm -fr vou remover o diretório /home/carlos. Eu vou falar mais alguns detalhes do userdel quando formos falar sobre a permissão de arquivos.

Repara que vimos o userdel, vimos o passwd, vimos o useradd, o arquivo passwd, etc/passwd, e o arquivo etc/shadow. Vimos todos esses arquivos. Repara que no cat etc /passwd "Enter", temos mais informações.

Algumas informações do grupo, que vamos falar também. Temos também no arquivo sudo /etc/shadow "Enter" diversas configurações.

Configurações sobre a senha dos nossos usuários, por exemplo, essa senha expira de duas em duas semanas, quando ela expira em duas semanas temos que pedir para o usuário trocar a senha, quando pedimos para ele trocar, ele tem uma semana para trocar senão travamos a conta dele.

Tem diversas configurações que podemos utilizar aqui, repara que algumas dessas configurações só vão ser interpretadas pelo terminal aqui, nem sempre isso vai entrar e funcionar da maneira que você esperava.

Lembra que o shadow tem diversas configurações aqui, até podemos editar esses dois arquivos, o etc/passwd e o etc/shadow através do vi normalmente, mas é mais comum, se formos fazer isso, usar outro programa, o vipw. Ele edita o seu passwd. Tem que ser sudo vipw.

O que ele faz? Ele edita, só que repara que ele vai editar ainda com a característica de "nenhum outro usuário pode editar ao mesmo tempo", porque se dois usuários editarem ao mesmo tempo pode dar “caca”, um achando que está acontecendo uma coisa e está acontecendo outra.

Vou sair. Ele usa o vi? Depende, ele usa o editor que está na variável echo $VISUAL. Como não tem variável nenhuma, ele utiliza o nosso vi, no nosso caso. Eu posso também usar o vipw -s. Ele edita o shadow, mesma coisa.

Por que na prática não editamos o shadow e o passwd na unha? Porque se eu editar o meu passwd talvez eu queira editar o shadow também, talvez eu queira criar um diretório, talvez eu queira mudar outra coisa, se eu mudo o uid de um usuário, eu quero mudar as permissões desse usuário em vários arquivos.

Tem um monte de coisa que queremos fazer, para ficar evitando ter que fazer todas essas coisas na mão, usamos os programas que já fazem tudo isso.

Imagina, se você faz alguma “caca” nesses arquivos, a chance de isso quebrar o seu sistema é muito grande, não queremos “caca” quebrando o nosso sistema. Evitamos editar esses arquivos na unha, evita.

Já vimos alguns comandos, algumas características importantes, já vimos o passwd, já vimos o uid, já vimos o sudo, já vimos a parte do passwd, do shadow também já vimos o uid, useradd e o passwd. Veremos mais coisas daqui a pouco.

Informações sobre usuários - Os comandos who, w, last e su

Continuando agora estudando as características e o que podemos fazer com usuários do nosso sistema, vimos tanto o id. Quanto o who. E vimos que o man who tem diversas opções.

Eu mostrei para vocês o who -b que mostra também o tempo de boot, o momento que a máquina foi bootada. Além desse cara, além do who, temos o w. O que o w nos mostra? Não mostra nada, está falando que a janela é muito pequena. Se formos no man w, ele mostra quem está logado.

E o que ele está fazendo. O que queremos fazer aqui? Deixar essa janela maior para podermos ver, essa janela está pequena, na verdade, só com 66 colunas porque eu coloquei uma fonte grande, vou em "Edit > Profile Preferences" eu vou temporariamente mudar o tamanho da nossa fonte.

Vou vir no nosso “Profile” e vou voltar para a fonte original só para poder ter 80 colunas ou algo a mais. Vou dar de novo o comando w.

E o comando w me mostra o usuário guilherme com algumas das informações de antes, mas ele mostra também qual comando ele executou. O que mais? O usuário guilherme está executando o comando w.

Se eu tenho vários usuários logados executando comandos, ele mostra isso para mim. Por exemplo, vou dar um vi no blog do post . Lembra que eu tenho aqui o arquivo post do blog, desculpa, post do blog. Estou dando vi nesse arquivo.

Ele falou que esse arquivo está sendo editado, eu fechei sem editar, tudo bem, não tem problema. Vou abrir meu terminal de novo e vou dar agora um belíssimo w, ele mostra que o usuário guilherme está rodando vi post-do-blog.

Temos que tomar algum cuidado aqui, porque se eu me logar agora com o usuário paulo, vamos ver o que acontece com o usuário paulo. su paulo. Usuário paulo tem a mesma senha. Estou no usuário paulo, cd /home, ele não tem home, ponto final. E o que eu quero fazer é um w, olha, o w mostrou que o guilherme está executando vi post-do-blog.

O usuário paulo sabe o que o guilherme está executando, não só isso, ele vê o comando inteiro que o guilherme está executando, não só isso, se o guilherme for não muito espertinho e passar a senha dele escrita no comando, o usuário paulo consegue ver a senha no comando que ele acabou de executar.

Repara que pelo comando w um usuário consegue saber o que o outro usuário da própria máquina está executando, esse é o padrão do comando w. Bastante cuidado com isso. E com o comando sudo eu consegui trocar do usuário guilherme para o usuário paulo, quando eu trocar de usuário, exit deixa eu sair agora do meu usuário .

Deixa eu voltar para a fonte grande "Edit > Profile Preferences > Custom font > Close", vou voltar para a fonte 18, fiz bobagem, não deveria ter feito isso ainda "Edit > Profile Preferences > Custom fonte > Close", tirar essa nossa fonte.

Vou sair do terminal : q. Fazer as coisas bonitas, exit, agora sim, estou com um terminal só. Vou editar a fonte "Edit > Profile Preferences > Custom font > Close", colocar uma fonte grande.

Quando eu quero trocar de um usuário para outro, su e o nome do usuário, por exemplo, su paulo, eu coloco minha senha do usuário paulo, tenho que conhecer a senha do usuário paulo, estou como usuário paulo, cd /home. Tudo que eu executo agora eu sou id usuário Paulo, su e o nome do usuário, eu estou como usuário paulo.

E repara que o próprio usuário paulo, com w, não pode executar porque a fonte está pequena, mas quando eu executei, eu vi o que o guilherme estava executando, o guilherme estava executando várias coisas. Temos que saber que o w vai nos mostrar isso. E o who?

O who vai mostrar que quem está logado no nosso terminal era o usuário guilherme, duas vezes. Repara que quem está logado, quem startou um terminal foi o guilherme. O usuário paulo está logado, mas não foi ele que inicializou o nosso terminal, o who não está mostrando o nosso paulo aqui.

Vou sair, se eu dei um su, agora eu quero sair do usuário paulo exit. Já estou no guilherme de novo. Se eu quiser agora me logar de novo com o usuário paulo, su paulo "Enter > Enter", não quero colocar senha nenhuma.

[04:30]E se eu quiser me logar como usuário root? Eu posso me logar como usuário root? su root, ele vai me pedir a minha senha, a senha de root, eu vou colocar a minha própria senha , e ele não deixou.

Por quê? Porque o usuário root, por padrão, no Ubuntu vem sem senha, se eu quiser colocar uma senha no usuário root do Ubuntu, sudo passwd, quer dizer, como root executo o comando passwd no próprio root ou nada, que é o próprio usuário, no próprio root.

Eu defino uma senha, primeiro ele vai pedir a senha do guilherme, agora ele vai falar "Coloque a senha que você quer dar para o usuário root", não quero dar senha, não vou colocar senha para o meu usuário root.

Por quê? Porque é extremamente perigoso, se eu coloco uma senha para o meu usuário root, eu posso me logar e começar a fazer um monte de coisa e esquecer que eu estou logado como usuário root, e fazer uma coisa que eu não queria, su root é extremamente perigoso.

Só que o próprio sudo tem a opção -i, o sudo -i, advinha o que ele faz? Ele faz como se fosse um su, ele nos dá um shell, ele também é perigoso, o próprio sudo com a opção -i, de iterativo também é perigoso. exit para sair.

Você pode dar o su para trocar para outro usuário, esse outro usuário pode ser o root, basta que ele tenha uma senha configurada, no meu caso, eu estou usando o Ubuntu e ele não configurou senha, poderia executar e ficaria com um shell no root. Perigoso.

Ou poderia fazer um sudo -i que também é perigoso, já que eu tenho o usuário de sudo, eu posso fazer, mas também é perigoso.

Repare que vimos diversos comandos importantes, já conhecíamos o ID , vimos o who, vimos o w, aqui a coluna está muito pequena, vimos o su para trocar de usuário.

Se formos no man su, veremos que tem diversas opções no su também. Tem diversas opções. Só que também tem uma opção aqui que é um menos, um hífen.

Você está falando que você quer acessar um terminal como se você tivesse se logado, você quer um ambiente como se você tivesse se logado com esse usuário. Vamos tentar um su - paulo. Vou tentar o su – paulo, colocar a senha dele .

Ele tentou se logar como se fosse um usuário logado, ele tentou entrar na home dele, que é “/home/paulo”, está vendo? O menos já fez diferença, ele tentou mudar o diretório para “/home /paulo”, não conseguiu, jogou no diretório barra.

Ele já mudou algumas coisas só de eu colocar o hífen aqui. O hífen está falando "Me mostre o ambiente de shell como se eu tivesse me logado.

Repara que dessa maneira mesmo com o su - paulo eu não estou me logando no início como paulo, eu não estou me logando na máquina como paulo, não estou me logando via internet como paulo, ele não está aparecendo no meu who.

No meu who continuou aparecendo por padrão só o guilherme. Você pode me falar para executar agora o su - paulo, entra como paulo. Agora que você está logado como paulo, faz um su para o seu usuário root, root.

Não tem senha, lembra que não tem senha? Vamos colocar uma senha no meu root. sudo passwd root, root é opcional, passwd vai fazer do próprio usuário, como eu sou sudo, já sou root.

Senha para sudo do paulo. Não, ele não deixou, por quê? Porque nem todo usuário pode executar o sudo, somente que é um "sudoer" pode fazer um sudo.

Isso é uma configuração do sistema, não precisamos aprender isso, a configuração desse sistema do sudoers. cat /etc/sudoers. Tem que sair exit, vou ter que executar como sudo cat/ etc/sudoers.

Não precisa aprender a configurar os usuários aqui, mas dentro deste arquivo configuramos falando “Tal usuário pode fazer tal coisa, tal outro usuário pode fazer outra", esse tipo de configuração pode ser feita aqui, inclusive, por grupo, é bem legal.

Mas na prática o que ele está fazendo? O Ubuntu cria um usuário inicial que tem permissão de sudoer, esse usuário pode fazer várias coisas. Que o meu guilherme pode.

Quando eu crio outros usuários, esses usuários não tem permissão de sudoer, só se eu quiser eu vou dar isso para ele, na prova não somos cobrados isso, não nos preocupamos com o arquivo cat etc/sudoers.

Porém tem uma última coisa que eu queria mostrar para vocês ainda de um usuário único, sem pensar ainda em grupos, que é quando foi o último acesso dos meus usuários, last

Aqui ele me mostra os últimos acessos, aqui estão os últimos acessos do guilherme, quando o guilherme se logou, como ele se logou, um monte de informação.

Se eu for no man last, ele me mostra que eu suporto diversas opções também. Eu posso fazer, por exemplo, last paulo e ele me mostra quando foi a última vez que o usuário paulo se logou.

“Como assim, o guilherme pode ver informações do paulo? Como no caso do nosso w e do nosso who? Um usuário pode ver coisas do outro?”

Vamos lá, vou executar su paulo, vou trocar pelo usuário paulo e vou executar o comando last guilherme, e eu fico sabendo quando foram as últimas vezes e como foram as últimas vezes, até mesmo o IP de onde o guilherme se logou.

Razoavelmente perigoso. Dependendo da configuração do seu sistema, você vai querer configurar um arquivo para que ele não possa acessar, um usuário não possa saber quando foi a última vez que outro se logou, um usuário não possa saber quais são os processos que outro usuário está rodando, você pode querer configurar isso.

A prova não cobra isso, mas é só para mostrar para vocês algumas das preocupações que um gerente, um gerenciador de sistemas Linux vai ter, um administrador de Linux vai se preocupar, "O que eu quero que um usuário tenha acesso, o que eu quero que outro usuário não tenha acesso?".

Repara o que vimos até agora, já falamos do etc /passwd, já falou do ID, do who e do w. Qual era a diferença principal do who e do w quando os executamos? O w mostrava os processos sendo executados, se eu abria os dois terminais, executava um processo e o w, o w ia me mostrar inclusive o nome do processo que tinha sido executado.

O que acontece quando eu mudo de usuário com o su? Quando eu mudo de usuário com o su, ele cria um shell novo, mas não como se fosse um ambiente novo que ele acabou de se logar, o su - nome do usuário, é bastante utilizado, e aí ele tem um ambiente como se você tivesse se logado apesar de você não ter se logado diretamente no seu sistema.

Você não se logou, você só fez um su, você tentou trocar para outro usuário, você não se logou. Por vício de linguagem falamos "Estou me logando como outro usuário, vou me logar como paulo", falamos isso, mas na verdade o que estamos falando é: "Vou acessar agora como paulo".

Vou acessar agora como su root. Repara que se fosse root é a mesma coisa que só su, su já é por padrão root, já vai tentar acessar como root.

É diferente de fazer um login, querer fazer um login de verdade, login não é o comando que eu queria executar, era só para dizer a palavra login. Se eu quisesse fazer um login mesmo eu deslogaria do meu usuário guilherme, logaria com o usuário paulo, por exemplo.

Esse foi o comando su, já vimos o sudo e vimos que só usuários que são sudoers podem fazer isso, na prova não comenta do arquivo “etc/sudoers” para configuração, não estamos preocupados.

Dessa sessão só ficou faltando falarmos do “etc/ group” e do ID quando ele fala de grupos, veremos isso daqui a pouco. Também falamos do passwd, do shadow e do etc/skel, do id, do last, do useradd e comando passwd.

Está faltando falarmos do groupadd e do “etc/group”, está faltando falarmos de grupos. Falaremos disso daqui a pouco.

Sobre o curso Certificação Linux LPI Essentials parte 12: Security and File Permissions

O curso Certificação Linux LPI Essentials parte 12: Security and File Permissions possui 115 minutos de vídeos, em um total de 28 atividades. Gostou? Conheça nossos outros cursos de Linux em DevOps, ou leia nossos artigos de DevOps.

Matricule-se e comece a estudar com a gente hoje! Conheça outros tópicos abordados durante o curso:

Aprenda Linux acessando integralmente esse e outros cursos, comece hoje!

Plus

  • Acesso a TODOS os cursos da plataforma

    Mais de 1200 cursos completamente atualizados, com novos lançamentos todas as semanas, em Programação, Front-end, UX & Design, Data Science, Mobile, DevOps e Inovação & Gestão.

  • Alura Challenges

    Desafios temáticos para você turbinar seu portfólio. Você aprende na prática, com exercícios e projetos que simulam o dia a dia profissional.

  • Alura Cases

    Webséries exclusivas com discussões avançadas sobre arquitetura de sistemas com profissionais de grandes corporações e startups.

  • Certificado

    Emitimos certificados para atestar que você finalizou nossos cursos e formações.

  • Alura Língua (incluindo curso Inglês para Devs)

    Estude a língua inglesa com um curso 100% focado em tecnologia e expanda seus horizontes profissionais.

12X
R$85
à vista R$1.020
Matricule-se

Pro

  • Acesso a TODOS os cursos da plataforma

    Mais de 1200 cursos completamente atualizados, com novos lançamentos todas as semanas, em Programação, Front-end, UX & Design, Data Science, Mobile, DevOps e Inovação & Gestão.

  • Alura Challenges

    Desafios temáticos para você turbinar seu portfólio. Você aprende na prática, com exercícios e projetos que simulam o dia a dia profissional.

  • Alura Cases

    Webséries exclusivas com discussões avançadas sobre arquitetura de sistemas com profissionais de grandes corporações e startups.

  • Certificado

    Emitimos certificados para atestar que você finalizou nossos cursos e formações.

  • Alura Língua (incluindo curso Inglês para Devs)

    Estude a língua inglesa com um curso 100% focado em tecnologia e expanda seus horizontes profissionais.

12X
R$120
à vista R$1.440
Matricule-se
Conheça os Planos para Empresas

Acesso completo
durante 1 ano

Estude 24h/dia
onde e quando quiser

Novos cursos
todas as semanas