Converter permissões [RESOLVIDO]

1. Converter permissões [RESOLVIDO]

Lucas
lucas03

(usa Ubuntu)

Enviado em 13/11/2012 - 13:55h

Fala galera
to com um problema aqui pra resolver, e to precisando de uma ajuda ai, se alguem pude rsrsr
preciso criar um script que converta permissões de octal para texto e vice versa
ai ta um exemplo de como acardito que tem que ser...
-------------
1 - Octal para Texto
2 - Texto para Octal
Escolha sua opção: 1
Digite o valor de uma permissão em modo octal: 777

Octal: 777
Texto: rwxrwxrwx
-------------
e isso é oque concegui
----------------------------
#!/bin/bash
echo " Escolha com opcao voce deseja (a ou b)
a) Octal para texto
b) Texto para octal "
read resp

if [ $resp == a ] ;then

#aqui que tenho que colocar as opções

elif [ $resp == b ] ;then

#aqui que tenho que colocar as opcoes
fi
-------------------------------

mais nao to conseguindo encontrar uma logica, se alguém puder da uma ajuda ai fico agradecido.
desde ja obrigado galera ...
Obrigado!!!


  


2. Converte Permissões

Rafael Ancinelo Adolpho
radolpho

(usa Ubuntu)

Enviado em 13/11/2012 - 15:46h

Olá.

Postei um script shell com o titulo "Converte Permissões" aqui no VOL que faz o que você precisa.

Segue abaixo o fonte:

#!/bin/bash
#Autor radolpho 2012
echo " Escolha com opcao voce deseja (a ou b)
a) Octal para texto
b) Texto para octal "
read resp

if [ $resp == a ] ;then #Conversao de OCTAL para TEXTUAL
echo "Digite a permissao em OCTAL Ex. 776"
read poct

#Permissao de user
if [ ${poct:0:1} == 0 ] ;then
u="---"
elif [ ${poct:0:1} == 1 ] ;then
u="--x"
elif [ ${poct:0:1} == 2 ] ;then
u="-w-"
elif [ ${poct:0:1} == 3 ] ;then
u="-wx"
elif [ ${poct:0:1} == 4 ] ;then
u="r--"
elif [ ${poct:0:1} == 5 ] ;then
u="r-x"
elif [ ${poct:0:1} == 6 ] ;then
u="rw-"
elif [ ${poct:0:1} == 7 ] ;then
u="rwx"
fi

#Permissao de group
if [ ${poct:1:1} == 0 ] ;then
g="---"
elif [ ${poct:1:1} == 1 ] ;then
g="--x"
elif [ ${poct:1:1} == 2 ] ;then
g="-w-"
elif [ ${poct:1:1} == 3 ] ;then
g="-wx"
elif [ ${poct:1:1} == 4 ] ;then
g="r--"
elif [ ${poct:1:1} == 5 ] ;then
g="r-x"
elif [ ${poct:1:1} == 6 ] ;then
g="rw-"
elif [ ${poct:1:1} == 7 ] ;then
g="rwx"
fi


#Permissao de other
if [ ${poct:2:1} == 0 ] ;then
o="---"
elif [ ${poct:2:1} == 1 ] ;then
o="--x"
elif [ ${poct:2:1} == 2 ] ;then
o="-w-"
elif [ ${poct:2:1} == 3 ] ;then
o="-wx"
elif [ ${poct:2:1} == 4 ] ;then
o="r--"
elif [ ${poct:2:1} == 5 ] ;then
o="r-x"
elif [ ${poct:2:1} == 6 ] ;then
o="rw-"
elif [ ${poct:2:1} == 7 ] ;then
o="rwx"
fi

echo "Conversao de OCTAL para TEXTUAL\n"
echo $poct" >>>> "$u$g$o

elif [ $resp == b ] ;then #Conversao de TEXTUAL para OCTAL

echo "Digite a permissao em TEXTUAL Ex. rwxrw--w-"
read ptxt

#Permissao de user
if [ ${ptxt:0:3} == "---" ] ;then
u="0"
elif [ ${ptxt:0:3} == "--x" ] ;then
u="1"
elif [ ${ptxt:0:3} == "-w-" ] ;then
u="2"
elif [ ${ptxt:0:3} == "-wx" ] ;then
u="3"
elif [ ${ptxt:0:3} == "r--" ] ;then
u="4"
elif [ ${ptxt:0:3} == "r-x" ] ;then
u="5"
elif [ ${ptxt:0:3} == "rw-" ] ;then
u="6"
elif [ ${ptxt:0:3} == "rwx" ] ;then
u="7"
fi

#Permissao de group
if [ ${ptxt:3:3} == "---" ] ;then
g="0"
elif [ ${ptxt:3:3} == "--x" ] ;then
g="1"
elif [ ${ptxt:3:3} == "-w-" ] ;then
g="2"
elif [ ${ptxt:3:3} == "-wx" ] ;then
g="3"
elif [ ${ptxt:3:3} == "r--" ] ;then
g="4"
elif [ ${ptxt:3:3} == "r-x" ] ;then
g="5"
elif [ ${ptxt:3:3} == "rw-" ] ;then
g="6"
elif [ ${ptxt:3:3} == "rwx" ] ;then
g="7"
fi


#Permissao de other
if [ ${ptxt:6:3} == "---" ] ;then
o="0"
elif [ ${ptxt:6:3} == "--x" ] ;then
o="1"
elif [ ${ptxt:6:3} == "-w-" ] ;then
o="2"
elif [ ${ptxt:6:3} == "-wx" ] ;then
o="3"
elif [ ${ptxt:6:3} == "r--" ] ;then
o="4"
elif [ ${ptxt:6:3} == "r-x" ] ;then
o="5"
elif [ ${ptxt:6:3} == "rw-" ] ;then
o="6"
elif [ ${ptxt:6:3} == "rwx" ] ;then
o="7"
fi

echo "Conversao de TEXTUAL para OCTAL\n"
echo $ptxt" >>>> "$u$g$o

fi



3. Re: Converter permissões [RESOLVIDO]

Lucas
lucas03

(usa Ubuntu)

Enviado em 14/11/2012 - 14:04h

Boa tarde rodholpo
funcionou perfeitamente,
mas antes de colocar como respondido gostaria de saber qual a função dos numeros
ex: :3:3
:0:1
:1:1


4. Re: Converter permissões [RESOLVIDO]

Rafael Ancinelo Adolpho
radolpho

(usa Ubuntu)

Enviado em 14/11/2012 - 18:16h

Certo. Eu tenho a variável $poct (ela vai receber a permissão que ue digitar). Digamos que eu digite 774.

Então $poct valerá 774.

Quando eu faço ${poct:2:1} estou dizendo para o script pegar '1' caractere[s] à partir da posição '2' da variável $poct. No exemplo acima é o digito '4'.

Entenda-se assim: ${variavel:Posicao:Tamanho} = Pega 'Tamanho' caracteres a partir da posição 'Posicao'.

Espero que tenha ficado claro.

Até mais.


5. Sugestões

Perfil removido
removido

(usa Nenhuma)

Enviado em 15/11/2012 - 15:13h

Radolpho pense na possibilidade de refatorar seu script usando case ao invés de elif...
BOA SORTE!!!






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts