Mudanças entre as edições de "Servidor de Aplicações em Contêineres"

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
Linha 26: Linha 26:
 
Abaixo, o script de verificação:
 
Abaixo, o script de verificação:
  
<syntaxhighlight lang=c>
+
<source lang="bash">
 
#!/bin/bash
 
#!/bin/bash
  
Linha 37: Linha 37:
 
   echo " "
 
   echo " "
 
done < $1
 
done < $1
</syntaxhighlight>
+
</source>
  
 
Após utlizar o script de verificação e realizar os ajustes necessários na lista, o script abaixo pode usado para criar os usuários:
 
Após utlizar o script de verificação e realizar os ajustes necessários na lista, o script abaixo pode usado para criar os usuários:
Linha 47: Linha 47:
 
Abaixo, o script de criação dos usuários dos alunos via lista:
 
Abaixo, o script de criação dos usuários dos alunos via lista:
  
<syntaxhighlight lang=c>
+
<source lang="bash">
  
 
#!/bin/bash
 
#!/bin/bash
Linha 94: Linha 94:
 
done < $1
 
done < $1
  
</syntaxhighlight>
+
</source>
  
 
Há também um script para a criação manual de usuários de alunos, caso seja encontrado mais de um nome de usuário para o mesmo aluno ou caso não seja encontrado nenhum nome de usuário.<br />
 
Há também um script para a criação manual de usuários de alunos, caso seja encontrado mais de um nome de usuário para o mesmo aluno ou caso não seja encontrado nenhum nome de usuário.<br />
Linha 105: Linha 105:
 
O código do script é:
 
O código do script é:
  
<syntaxhighlight lang=c>
+
<source lang="bash">
  
 
#!/bin/bash
 
#!/bin/bash
Linha 133: Linha 133:
 
   echo "Conta $nomedeusuario do usuario $nomecompleto criada"
 
   echo "Conta $nomedeusuario do usuario $nomecompleto criada"
 
   echo " "
 
   echo " "
</syntaxhighlight>
+
</source>
  
 
E há um script para a criação de usuários para os professores, usando a seguinte sintaxe: <br />
 
E há um script para a criação de usuários para os professores, usando a seguinte sintaxe: <br />

Edição das 11h48min de 23 de maio de 2017

Sistema Operacional hospedeiro: CoreOS stable (1298.6.0);
Forma de execução das aplicações: Em contêineres Docker.;
Versão do Docker: 1.12.6 64 bits;

O CoreOS

O CoreOS é um sistema operacional de código aberto voltado à execução de contêineres. Seu objetivo é permitir a execução de aplicações em qualquer ambiente.

Scripts para criação de usuários

Devido à falta de informações suficientes providas pelo LDAP, não foi possível usar os usuários de rede dos alunos. De maneira a agilizar a criação e remoção de contas, foram criados scripts para realizar essas funções.
O script abaixo verifica o nome completo do aluno e retorna o seu nome de usuário. Caso retorne mais de um nome de usuário ou não retorne nenhum nome de usuário, o mesmo deve ter seu nome retirado da lista e ser criado manualmente:
Abaixo, a sintaxe de utilização do script de verificação:

root@quartus-matlab:/# ./ler-lista lista

No comando acima, o script obtém o nome completo dos usuário a partir do arquivo "lista". A lista do com o nome completo dos usuários tem o formato CSV (comma separated value), como no exemplo abaixo:

MATRÍCULA,NOME,SOBRENOME
123456789-0,MARIO,DE ANDRADE
246801357-9,JOAO,VITOR DOS PASSOS

Abaixo, o script de verificação:

#!/bin/bash

FILE=$1
while IFS=, read -r matricula nome sobrenome
do
  echo "Usuario $nome $sobrenome de matricula $matricula."
  ldap=$(ldapsearch -h 200.135.37.117 -b "dc=cefetsc,dc=edu,dc=br" -x "(&(cn=$nome)(sn=$sobrenome))"  | sed -n 's/dn: uid=\(.*\),ou=Alunos,dc=cefetsc,dc=edu,dc=br/\1/p')
  echo "$ldap"
  echo " "
done < $1

Após utlizar o script de verificação e realizar os ajustes necessários na lista, o script abaixo pode usado para criar os usuários:

root@quartus-matlab:/# ./criar-usuarios lista

Abaixo, o script de criação dos usuários dos alunos via lista:

#!/bin/bash

FILE=$1
cut -d: -f1 /etc/passwd > /home/scripts/username

while IFS=, read -r matricula nome sobrenome
do
  echo "Usuario $nome $sobrenome de matricula $matricula"
  ldap=$(ldapsearch -h 200.135.37.117 -b "dc=cefetsc,dc=edu,dc=br" -x "(&(cn=$nome)(sn=$sobrenome))"  | sed -n 's/dn: uid=\(.*\),ou=Alunos,dc=cefetsc,dc=edu,dc=br/\1/p')
  usuariolocal=$(cat username |grep "^$ldap")

  if [ "$usuariolocal" = "$ldap" ]; then

    echo "O usuário $usuariolocal já existe no sistema!."
    echo " "

  else

    echo "Criando usuario $ldap para o aluno $nome $sobrenome"
    useradd -m -d /home/alunos/$ldap -s /bin/bash  -c "$nome $sobrenome" $ldap

    echo "Usando a matricula $matricula como senha do usuario $ldap."
    echo "$ldap:$matricula" |chpasswd
  
    echo "Obrigando usuario a mudar senha no proximo login."
    chage -d 0 $ldap

    echo "Adicionando usuario $ldap ao grupo alunos"
    addgroup $ldap alunos
  
    echo "Mudando a permissao da pasta /home/alunos/$ldap"
    chmod -R 700 /home/alunos/$ldap

    echo "Mudando grupo dono da pasta /home/alunos/$ldap."
    chown -R $ldap:alunos /home/alunos/$ldap

    echo "Dando permissão de leitura aos usuários do grupo professores."
    setfacl -m g:professores:r /home/alunos/$ldap
 
    echo "Conta $ldap do usuario $nome $sobrenome criada"
    echo " "

  fi
done < $1

Há também um script para a criação manual de usuários de alunos, caso seja encontrado mais de um nome de usuário para o mesmo aluno ou caso não seja encontrado nenhum nome de usuário.
A sintaxe de utilização é:

root@quartus-matlab:/# ./criar-usuario-aluno "nome_de_usuario" "NOME COMPLETO" "matrícula"
root@quartus-matlab:/# ./criar-usuario-aluno "maria.fs" "MARIA FONSECA DE SOUZA" "246801357-9"

O código do script é:

#!/bin/bash

nomedeusuario=$1
nomecompleto=$2
matricula=$3

  echo "Criando usuario $nomedeusuario para o aluno $nomecompleto"
  useradd -m -d /home/alunos/$nomedeusuario -s /bin/bash  -c "$nomecompleto" $nomedeusuario

  echo "Usando a matricula $matricula como senha do usuario $nomedeusuario."
  echo "$nomedeusuario:$matricula" |chpasswd
  
  echo "Obrigando usuario a mudar senha no proximo login."
  chage -d 0 $nomedeusuario

  echo "Adicionando usuario $nomedeusuario ao grupo alunos"
  addgroup $nomedeusuario alunos

  echo "Mudando grupo dono da pasta /home/alunos/$nomedeusuario."
  chown -R $nomedeusuario:alunos /home/alunos/$nomedeusuario
  
  echo "Mudando a permissao da pasta /home/alunos/$nomedeusuario"
  chmod -R 700 /home/alunos/$nomedeusuario
  
  echo "Conta $nomedeusuario do usuario $nomecompleto criada"
  echo " "

E há um script para a criação de usuários para os professores, usando a seguinte sintaxe:

root@quartus-matlab:/# ./criar-usuario-professor "usuario" "Nome Completo" "senhatemporaria"

#!/bin/bash

nomedeusuario=$1
nomecompleto=$2
senha=$3

  echo "Criando usuário $nomedeusuario para o professor $nomecompleto."
  useradd -m -d /home/professores/$nomedeusuario -s /bin/bash  -c "$nomecompleto" $nomedeusuario

  echo "Usando $senha como senha temporária do usuario $nomedeusuario."
  echo "$nomedeusuario:$senha" |chpasswd
  
  echo "Obrigando usuário a mudar senha no próximo login."
  chage -d 0 $nomedeusuario

  echo "Adicionando usuário $nomedeusuario ao grupo professores."
  addgroup $nomedeusuario professores
  
  echo "Mudando a permissão da pasta /home/professores/$nomedeusuario."
  chmod -R 700 /home/professores/$nomedeusuario
  
  echo "Conta $nomedeusuario do usuário $nomecompleto criada."
  echo " "