Mudanças entre as edições de "Servidor de Aplicações em Contêineres"
Linha 166: | Linha 166: | ||
echo " " | echo " " | ||
</syntaxhighlight> | </syntaxhighlight> | ||
+ | |||
+ | |||
+ | === Uso do Gdrive === | ||
+ | |||
+ | O [https://github.com/prasmussen/gdrive Gdrive] é uma ferramenta de gerência, em modo texto, de arquivos e diretórios no Google Drive. | ||
+ | |||
+ | * Uso | ||
+ | <blockquote style="color: black; border: solid thin gray;"> | ||
+ | gdrive [global] list [options] List files<br /> | ||
+ | gdrive [global] download [options] <fileId> Download file or directory<br /> | ||
+ | gdrive [global] download query [options] <query> Download all files and directories matching query<br /> | ||
+ | gdrive [global] upload [options] <path> Upload file or directory<br /> | ||
+ | gdrive [global] upload - [options] <name> Upload file from stdin<br /> | ||
+ | gdrive [global] update [options] <fileId> <path> Update file, this creates a new revision of the file<br /> | ||
+ | gdrive [global] info [options] <fileId> Show file info<br /> | ||
+ | gdrive [global] mkdir [options] <name> Create directory<br /> | ||
+ | gdrive [global] share [options] <fileId> Share file or directory<br /> | ||
+ | gdrive [global] share list <fileId> List files permissions<br /> | ||
+ | gdrive [global] share revoke <fileId> <permissionId> Revoke permission<br /> | ||
+ | gdrive [global] delete [options] <fileId> Delete file or directory<br /> | ||
+ | gdrive [global] sync list [options] List all syncable directories on drive<br /> | ||
+ | gdrive [global] sync content [options] <fileId> List content of syncable directory<br /> | ||
+ | gdrive [global] sync download [options] <fileId> <path> Sync drive directory to local directory<br /> | ||
+ | gdrive [global] sync upload [options] <path> <fileId> Sync local directory to drive<br /> | ||
+ | gdrive [global] changes [options] List file changes<br /> | ||
+ | gdrive [global] revision list [options] <fileId> List file revisions<br /> | ||
+ | gdrive [global] revision download [options] <fileId> <revId> Download revision<br /> | ||
+ | gdrive [global] revision delete <fileId> <revId> Delete file revision<br /> | ||
+ | gdrive [global] import [options] <path> Upload and convert file to a google document, see 'about import' for available conversions<br /> | ||
+ | gdrive [global] export [options] <fileId> Export a google document<br /> | ||
+ | gdrive [global] about [options] Google drive metadata, quota usage<br /> | ||
+ | gdrive [global] about import Show supported import formats<br /> | ||
+ | gdrive [global] about export Show supported export formats<br /> | ||
+ | gdrive version Print application version<br /> | ||
+ | gdrive help Print help<br /> | ||
+ | gdrive help <command> Print command help<br /> | ||
+ | gdrive help <command> <subcommand> Print subcommand help<br /> | ||
+ | </blockcode> |
Edição das 15h35min de 30 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 " "
Uso do Gdrive
O Gdrive é uma ferramenta de gerência, em modo texto, de arquivos e diretórios no Google Drive.
- Uso
gdrive [global] list [options] List files
gdrive [global] download [options] <fileId> Download file or directory
gdrive [global] download query [options] <query> Download all files and directories matching query
gdrive [global] upload [options] <path> Upload file or directory
gdrive [global] upload - [options] <name> Upload file from stdin
gdrive [global] update [options] <fileId> <path> Update file, this creates a new revision of the file
gdrive [global] info [options] <fileId> Show file info
gdrive [global] mkdir [options] <name> Create directory
gdrive [global] share [options] <fileId> Share file or directory
gdrive [global] share list <fileId> List files permissions
gdrive [global] share revoke <fileId> <permissionId> Revoke permission
gdrive [global] delete [options] <fileId> Delete file or directory
gdrive [global] sync list [options] List all syncable directories on drive
gdrive [global] sync content [options] <fileId> List content of syncable directory
gdrive [global] sync download [options] <fileId> <path> Sync drive directory to local directory
gdrive [global] sync upload [options] <path> <fileId> Sync local directory to drive
gdrive [global] changes [options] List file changes
gdrive [global] revision list [options] <fileId> List file revisions
gdrive [global] revision download [options] <fileId> <revId> Download revision
gdrive [global] revision delete <fileId> <revId> Delete file revision
gdrive [global] import [options] <path> Upload and convert file to a google document, see 'about import' for available conversions
gdrive [global] export [options] <fileId> Export a google document
gdrive [global] about [options] Google drive metadata, quota usage
gdrive [global] about import Show supported import formats
gdrive [global] about export Show supported export formats
gdrive version Print application version
gdrive help Print help
gdrive help <command> Print command help
gdrive help <command> <subcommand> Print subcommand help
</blockcode>