f.gross
(usa OpenSuSE)
Enviado em 24/07/2009 - 10:34h
Fala ai cara blz? eu implantei as acls aqui no server tbm e meu é muito legal mesmo o funcionamento delas, por padrão apenas no diretório de projetos daqui da empresa , se usa permissões de acl, vou postar o script pra ver se te dá um luz ..... o script é bem besta e simples , mas me ajuda muito quando tenho que criar um novo projeto ( pois segue todo um padrão de estrutura de diretórios)
#!/bin/bash
clear
Principal(){
echo "NOVO PROJETO "
echo "------------------------------------------"
echo "Opcao:"
echo
echo "1. Criar novo Projeto"
echo "2. Mover Projeto para HOMOLOGADOS"
echo "3. Ir para o Terminal"
echo "4. Adicionar usuario ao Projeto"
echo
echo -n "Qual a opcao desejada? "
read opcao
case $opcao in
1) criarprojeto ;;
2) moveprojeto ;;
3) fim ;;
4) usuarios ;;
*) "Opcao desconhecida." ; echo ; Principal ;;
esac
}
criarprojeto() {
echo -n "Digite o nome do Projeto--->"
read projeto
mkdir $projeto
echo -n "Digite o nome do cliente--> (padrao tudo minuscula) - "
read grupo
chown root.$grupo $projeto
chmod 700 $projeto
echo -n "Verifique os usuarios que estãno grupo: $grupo"
raizprojeto=`pwd`
cd $projeto
## ANALISE
mkdir Analise
mkdir Analise/Documentacao
mkdir Analise/Originais
mkdir Analise/Quality_Assurance
chown -R root.analise Analise
chown -R root.qualidade Analise/Quality_Assurance
## DESENVOLVIMENTO
mkdir Desenvolvimento
mkdir Desenvolvimento/MER
mkdir Desenvolvimento/FMDA
mkdir Desenvolvimento/Dist
chown -R root.desenv Desenvolvimento
echo "TIPO DO PROJETO"
echo "------------------------------------------"
echo "Opcao:"
echo
echo "1. Projeto Java"
echo "2. Projeto HTML"
echo "3. Projeto VB"
echo "4. Projeto ASP"
echo "5. Projeto FLEX"
echo
echo -n "Qual a opcao desejada? "
read tipoprojeto
case $tipoprojeto in
1) JAVA ;;
2) HTML ;;
3) VB ;;
4) ASP ;;
5) FLEX ;;
*) "Opcao desconhecida." ; echo ; P
esac
## COMUNICACAO
mkdir Comunicacao
chown -R root.comunicacao Comunicacao
## PERMISSOES ACLS
##PERMISSAO NOS DIRETORIOS
cd $raizprojeto
cd $projeto
#grupo analise tem permissao full em toda estrutra de diretorios
setfacl -R -m g:analise:rwx Analise/*
setfacl -R -m g:analise:rwx Desenvolvimento/*
setfacl -R -m g:analise:rwx Comunicacao/
#grupo desenv tem permissao full somente nos diretorios dentro de Desenvolvimento
setfacl -R -m g:desenv:rwx Desenvolvimento/*
#grupo comunicacao tem permissao full somente nos diretorio Comunicacao
setfacl -R -m g:comunicacao:rwx Comunicacao/
#grupo qualidade tem permissao full somente nos diretorio Quality_Assurance
setfacl -R -m g:qualidade:rwx Analise/Quality_Assurance/
echo "Defina as pessoas envolvidas no Projeto $projeto"
usuarios
}
#########################################################################
moveprojeto() {
echo -n "Digite o nome do Projeto ---> "
read mvprojeto
mv -rf /dados/Projetos/Projetos\ Ativos/$mvprojeto /dados/Projetos/Projetos\ Homologados/
echo "Projeto Movido..."
fim
}
fim() {
echo "Obrigado volte sempre!!!"
`exit`
}
usuarios (){
echo -n "Digite um usuario para acesso ao diretorio $projeto ----> o Padrao: (nome-sobrenome)"
read usuario
cd $raizprojeto
setfacl -m u:$usuario:rx $projeto
echo -n "Usuario adicionando ao Projeto $projeto"
Principal
}
JAVA(){
mkdir Desenvolvimento/JAVA
mkdir Desenvolvimento/JAVA/configApl
mkdir Desenvolvimento/JAVA/JavaSource
mkdir Desenvolvimento/JAVA/WebContent
mkdir Desenvolvimento/JAVA/Database
chown -R root.desenv JAVA/*
}
HTML(){
mkdir Desenvolvimento/HTML
mkdir Desenvolvimento/HTML/css
mkdir Desenvolvimento/HTML/imagens
mkdir Desenvolvimento/HTML/js
chown -R root.desenv HTML/*
}
VB(){
mkdir Desenvolvimento/VB
chown -R root.desenv VB/
}
ASP(){
mkdir Desenvolvimento/ASP
chown -R root.desenv ASP/
}
FLEX(){
mkdir Desenvolvimento/FLEX
mkdir Desenvolvimento/FLEX/configApl
mkdir Desenvolvimento/FLEX/JavaSource
mkdir Desenvolvimento/FLEX/WebContent
mkdir Desenvolvimento/FLEX/Database
chown -R root.desenv FLEX/*
}
Principal