Last active
January 18, 2020 23:49
-
-
Save bartier/dc55f4a4e28ac75b03d159bb7602eb22 to your computer and use it in GitHub Desktop.
[Group User Permissions] - Shell Script #linux
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
opcoes_principal() | |
{ | |
printf "######## GUP 1.0 ######## by @bartier\n\n" | |
printf "1 - Grupo\n" | |
printf "2 - Usuário\n" | |
printf "3 - Permissão de acesso\n" | |
printf "4 - Sair\n" | |
} | |
opcoes_permissao() | |
{ | |
printf "Selecione a permissão desejada:\n" | |
printf "1 - Nenhuma permissão\n" | |
printf "2 - Execução\n" | |
printf "3 - Escrita\n" | |
printf "4 - Escrita e execução\n" | |
printf "5 - Leitura\n" | |
printf "6 - Leitura e execução\n" | |
printf "7 - Leitura, escrita\n" | |
printf "8 - Leitura, escrita e execução\n" | |
} | |
opcao_invalida() | |
{ | |
printf "\nOpção inválida!\n" | |
sleep 0.5 | |
clear | |
} | |
alterar_permissao() | |
{ | |
OPCAO=$1 # opcao de permissao escolhida | |
TIPO=$2 # dono=g grupo=g outros=o | |
case $OPCAO in | |
"1" ) # nenhuma permissao | |
chmod $TIPO= $caminho | |
;; | |
"2" ) # execucao | |
chmod $TIPO=x $caminho | |
;; | |
"3" ) # escrita | |
chmod $TIPO=w $caminho | |
;; | |
"4" ) # escrita, execucao | |
chmod $TIPO=wx $caminho | |
;; | |
"5" ) # leitura | |
chmod $TIPO=r $caminho | |
;; | |
"6" ) # leitura, execucao | |
chmod $TIPO=rx $caminho | |
;; | |
"7" ) # leitura, escrita | |
chmod $TIPO=rw $caminho | |
;; | |
"8" ) # leitura, escrita, execucao | |
chmod $TIPO=rwx $caminho | |
;; | |
*) | |
opcao_invalida | |
;; | |
esac | |
} | |
valida_caminho() | |
{ | |
if [ -f $caminho ] || [ -d $caminho ] ; then | |
printf "Caminho validado.\n\n" | |
fi | |
} | |
criar_grupo() | |
{ | |
clear | |
printf "Insira o nome do grupo a ser criado:\n" | |
read nomeGrupo; | |
groupadd $nomeGrupo | |
printf "Grupo: $nomeGrupo criado.\n" | |
sleep 1 | |
} | |
alterar_nome_grupo() | |
{ | |
clear | |
printf "Insira o nome do grupo desejado:\n" | |
read nomeGrupo; | |
printf "Insira o novo nome do grupo:\n" | |
read novoNomeGrupo; | |
groupmod --new-name $novoNomeGrupo $nomeGrupo | |
printf "Grupo $nomeGrupo alterado para $novoNomeGrupo\n" | |
sleep 1 | |
} | |
alterar_senha_usuario() | |
{ | |
clear | |
printf "Insira o nome do usuário:" | |
read nomeUsuario; | |
passwd $nomeUsuario | |
printf "Criado/alterado a senha de $nomeUsuario" | |
sleep 1 | |
} | |
criar_usuario() | |
{ | |
clear | |
printf "Insira o nome do usuário a ser criado:\n" | |
read nomeUsuario; | |
useradd -m $nomeUsuario | |
printf "Usuário $nomeUsuario criado." | |
sleep 1 | |
} | |
excluir_usuario() | |
{ | |
clear | |
printf "Insira o usuário para ser excluído com a home:\n" | |
read nomeUsuario; | |
userdel -rf $nomeUsuario | |
printf "Usuário $nomeUsuario excluído com a /home" | |
sleep 1 | |
} | |
modificar_dono() | |
{ | |
clear | |
printf "Insira o caminho:\n" | |
read caminho; | |
valida_caminho | |
printf "Insira o novo dono desse caminho:\n" | |
read novoDono; | |
chown --recursive $novoDono $caminho | |
printf "Dono de $caminho alterado para $novoDono" | |
sleep 1 | |
} | |
modificar_grupo() | |
{ | |
clear | |
printf "Insira o caminho:\n" | |
read caminho; | |
valida_caminho | |
printf "Insira o novo grupo desse caminho:\n" | |
read novoGrupo; | |
chgrp -f --recursive $novoGrupo $caminho | |
printf "Grupo de $caminho alterado para $novoGrupo" | |
sleep 1 | |
} | |
modificar_permissoes() | |
{ | |
clear | |
printf "Insira o diretório/arquivo:\n" | |
read caminho; | |
valida_caminho | |
while true | |
do | |
clear | |
printf "Diretório/arquivo escolhido: $caminho\n" | |
printf "1 - Dono\n" | |
printf "2 - Grupo\n" | |
printf "3 - Outros\n" | |
printf "4 - Voltar para menu principal\n" | |
read opcao; | |
case $opcao in | |
"1") # dono | |
clear | |
opcoes_permissao | |
read opcao; | |
alterar_permissao $opcao u | |
;; | |
"2") # grupo | |
clear | |
opcoes_permissao | |
read opcao; | |
alterar_permissao $opcao g | |
;; | |
"3") # outros | |
clear | |
opcoes_permissao | |
read opcao; | |
alterar_permissao $opcao o | |
;; | |
"4") # voltar | |
break | |
;; | |
*) | |
opcao_invalida | |
;; | |
esac | |
done | |
} | |
### | |
# main | |
### | |
while true | |
do | |
clear | |
opcoes_principal | |
read opcao; | |
case $opcao in | |
"1") # grupo | |
while true | |
do | |
clear | |
printf "1 - Criar Grupo\n" | |
printf "2 - Alterar o nome de um grupo já criado\n" | |
printf "3 - Voltar para menu principal\n" | |
read opcao; | |
case $opcao in | |
"1") | |
criar_grupo | |
;; | |
"2") # alterar o nome de um grupo já criado | |
alterar_nome_grupo | |
;; | |
"3") # voltar para o menu principal | |
break | |
;; | |
*) | |
opcao_invalida | |
;; | |
esac | |
done | |
;; | |
"2") # usuario | |
while true | |
do | |
clear | |
printf "1 - Criar usuário\n" | |
printf "2 - Criar/Alterar senha de usuário existente\n" | |
printf "3 - Excluir usuário junto com seu diretório home\n" | |
printf "4 - Voltar para menu principal\n" | |
read opcao; | |
case $opcao in | |
"1") | |
criar_usuario | |
;; | |
"2") # criar ou alterar senha de usuário existente | |
alterar_senha_usuario | |
;; | |
"3") # excluir usuário junto com seu diretório home | |
excluir_usuario | |
;; | |
"4") # voltar para o menu principal | |
break | |
;; | |
*) | |
opcao_invalida | |
;; | |
esac | |
done | |
;; | |
"3") # permissao de acesso | |
while true | |
do | |
clear | |
printf "1 - Modificar o dono de um arquivo ou diretório\n" | |
printf "2 - Modificar o grupo dono de um arquivo ou diretório\n" | |
printf "3 - Modificar as permissões de um arquivo ou diretório\n" | |
printf "4 - Voltar para menu principal\n" | |
read opcao; | |
case $opcao in | |
"1") # modificar o dono de um arquivo ou diretório | |
modificar_dono | |
;; | |
"2") # modificar o grupo dono de um arquivo ou diretório | |
modificar_grupo | |
;; | |
"3") # modificar as permissões de um arquivo ou diretório | |
modificar_permissoes | |
;; | |
"4") # voltar para o menu principal | |
break | |
;; | |
*) | |
opcao_invalida | |
;; | |
esac | |
done | |
;; | |
"4") # sair do shell script | |
clear | |
exit | |
;; | |
*) | |
opcao_invalida | |
;; | |
esac | |
done |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment