Sistema de Arquivos no Linux - Permissão de arquivos CHMOD - Parte 15
Aula 22 · GNU/Linux para Servidores
Transcrição do áudio
É coleguinha, vamos falar sobre a permissão que as pessoas têm sobre os arquivos, e eu vou falar para você que essa permissão que nós temos sobre os arquivos baseado em quem é o dono do arquivo, nós vamos então ter ali o escopo de execução de algo, por exemplo, ou naturalmente o que que algo pode modificar em seu computador, vamos lá, imagine que eu tenho um executável, o executável é do root, então eu acesso a conta do root, e então eu executo o programa no contexto do root, e então esse programa poderá mexer em arquivos que o root pode mexer. Naturalmente nós temos as permissões comuns e as permissões especiais, que vamos tratar também. Bom, uma coisa interessante aqui que eu tenho que alertar aos senhores é que eu também tenho na memória duas áreas, e essas duas áreas elas naturalmente são tratadas de forma diferente, nós temos um capítulo de memória mais para frente, e aí lá nós vamos tratar desse, desse, dessa informação, vamos lá. Então nós temos um modelo muito simples no mundo lino, que se o lino quiser ele é ridiculamente fácil, cd bar, vamos para um diretório que tem muita coisa, ls now, desculpe, pim certo, e aí um ls traço l, beleza, e aí nós temos aqui os arquivos, em grande maioria nós temos arquivos regulares nesse diretório, visto que você pode entender que é um arquivo regular devido ao tracinho, beleza, tracinho, tracinho, tracinho, show de bola. Bom, então vamos pegar aqui o dev admin, que eu nem lembrava dessa coisa, acabei tropeçando, beleza, esse diretório é massa para dar aula de permissão, nossa permissão sobre o arquivo, tá? Vamos lá, primeira coisa, esse arquivo ele é do root, e o grupo dono dele é o grupo root, então tem sim, um grupo, catetc, group, tá? Você tem então sim um grupo chamado root, tá? Por incrível que pareça, bom, não tem ninguém dentro dele, e que isso é normal, porque geralmente quando um arquivo é do grupo root, ele também é do root, o cat, pass, wd, que nós vamos ver mais para frente, então aqui eu tenho um usuário root, aqui eu tenho um usuário root e o grupo root, ah, mas se eu colocasse o root dentro do grupo root, se eu colocasse o usuário root dentro do grupo root, não impactaria em nada, porque esses arquivos sempre são do root, do grupo root, infelizmente. Bom, e então esse arquivo aqui de setembro de 2025, beleza, ele, o dono dele pode fazer o que? Você pode ler, escrever e executar, o dono pode, quem é o dono? Eu já falei, é o root, o root pode, então tá aqui, ler é um r, escrever é um w, e executar é um x, bom, executar, bom, tem dois contextos aqui, vamos lá, vou mostrar para vocês. Bom, tá vendo esse x aqui, que ver? Depois eu volto para explicar isso aqui, beleza? Aqui, tá vendo esse x, esse x e esse x, quer dizer o seguinte, que tá dizendo que o dono pode executar o grupo dono também, ou seja, o usuário root pode executar, o grupo, ou seja, quem estiver no grupo root, que não tem ninguém, poderia executar. Então você poderia colocar uma pessoa aqui, ao invés de você estar usando, por exemplo, a conta de root super usuário, beleza? Que é mais saudável do que você ficar na conta de super usuário, legal. E os outros podem executar, eu sei que você vai se pontar aqui, pare, que merda é essa? Você tá querendo me dizer que outras pessoas podem executar? Bom, vamos lá. Se esse programa de computador for executado por outros, mas preste atenção, se esse programa de computador for usar um arquivo, exemplo, de log, um arquivo de configuração, que os outros não podem acessar, dá pau. Então eu vou rodar esse programa, mas se esse programa for usar algum arquivo que eu não posso acessar, e eu não estou como o dono do arquivo, vai dar pau, vai dar pau, entende? O evento clássico disso se chama o Power Off. O Power Off ele gera logs no sistema. Por isso você tem que executar um sudo Power Off. Você tem que executar um sudo Power Off para desligar ele, certo? Olha que interessante. Tá bom, já que eu estou falando desse assunto, eu vou me antecipar depois eu volto. Tá vendo esse comando chamado o mount? Nós vamos usar muito ele, cara. É para você montar e desmontar disco, certo? Desculpe, partições. É que eu estou acostumado com disco de CD-ROM. Então é monta e desmonta CD-ROM lá, o disco ou você, partições, não é isso? No seu sistema de arquivos. E ele está vermelhinho? Vou falar daqui a pouco para vocês. Está vendo esse S aqui no lugar do X? Esse S indica que preste atenção, esse X aqui, qualquer pessoa pode executar, preste atenção, qualquer pessoa pode executar. E esse S quer dizer que quando o mount rodar, ele vai rodar no contexto do dono dele, quem é o dono dele rútil. É uma forma perigosíssima, mas é muito perigosa que o linux tem inclusive no mundo hacker, isso aqui é utilizado, não exatamente esse do mount, para fazer elevação de privilégios, meu amigo. Perigosíssimo isso aqui. Mas se eu pudesse mandar no mundo linux, eu ia destruir a possibilidade dessa maldição de colocar esse S aqui, porque esse S mal colocado, traria a possibilidade de uma elevação de privilégio para um hacker. Um hacker depois que ele invade, ele não vai simplesmente, eu invadi como superusuário, estou tranquilo, não, ele vai ficar muito preocupado. Então ele vai colocar mais buracos na história. Então terá um escoelho e terá muitas tocas. Vamos colocar assim para entrar, legal? E aí naturalmente em algum momento ele vai entrar no linux e alguns desses programas, principalmente o link aqui, o link, ele vai colocar esse Szinho. Vários desses programas vão permitir que o usuário, que não é superusuário, escale privilégio e faça alguma coisa. Uma delas que é clássico é o CCTL, cara. Olha o Sul aqui, olha o sul do... Olha as coisas perigosas aqui. Olha as coisas perigosas aqui. Sudo, Edith, olha coisas perigosas. Mas o Sistem CCTL aqui, está vendo esse cara aqui? Meu, se o cara meter um Szinho aqui, fudeu. Fudeu. Depois ele entra sem privilégio por um RPC, uma falha de RPC comum, o linux, por exemplo, ele entra só que numa falha de RPC você não tem poder de superusuário. Então você entra como superusuário, troca esse X por um S e implanta uma falha de RPC, certo? Se no futuro o buraco que levou você até essa máquina como superusuário for extinto, então você pode acessar por RPC e fazer elevação de privilégio com um Sistem CCTL mal configurado, legal? Lembre-se que com o Sistem CCTL você pode fazer executar programas da máquina do alvo, inclusive voltando a te dar privilégio. Voltando a deixar você como superusuário, legal? Poxou de bola, né cara? Dá pra ter uma noção aqui, legal. Limpei aqui a tela, vamos lá. Vamos lá. Cada arquivo e diretório define então um controle de acesso por três classes. O user que já falei, o grupo dono, tá? Legal. Legal. Vamos lá. Vamos aqui. Vamos para o meu diretório? Desculpa, entrei no lugar errado, coleguinha. Ufa, ainda bem que era meu livro. Cd. Ah, coleguinha. Digamos que eu criei um arquivo aqui. Toche, né? BostaFogo.txt. Legal? Eu não gosto de extensão, mas vamos lá. Ls. Legal. Vamos ver BostaFogo aqui. BostaFogo é do user e do grupo user. Bom, vou falar para vocês mais para frente que quando eu crio um usuário e não defino o grupo, quando eu crio um usuário, ele cria um grupo com o mesmo nome do usuário para poder criar o usuário. Obrigatoriamente tem essa regra do usuário, obrigatoriamente está em um grupo. Legal? Então, para o grupo user. Então eu, user, para a extensão, eu, user, estou no grupo default user, eu, user, estou no grupo default user e no grupo complementar, quebs, cdrom, games, acesso remoto, então ficaria aqui onde está em branco os grupos complementares. No caso, meu grupo default é o user. Então quando eu crio a Ls. Quando eu crio o arquivo BostaFogo, eu sou o user e aí ele cria também para mim como o dono e para o grupo dono o meu grupo default. É assim que funciona. Se você alterar o grupo default e criar um arquivo, você vai ver que ele vai criar para o seu usuário e para o seu novo grupo default que você colocou. Você só pode ter um grupo default. Os outros são grupos complementares. Entendeu a jogada? Legal. Então, por isso que isso é que vem a essa história de grupos e outros são outros, outros que não estão aqui como U ou como G, tá? Outros são outros. Então os primeiros três é para o usuário dono, os outros três é para o grupo dono e os outros três são para os outros. Beleza? R, L, W, escreve, X, X executa, coleguinha. E é muito comum também você colocar, por exemplo, o stat, por exemplo, o BostaFogo. Reparem. Aqui ele coloca para você a mesma visão que você tem aqui no list, em colunas. Mas ele coloca uns números aqui na frente, que número é esse aqui na frente? Que diabo é isso? Vamos lá, coleguinha! Vamos trabalhar só com esses três aqui. Por que esse aqui não? Esse aqui eu vou falar daqui a pouquinho sobre as permissões especiais. Então vamos falar sobre esses três aqui. Eu estou circulando aqui. Legal? Vamos lá. Zero. Nada. Uma permissão. Um, permissão de execução. Dois, gravação e quatro, leitura. Então vamos lá. Seis, quatro mais dois é igual a seis. Então ele pode ler e gravar. Ah, e os cinco? Ah, os cinco é ler e executar. Quatro mais um, cinco. E sete. Bom, sete é quatro, mais dois, mais um. Então esses em vermelho são utilizados para os outros. E isso, cara, é muito comum em sistemas operacionais. Você tem um campo numérico que guarda um número que pode significar muitas coisas, que é a soma, a concatinação, algo assim. Cara, isso é muito comum mesmo. Isso é coisa de velho. Isso é coisa de velho. Vai por mim. É um que eu tenho idade para fazer isso. Mas eu conheço os caras no serviço que têm idade para fazer isso. Principalmente um cara que se formou em 1976. É coleguinha, coleguinha de trampo. Meu, meu okinawa preferido. Te adoro. Eu acho que vou roubar os bitcoins dele. Por que não? O robôs bitcoins dele. Olha só, estou sacanhando, hein, galera? Nós também temos a possibilidade de trabalhar com letrinhas, certo? Olha só. Usuário, dono, grupo dono, mais x executar. Puta que pariu. Então vamos lá. Vamos lá, coleguinha. Vamos alterar lá, né? Vamos alterar lá. Aqui. Então veja, está aqui. Esse arquivo ele não é um executável, certo? Ah, eu quero tirar esse, eu quero tirar esse remover aqui. Eu quero tirar esse remover. Então olha só, sudo ch... Não precisaria. Evita usar o sudo chmod. Os outros menos a R de bosta-fogo. Agora vamos para um LS, traço L, e você vai ver que eu removi o R dos outros. Olha, removi os R dos outros. Legal. Agora eu quero que o grupo dono só possa ler. Então da mesma forma. Você pode chegar aqui e fazer, olha. O grupo dono pode... Desculpe, não pode escrever. Então vamos lá. Legal. E esse traço L. Olha só como eu já estou alterando. Então o grupo dono só pode ler, não pode alterar. Só mesmo eu, dono, posso colocar toda minha indignação. É uma merda torcer para esse time. Cara, dá depressão. E não faça seu filho sofrer isso. Legal? Somente eu posso colocar toda minha indignação com bota-fogo nesse arquivo. Esse arquivo, o grupo dono, pode somente ler e os outros não podem saber a minha indignação que eu tenho com esse time de bosta-fogo. Legal? Por isso que eu não vendo discursos na IUDM, cara. Não tem condições não. Olha, da mesma forma que eu coloquei o menos, eu posso colocar também... Eu posso colocar a execução, tá? Vamos ver aqui um exemplo muito simples. Vamos lá. Anano, um script, né? Bom, tch. Eu jamais deveria estar aqui, tá? Eu jamais deveria estar aqui na raiz aqui falando, né? É escrevendo arquivo, né? Barabim, barabex, é... É uma bosta-fogo mesmo. Cara, vocês vão odiar bota-fogo, mano, do que eu? Ele é extra-so-l. Legal? Tá aqui. Opa, foi uma desculpa, cara. Eu fiquei zoando. Tá vendo esse cara aqui? Ele é um script. Teoricamente, ele poderia ser executado, né? Ele poderia ser executado. Olha, porque ele é um script. Mas eu te pergunto, o dono pode executar? Não. O grupo dono pode executar? Não. E os outros pode executar? Não. Então, vamos começar a arrumar isso aqui. Cega-módio, tá? O grupo dono menos W, tá? Script. O que eu tô fazendo aqui? Eu tô removendo a possibilidade de outra pessoa escrever nesse script. Só eu posso escrever. Só eu posso escrever no arquivo. Legal? Clear. Então, vamos lá. Agora, eu vou fazer o seguinte. Que o usuário pode executar. Somente o usuário. Dono do arquivo pode executar. Legal? Repare. Olha, que ele até mudou a cor. Tá vendo esse x aqui? Eu estou permitido, então, que o usuário execute. Então, ponto bar, script, ele vai dizer que é uma merda mesmo ser um botafoguinhas. Legal? Tô em puta depressão. Meu time tá uma merda, tá? Uma draga. Tá perdendo pro Atlético Ineiro. Puta que pariu. Tá aqui, ó. Beleza? E aqui eu posso adicionar ou remover qualquer coisa, tá? Essa é a forma de você trabalhar com letras. Tem fanáticos que só trabalham com letras. Tem fanáticos que só trabalham com números. Não seja um fanático. Eu gosto das letrinhas. Quando eu vou... Deixe atenção. Eu vejo e aí eu falo, ah, eu vou alterar essa letrinha aqui, tá vendo? Eu vou lá e vou, né, chaga a mod, né, outros menos, por exemplo, R, né? Ah, do script. Então, os outros menos R. Foi mal, galera. Entende? Eu fui lá fazer um ajuste fino, ó. Eu fui lá fazer um ajuste fino na letrenha, cara. E isso é bacana. Aí eu gosto da letrinha, legal? Há uma outra forma de trabalhar também, beleza? Lembrando para os senhores aqui, tá? Que esse script, esse script que eu tô trabalhando, ele é apenas para testes. Então, L, S, traço L, tá aqui. E aí, eu também posso fazer essa alteração assim, de tudo. Por exemplo, o dono pode tudo, o grupo somente ler e os outros nada. Então, como seria? CH mod, 7, para o dono tudo, 4, para o grupo dono poder somente ler, 0 para o resto de script. E aí, se você olhar, você vai fazer assim, poxa, mas não mudou nada. É lógico, porque eu reproduzir isso aqui. Eu reproduzir isso aqui. Tá bom. E se eu quero, por exemplo, ah, eu vou fazer o seguinte, vou... O resto do dono pode, o resto foda, assim. É assim. Olha lá. Você altera. Então, quando você altera o número aqui, você altera toda a permissão, toda a esquemia de permissão. Eu gosto de trabalhar com o número. Quando eu vou alterar tudo, eu vou fazer, ó, é isso que acabou. Aí eu vou lá e altero assim. Legal? Bom, então próximo vídeo eu vou fazer isso aqui. Beleza? Deixa eu ver se tem mais alguma coisa para falar. Legal. No próximo vídeo, vamos mexer nesse código aqui, depois nós vamos falar de um mesc. Até mais, tchau.