Transcrição do áudio
Usuários no mundo Linux, do passado Linux, cometer um erro, tá? O Linux, ele já era instalado com o subusuário e ele não criava nem um usuário, que seria um usuário comum, e então a pessoa entrava como root, então a pessoa acabava viciando em se manter como root, e isso gerou, como eu posso dizer assim, um monte de pessoas no mercado cometendo o erro grave, que é você usar o usuário root pra tudo. Bom, devo alertar aos senhores que isso é um erro grave, que se eu estiver ali na sala de aula como seu professor, eu vou te reprovar, se eu ver você como o suprusuário root, tá bom? Legal. Desclimbe efeito. Linux ele é um sistema multi-usuário, afinal se você olhar ele é naturalmente, não vou dizer diretamente, algo que vem do Multix, não é bem diretamente lógico, Multix, Unix, Unix, Linux. Eu sei que o Linux é uma reescrita do Unix, mas não é bem uma reescrita não, tá galera? Não é bem uma reescrita não. Então, tanto que você ver comentários do mundo Unix dentro de comandos e programas tanto do GNU como do kernel, se você navegar dentro dos códigos fontes você vai ver, pô cara, comentários do Unix, pode procurar. Então não é bem uma reescrita, tanto GNU quanto kernel, tá? GNU é um projeto, kernel do Linux é outro projeto. São dois projetos que se complementam. Então, desde então a de trás o Unix já era multi-usuário, já era multitarefa, a possibilidade de fazer isso e naturalmente quando um sistema operacional ele é multi-usuário, ele tem que naturalmente lidar com os recursos. Lembre-se, a teoria de sistemas operacionais, o que é um sistema operacional? Bom, a resposta é, ele é uma máquina estendida porque ele vai ser uma abstração e ele também é um gerenciador dos recursos de RADUR para que os programas não façam merda, inclusive tem uma merda clássica chamada Deadlock. Tá molhada no livro do TANIB, ou de Sistemas Operacionais Modernos e você vai entender o que é um sistema operacional. Processadores, memórias, RADUR, tudo isso aqui ele vai naturalmente fazer gestão para você. E hoje em dia você tem o multi-usuário e o multi-processamento, inclusive um paralelo. No passado existiu o processamento pseudo-paralelo e vou desenhar então, vai ser melhor. Eu ia entrar numa explicação aqui de voz aqui mas ia ficar uma bosta. Então você tem sistemas que eles são apenas únicos. Então como funciona? É isso que um processo ele entra na memória enquanto ele não termina, enquanto ele não termina ele não libera espaço para um outro processo. Então isso é um processamento único. No passado dispositivos e máquinas eles eram assim. O ancestral do dispositivo móvel ele era assim. O ancestral que eu digo é o POMOS. E aí os caras criaram a ideia de pseudo-paralelismo. Como é que funciona? Então eu imagino que eu tenho aqui um processo e ele começa o processamento. Aí eu interrompo. Aí eu carrego outro processo na memória e dou um outro tempo para ele. E aí depois eu volto lá naquele outro e eu volto naquele outro. Opa! Contro Z, C, V. Eu volto lá naquele outro e continuo aquele outro. Isso aqui é o pseudo-paralelismo. Ele não é paralelo porque ele não consegue fazer dois processamentos ao mesmo tempo. Ele tem aqui um momento em que ele troca de processo em execução. Isso aqui é o pseudo-paralelismo. Ele não é o paralelismo que nós conhecemos. E aí você tem a possibilidade de um paralelismo mesmo, mas aí você precisa de núcleos. Eu estou para atingir os 72, né? Eu comprei os equipamentos para atingir 72 núcleos paralelos. Tá vindo aí, tá vindo aí. Então ele permite que naturalmente que um processo em processo aqui, outro processo aqui e outro processo aqui, não necessariamente eles vão começando no mesmo tempo. Eu fui até um conceito agora idiota ignorante. Processo aqui, aí esse cara terminou aqui porque ele foi para o titinho, já terminou, já liberou. Então é um pseudo-paralelismo, ou desculpa, é um paralelismo real porque eles realmente estão em paralelo. Então deixa eu ver se eu tenho aqui. Clear. H3. Oh, desculpa, H3. H2. Desculpa, estou a retardar hoje. A pseudo-APT install a GATOP. Desculpa galera, hoje estou meio grogue, trabalhei demais para caramba GATOP. Então aqui por exemplo, eu tenho essa máquina virtual, ela tem 1, 2, 3, 4, 5, 6. Foi colocado 6 núcleos para ela. Ok. Essa máquina, ela é uma máquina, quantos núcleos ela tem? Então vem aqui. Então aí você tem o paralelismo, eu vim aqui em global configuração, eu acho que era aqui, desculpa. Ele está porra, tem que atualizar esse template aqui, olha os templates para atualizar aqui. Merda, cara. Ô cara, tem que fazer gestão da máquina, né? Esse dispositivo então, ele é um zeon desses 2680. Ele tem uma pancada de núcleos, mas não são núcleos tão fortes, tá? Deixa eu ver se ele está colocando quantos núcleos ele tem aqui. Que eu acho que deve ser 28, esse processador. É cara, ele não tem que não. Ó, tá, cheio de problema aqui, tá? Para resolver essa máquina. Aí ele não colocou não, que estranho. Bom, 28, acredito. Acredito que é 28. Então aqui eu posso chegar aqui nesse sistema opressional, que eu utilizo. Essa aqui é a máquina que eu estou dando aula para vocês? Não, essa é o work que eu estou dando aula para vocês aqui. Então eu consigo vir aqui e colocar um número de núcleos aqui, ó. Número de núcleos para essa máquina virtual. Eu vou colocar que ela pode ser escalada até 6, tá? Embora não precise. 6, é, 6, não é 6 giga, é, de memória, mas chega muito próximo. E 6 CPU, certo? Então, então impacta essa história aqui, legal? Está impactando essa história aqui. Tá bom. E bom, nós vamos ter aulas explicar mais sobre isso contra o C. Quando eu for falar de processo, para o acessamento, e aí nós vamos entrar nesses detalhes, legal? Beleza. Então, o segundo tânimo, então, o seu do paralelismo, falei para vocês, na verdade, eu mostrei toda essa parte aqui, né? Estou acostumada a dar essa aula, acabei avançando a explicação aqui. No Linux, porra, cara, eu não gosto de falar superusuário, cara. Mas eu falo muito superusuário. Por motivo simples, CD barra B, certo? Estou aqui no barra B. Quando o Linux foi instalado, isso aqui tudo foi criado, L, S, L. Então, quando o Linux foi instalado, tá? Isso aqui tudo foi criado, beleza? Então, está aqui. Todos eles são do root. Então, quando eu faço a instalação do Linux, eu preciso de um usuário. Preste atenção, todo arquivo obrigatoriamente tem o usuário, o dono e o grupo do dono. Então, imagine que num processo de instalação de um sistema operacional, a primeira coisa que você precisa fazer é criar o usuário útil e criar o grupo root, certo? Então depois você vem copiando os arquivos. O processo de instalação vem copiando os arquivos. Está claro isso? Então, o que que teoricamente seria o superusuário? Seria quem tem acesso a todos esses arquivos? Tá? E isso é importante. Você vai ver que ele coloca assim, olha, a memória é dividida em duas partes. O sistema, o sessão operacional e o usuário, certo? E a área do usuário. A memória está no Livetunable, certo? Mas essa parte do sistema, ela roda para o sistema. Ela usa para, ele utiliza o root para executar todos os processos aqui nessa memória. Todos os processos foram inicializados como root. Então, não só a instalação foi feita com o usuário root no Linux, bem como na hora da inicialização, na hora da inicialização, é natural que ele vai subir. Na hora da inicialização, é natural que ele vai subir como o root, naturalmente. Queria? Tá? Isso é natural. É muito simples, é igual você, você pode chegar aqui com o coxin-top. Tá? Então, aqui eu tenho, naturalmente, os comandos e qual o usuário do Linux que está sendo utilizado aqui nessa segunda coluna aqui, que é chamada o user, para rodar o processo. Então, parte, então, desse princípio que o Linux foi todo criado ali, o sistema de arquivos a princípio com o root, e então é o root que vai ser dono dos arquivos de inicialização do Linux, então, por isso que ele sobe como root, com seu sistema personal. Legal? Isso é importante saber desses detalhes, tá? Então, ele é um usuário root, mas não é um usuário que nós utilizamos. Isso pode ter percebido aqui nas aulas que eu não fico aqui, né, trabalhando com o superusuário, esse joguinho da velha aqui é o superusuário, quer dizer, para me dizer que eu estou como superusuário. Aqui é o usuário em que eu estou no Debian. Essa nomenclatura pode mudar, tá? Então, eu estou aqui com o usuário root numa máquina chamada work. Anteriormente, eu estava com o usuário user numa máquina chamada work. Exite. Você não me vê eu utilizando isso. Tudo bem? Bom, vamos falar nesse capítulo sobre essa questão de boas práticas também, cara. Você tem que assistir. Legal? Então, nós sempre estamos com o usuário. O usuário comum, tá? Estamos todos felizes utilizando o usuário comum. Beleza? Nós não ficamos na conta do root até por problemas, tá? Que nós podemos acabar trazendo para o sistema profissional. Lembre-se que o impacto de eu trabalhar como root o tempo inteiro pode ser assim, praticamente em todo o escopo de memória. Então, se eu for afetado por algum programa malcioso ou um link, ele é afetado de uma forma absurda, tá? Tá bom? Então, vamos lá. Primeira coisa que você tem que saber. Aonde ficam esses arquivos que têm esses dados de usuário? Tá bom? Clear. Clear. Scope. Cache. Etc. Paz. WD. No passado, o Paz WD também armazenava usuário e senha. No passado. Hoje ele armazena só o usuário. Porque isso é muito comum que você precise saber quais usuários você tem no sistema. Em N programas aqui dentro do Linux. E, então, você dava a permissão de acesso à senha, pelo menos para a leitura. A senha tá criptografada, mas você dava a permissão naturalmente ali. Então, naturalmente, com o passado, o tempo os caras perceberam que seria interessante você mover, tá? Tô marcando aqui onde ficaria a senha. Você mover ele pro arquivo de Shadow. Então, esse X informa isso. Você tá movendo a senha para o arquivo de Shadow. O arquivo Shadow, aonde você vai ter a senha, ele tem uma política de acesso muito mais restrita que o Paz WD. Então, são dois arquivos. O Etc Paz WD e o Etc Shadow. Nós vou mostrar para você daqui a pouquinho. Políticas de permissão diferentes. Acabamos de passar pelo capítulo de arquivos, sistema de arquivos, e vocês viram isso. Como dar essa permissão de acesso. Então, o Shadow, só o root pode ler. Já o Paz WD, qualquer usuário pode ler. Essa é a ideia. Bom, aqui então nós temos... Repare que aqui nessa coluna nós temos o ID. ID 1, ID 2, ID 3, ID 4. Geralmente, usuários de sistema tem no Debian acima de 1.000 algumas distribuições antigas 500, tá? As distribuições modernas, 1.000. Beleza? É apenas um... Como eu posso dizer, é apenas uma boa prática. Vamos colocar assim, tá? Então aqui nós temos todos esses usuários. Esses usuários são utilizados, nem sempre. Esse campo é único. Não, não, não, não, não, não, não. Exemplo, então vamos lá. Clear. Jamais deveria estar fazendo isso, mas eu vou fazer para você ver. Lembre-se que esse lino, que é azul, é só para dar aula, tá? Sudo, nano, ETC, Paz, WD. Legal? Eu poderia muito bem chegar aqui e falar que o... O WWData, ele é o suprusuário também. Então, olha só como ficaria. Agora nós teríamos, então, a possibilidade de ter o root, tá? O root acessando arquivos, como suprusuário, e o tal do WWData. Lógico, WWData não loga, né? É um outro papo que nós temos que ter ainda nesse capítulo com vocês. Mas repara, eu construí agora outro. Vou te explicar. Olha só, preste atenção. Ó, está. Stat. Olha o que o Stat está falando. Esse arquivo, ele é de quem? Do root, mas como é que você sabe disso? Olha aqui o zero. Puta merda. Olha esse zero. Tá vendo? É do usuário root e do grupo root. Puta merda. Então você está querendo me dizer... Olha só que louco, hein? Olha o papo. Ah, estou aqui, tu e... Brinquei aqui agora em pouco, não foi? Então, olha só, o Stat, certo? O diretório 1, time. Repare. Esse arquivo, ele é do usuário 1.000. O usuário 1.000. E esse cara aqui é do usuário zero, esse arquivo. Ah, peraí. Vamos lá. Ao colocar esse cara em zero, quer dizer que todo arquivo que é do usuário zero, no caso é o root, poderia ser manipulado também por quem? Por esse cara. Puta merda. Puta merda. E isso, inclusive, no mundo hacker, é uma técnica comum. Por que o WWData? Porque esse cara aqui, adivinha, ele é o usuário do Apache do Tomcat. Então, uma falha no Apache, uma falha no Tomcat daria poder total para o Apache Tomcat. Então quer dizer que uma vulnerabilidade no Apache Tomcat, que manipulasse arquivos no sistema de arquivos, eu teria acesso total a tudo, inclusive ao Shadow, que seria um arquivo, que é tipo assim, é o arquivo. Mas no caso, vamos voltar aqui, vamos desfazer a merda, porque nós não podemos manter essa merda. Legal? Vocês entenderam aí, a merda, né? E isso é uma falha do Linux? Cara, eu sempre achei que isso é uma falha do Linux. Mas as pessoas não aceitam isso, o mundo Linux não aceitam isso como uma falha. É muito difícil você falar que você erra, tá? É muito difícil você falar que as coisas que você gosta não são boas. Muito difícil, da qualquer um não. Então, conforme eu falei, o Linux mais moderno, um Debian, o usuário comum começa ali em mil. Você tem um arquivo, tá? Nesse arquivo chamado Login Devs, que ele fica lá em ATC, você tem aqui o imínimo, tá? E o máximo para os usuários comuns. Então, quando você cria um usuário comum, e nós vamos criar usuários nesse capítulo, com comanda de the user, tá? E os scripts, na verdade, a dduser, que vier a um comando, ele vai carregar desse arquivo os parâmetros, os parâmetros. Legal? Conforme eu falei, o arquivo PazWD, ele amazena tais informações. Acabei de mostrar o cat aqui para vocês, falei, né? Uma coisa interessante, que o PazWD, conforme eu já falei para vocês, e o dono dele é o root. O grupo dono também é o grupo root, tá? Mas repare, que, então, o root ele pode ler e escrever nesse arquivo. E assim como o grupo dono pode ler, e os outros podem ler. Beleza? E isso aqui é importante, porque eu tenho inúmeros programas que precisam, cara, eu tenho inúmeros programas que eles precisam pegar a lista de usuários do sistema. Então, por isso que eu tenho que deixar que outros peguem a lista de pessoas no sistema. Infelizmente, porque eu tenho um monte de programas rodando no contexto dos outros usuários que precisam disso. Então, isso é um problema, tá? Que foi resolvido assim. Por isso que os outros podem ler. Legal? A cada linha desse arquivo, ele é assim, tá? Primeira coluna, é dois pontos, tá? Que separa as colunas. Padrão antigo do Unix. Primeiro é o username. Esse cara aqui, ele é o único. Então, o username, ele é o único no sistema, a primeira coluna. Todo arquivo de dados da década de 90 para trás era assim. A primeira coluna é a chave foda-se o resto. Essa é a história. Todo arquivo da década de 90 para trás, tá? Eu tive a honra de passar por isso, né? Tive a honra de passar por isso aí. Mas eu vou falar, é coisa muito velha mesmo, tá? Aqui, ó, a segunda coluna, é dizendo, ele tem uma senha lá em Shadow. Zero, é o UID, UID, UID do usuário rúdio. O que é quatro? Preste atenção. Todo usuário tem grupo, todo usuário está em grupos. Todo usuário está em grupos. Linux tem uma distinção. Ah, então, imagina assim, você tem que ter o usuário. Certo? Do seu usuário, você tem um campo chamado grupo padrão. E você tem um array de outros grupos. Certo? Então aqui, você consegue colocar só um grupo padrão. E você consegue colocar, naturalmente, a mínimo um no máximo um, certo? Aqui, você consegue colocar disso aqui, a zero, a infinito. Beleza? Lógico que eu estou jogando infinito como uma loucura, né? Estou dizendo para você, grupo para caralho, é assim. Por isso que eu não quero colocar um número ali. Porque se eu colocar um número, os caras vão achar que esse é o número e esse é o número. Bom, tá vendo aqui? Todo usuário obrigatoriamente tem que ter um grupo default. Obrigatoriamente ele está em um grupo e esse grupo é o grupo default, ele padrão. Isso aqui é chamado de outros grupos. O nome técnico é grupo complementar. Esse aqui é o grupo complementar, na verdade, grupos complementares. Mas eu coloquei no singular porque eu não sei escrever no plural. Ok? Mas vocês entenderam. Legal. Então, por isso que obrigatoriamente, quando você cria um usuário no mundo Linux, se você não define qual é o grupo padrão, o Linux obrigatoriamente cria um grupo para colocar na posição 4. Ele não aceita isso aqui vazio. E o que ele colocar tem que existir como grupo. Então, é natural que quando eu instalei o Linux, ele criou o grupo zero, chamou de root. Depois ele criou o usuário zero, que chamou de root também. Beleza? Tá. Então, aqui em 5 você tem uma observação. 6. Qual o diretório default desse usuário? É barra root. Em 7. Se o root logar, o que eu vou carregar? Preste atenção. Se o root logar no terminal, que programa eu vou carregar e dar para ele? Barra-bem-barra-beste. Eu vou dar o barra-bem-barra-beste para ele. Então, ele vai receber um terminal e vai poder digitar as coisas. Legal? Tá. Bom. E naturalmente, esses parâmetros, eles estão definidos em dois locais. Esses parâmetros. ADD user.conf e etc login defs. É lá que você vai encontrar esse tipo de parâmetros, que você configura. Qual o default para coluna 7? Qual o default para coluna 6? Qual o default para isso e aquilo? Tá tudo lá. Tudo nesses dois arquivos. Beleza? A princípio, você não tem uma regex para 100. Então, você cria o usuário. Beleza? E você não tem uma regex para criar usuários. Mas se você quiser ativar, name, underline e regex, é uma regex que proíbe que o usuário cria um nome, com letras maiúsculas, geralmente no Linux, eu não posso falar todos. Todas as letras do usuário, que você usa no username, eles estão em minúsculo. Todos os names aqui estão em minúsculo. Beleza? É o padrão. Posso acreditar que existe Linux por aí, que não tem esse padrão, não siga esse padrão. Beleza? Legal. No mundo Windows, você tem usuários que logam, você tem administrador, você tem usuário de rede, você tem usuário de máquina, você tem usuário de AD. É o inferno. No mundo Linux não tem isso. O usuário é o usuário e acabou. O seu poder de acesso, ou seja, o seu escopo, é que diz o que ele é realmente. Entende? Então, isso é o mundo Linux, inclusive, é até estranho, né? É até estranho para as pessoas falar em que aqui o usuário é o usuário. E se ele é um usuário de serviço, se ele é um usuário de sistema, bom, aí é baseado no seu escopo, do que ele pode. Vamos pegar um usuário aqui? Tem muita coisa aqui, né? Tá bom. Então, vamos fazer o seguinte. Eu vou usar o pipe, o app, tá? E eu vou mostrar para você o WW data. WW data, grab, traço v, e eu vou escolher o próprio grab da busca. Daqui a linha. Só para pegar uma linha, dá um clipe para vocês. Muita coisa na tela para vocês ficar em frente, né? Peguei só uma linha daquele arquivo, tá? Peguei só uma linha daquele arquivo. Uma linha que tem o WW data, legal? O ID 33, Group ID 33, esse aqui é o apelido dele, é apenas uma descrição para o que ele serve, poderia ter aqui uma descrição para a baixa, contêineros, em geral de web. Esse aqui é o diretório de full dele. O diretório que é dele, de full. Então, ls, traço l, bar, tá? Bar, va, bar, www data. Eu acho que nem está criado. Não é que está criado porque a parte não foi instalada. Então, a parte não foi instalada. Eu posso ter um usuário que ele tem um diretório de full e ele não tem esse diretório criado? Pode. É comum, tá? Então, ele não cria aquele monte de usuários que é aquilo, ele diz, assim, é a lista de boa prática. Vamos colocar assim. E aqui é o, como eu posso dizer, o programa que será executado se esse cara fizer um login. Então, login, www data. Se eu tivesse uma senha definida, não tem senha definida, tá pra mim. Se eu personasse o enter e eu tivesse uma senha definida e eu acertasse a senha, ele iria rodar esse programa aqui, tá? O que que é esse programa? Esse programa, ele é aqui um um programa que não faz nada. Ele, na verdade, só dá essa mensagem de OTA. Por que que nós fazemos isso? Nós fazemos isso porque se algum diabo demônio alguém meter um password nesse maldito aqui, ele vai criar um usuário que naturalmente pode ser acessível e alguém logar com ele. E isso seria muito ruim. Opa. Vamos olhar. Agora, um outro usuário chamado user, tá? Aqui, esse user aqui, tá vendo? É o usuário que eu estou logado aqui agora. Eu usei um usuário senha. Tá aqui, ó. Tá aqui o user, o id dele, group ID, a descrição tá vazio, não tem nenhuma descrição pra mim. Esse aqui é o meu diretório default de usuário, barra home, barra user. Ele existe, né? Ele é a sua L, barra home, barra user e, opa, desculpe. Coloca assim que aí ele vai, opa, pera aí. Opa, rei tudo agora, puta que pariu. Rei tudo aqui agora, cara. Pera aí. Vamos lá. Barra home, barrasterista. Caramba mano, ele recriou. Não, cara. O que ele fez aqui em CD, barra home? L, S. É eu, hein, cara? Bom, devo tá doidão. Deve estar doidão, gente. Ó, se você pesquisar aqui, repare, ele entrou, recusivamente é como se ele tivesse colocado recusivo, né? Coisa esquisita, né? Bom, deixa eu pra lá, tô ficando doido. Mas é esse trabalho. Repare, que esse diretório, ele é do user. Preste atenção. Todo o diretório de usuário que você vai criar, ele tem que ser do usuário dele, tá? Do grupo default dele. E, preste atenção, ele tem que ser leitura escrita e execução do usuário dono e nada para o resto. Nada para o resto. Você tem que criar, porque você cria o diretório, necessariamente o diretório pode não existir. Como o file bavar, www, que não existe. Que é do usuário, www, tá? Rapá, mas deu um devoninho aqui, agora deu um um pilipaque no meu cérebro agora, cara. Pua, cara. Coisa esquisita, cara. Coisa esquisita. Rapaz, eu acho que depois desse vídeo aqui eu vou dar uma cagada e vou dar uma descansada na rede, cara. Sério mesmo. Opa, ó, tô falando que eu tô rando, olha só. Ó, você viu? Doido, doido, essa porra. Então, esse aqui é o do usuário, legal? Beleza, olha só que interessante. Se eu conseguir acertar a senha do usuário, então ele vai carregar um programa pra mim chamado barra, é barra-bin-barra-beste, file, barra-bin-barra-beste. Tá? Que é um programa. Que é o que você tá vendo aqui? Essa tela preta que você tá vendo aqui, essa tela preta que você tá vendo aqui, é o barra-bin-barra-beste. Repare, lá no capítulo de scripts linux bash, eu vou falar pra você do dash, do sh, tá? Do bash, do Python, vou explicar pra vocês os executores de script que nós temos. Então, pare, se tô querendo me dizer, pare aí. Vamos aqui fazer uma loucura. Vamos colocar aqui seu criaço aqui, o usuário e colocar assim, aqui Python 3. Ele iria abrir o Python como terminal pra mim? Sim, ele iria abrir isso aqui, ó. Se eu colocasse ali, barra o sr-bin- Python 3, tá? Ele iria abrir isso aqui, cara. Ele iria abrir isso aqui pra você, ó. No terminal. Como se fosse o Python, o programa executou o principal, entenderam? Tá? Legal? Sai do Python, de forma normal, sem dar nem o accept, onde ir, tá? Resit 0, eu tô dizendo, eu quero sair do programa, fecha pra mim e informa pro sistema que deu tudo certo. Resit 0 significa isso pra nós, tá? Ah, puta que parindo, então eu quero, eu quero que seja Python, eu amo Python. Re, coleguinha, toma cuidado aí, filhote. Primeiro, documentação na internet. 2, Python pra você trabalhar com é... com, com a desbasta do tipo cp, rm, mv, ele é muito oneroso no teclado. Você vai ter que digitar coisa pra caralho. E aí você vai acabar voltando pro bash, o sh, que tem uma sintax mais simples pra você trabalhar com arquivos aqui dentro, tá? Nossa, cara, então pense assim, esse Python foi feito pra programador, cara. Python foi feito pra terminal. O bash, o dash, o strumbash foram feitos. Então, para o terminal, beleza? Esse script é interessante. Você vai ter uma aula de script comigo, tá? Uma não, várias, né? Aqui é o showbank, tá dizendo por qual programa vai ser executado. O IWIFS, tá? Então, eu vou fazer aqui um laço de repetição. Eu vou ler esse arquivo. Olha que esquisito, cara, a programação em bash. Ele vai ler esse arquivo. Esse arquivo vai virar um descrito na memória. Vai jogar todo o string de dados pra dentro desse laço de repetição. Repare que você não abriu o arquivo, né? Você pegou o arquivo e injetou no laço de repetição. Olha que esquisito, cara. Você lê um arquivo e injeta no laço de repetição. Legal? Aí, então, quer dizer que cada linha do arquivo, cada barra N quebra de linha, ele vai fazer um do. Um do doone, tá? Ele vai fazer um do doone pra cada laço. Desculpe pra cada linha, tá? Nesse laço de repetição. E pra cada linha, ele vai quebrar, ele vai fazer esse read, vai quebrar, em coluna. Coluna F1, coluna F2, coluna F3, coluna F4, F5, F6, F7. Você pode dar um nome que você quiser pra essas colunas, tá? Eu coloquei F, F1, F2, F3, F4. Coloquei o que eu quis ali. Então, você escreve no meio do seu texto, ó. Usuário tal, uso o shell tal. E ele armazena arquivos em tal posição. Então, ele monta uma linha pra você. Com todos esses a... Todas essas linhas são paradinhas bonitinhas pra você. Legal? Vamos ter uma aula pra falar sobre scripts. Mas é assim que, por exemplo, você procura usuários vscript dentro do arquivo PazWD. Até mais, tchau!