Script de poderes root sendo executado como usuario comun ou por tras do sistema[RESOLVIDO]

1. Script de poderes root sendo executado como usuario comun ou por tras do sistema[RESOLVIDO]

Jean César
dark777

(usa Slackware)

Enviado em 10/08/2017 - 13:18h

wiki.anon

Pessoal eu estava habilitando o módulo zram no slackware kernel 4.9.40 x64 peguei o arquivo de condiguração aqui:

https://github.com/otzy007/enable-zRam-in-Slackware

porem eu criei um script que altera o fstab caso o modulo nao seja levantado entao ele faria uma copia do fstab e alteraria o mesmo copiando os dados novamente porem se eu logar como root no terminal usando o runlevel 3 blz ele funfa legal altera belezinha, mas se eu configurar o runlevel 4 pra iniciar o X diretamente ou mesmo logar como usuario comun o mesmo nao acontece queria saber como falo para que o mesmo realize a operação de alteração e copia do fstab por trás do sistema sem eu precisar logar como root?

o script é este aqui:

#!/bin/sh

NULL=/dev/null
FSTAB=/etc/fstab
ZRAM=$(lsmod | grep zram | awk '{print $4}')
STRZRAM=$( grep -ri "/dev/zram0" $FSTAB | awk '{print $1}')
DEVZRAM=$(ls -l /dev/zram0 | awk '{print $10}')
DISK=$(mount | grep /dev/sda | awk '{print $1}')
SYSARQ=$(file -s $DISK | awk '{print $5}')
NOTNULL=$(grep -ri $DISK $FSTAB | awk '{print $1}')

if [[ $ZRAM > $NULL && $STRZRAM > $NULL ]]; then
echo -e "\n# Top priority for $STRZRAM configured\n"

elif [[ $ZRAM > $NULL && $STRZRAM < $NULL && $DISK > $NULL ]]; then

cp $FSTAB $FSTAB.old
echo "/dev/zram0 none swap sw,pri=50 0 0" > $FSTAB
cat $FSTAB.old >> $FSTAB
rm -rf $FSTAB.old
cat $FSTAB
echo -e "$DEVZRAM configured sucessfull\n"

elif [[ $ZRAM > $NULL && ! -f $FSTAB ]]; then

echo -e "\nUnable to configure compression $ZRAM\n$FSTAB does not exist.\nby recreating settings.\n"
echo "$DEVZRAM none swap sw,pri=50 0 0 " >> $FSTAB
echo "$DISK / $SYSARQ defaults 1 1 " >> $FSTAB
echo "#/dev/cdrom /mnt/cdrom auto noauto,owner,ro,comment=x-gvfs-show 0 0 " >> $FSTAB
echo "/dev/fd0 /mnt/floppy auto noauto,owner 0 0 " >> $FSTAB
echo "devpts /dev/pts devpts gid=5,mode=620 0 0 " >> $FSTAB
echo "proc /proc proc defaults 0 0 " >> $FSTAB
echo "tmpfs /dev/shm tmpfs defaults 0 0 " >> $FSTAB

echo -e "$FSTAB configured sucessfull\n"
cat $FSTAB
fi

só tive que mudar isso
ZRAM=$(lsmod | grep zram | awk '{print $4}')
para isso
ZRAM=$(ls -l /dev/zram0 | awk '{print $10}')


  


2. Re: Script de poderes root sendo executado como usuario comun ou por tras do sistema[RESOLVIDO]

Rodrigo Albuquerque Serafim
raserafim

(usa Slackware)

Enviado em 10/08/2017 - 14:47h

dark777 escreveu:

porem eu criei um script que altera o fstab caso o modulo nao seja levantado entao ele faria uma copia do fstab e alteraria o mesmo copiando os dados novamente porem se eu logar como root no terminal usando o runlevel 3 blz ele funfa legal altera belezinha, mas se eu configurar o runlevel 4 pra iniciar o X diretamente ou mesmo logar como usuario comun o mesmo nao acontece queria saber como falo para que o mesmo realize a operação de alteração e copia do fstab por trás do sistema sem eu precisar logar como root?

você pode colocar esse seu script no diretório "/etc/rc.d". por exemplo, "/etc/rc.d/rc.alterafstab";
e então roda esse seu script por meio de uma chamada no arquivo "/etc/rc.d/rc.local";

todos os scripts em rc.d são executados em modo root.

síntese:
- coloca seu script em "/etc/rc.d/rc.alterafstab";
- edita o arquivo "/etc/rc.d/rc.local" colocando uma linha chamando o seu script (por exemplo: "/etc/rc.d/rc.alterafstab");




3. Re: Script de poderes root sendo executado como usuario comun ou por tras do sistema[AJUDA]

Jean César
dark777

(usa Slackware)

Enviado em 10/08/2017 - 15:33h

raserafim escreveu:

dark777 escreveu:

porem eu criei um script que altera o fstab caso o modulo nao seja levantado entao ele faria uma copia do fstab e alteraria o mesmo copiando os dados novamente porem se eu logar como root no terminal usando o runlevel 3 blz ele funfa legal altera belezinha, mas se eu configurar o runlevel 4 pra iniciar o X diretamente ou mesmo logar como usuario comun o mesmo nao acontece queria saber como falo para que o mesmo realize a operação de alteração e copia do fstab por trás do sistema sem eu precisar logar como root?

você pode colocar esse seu script no diretório "/etc/rc.d". por exemplo, "/etc/rc.d/rc.alterafstab";
e então roda esse seu script por meio de uma chamada no arquivo "/etc/rc.d/rc.local";

todos os scripts em rc.d são executados em modo root.

síntese:
- coloca seu script em "/etc/rc.d/rc.alterafstab";
- edita o arquivo "/etc/rc.d/rc.local" colocando uma linha chamando o seu script (por exemplo: "/etc/rc.d/rc.alterafstab");



em relação a isso os parametros deste script eu criei uma função no arquivo rc.zram e chamo ele no rc.S logo apos levantar todos os modulos do sistema e suas dependencias mas nao faz a alteração...

wiki.anon


4. Re: Script de poderes root sendo executado como usuario comun ou por tras do sistema[RESOLVIDO]

Rodrigo Albuquerque Serafim
raserafim

(usa Slackware)

Enviado em 10/08/2017 - 15:51h

dark777 escreveu:


em relação a isso os parametros deste script eu ciei uma função no arquivo rc.zram e chamo ele no rc.S logo apos levantar todos os modulos do sistema e suas dependencias mas nao faz a alteração...

a princípio acho que deveria ter funcionado também com as chamadas em rc.S.

no entanto, no Slackware, a maneira "padrão" de se fazer chamadas à scripts adicionados pelo usuário é por meio do arquivo "rc.local" -- de modo a não alterar os arquivos padrão do sistema.

verifique se você, de fato, deu permissão de execução ao seu arquivo de script. se o seu arquivo de script não tiver permissão de execução, logo, a chamada em "rc.local" não terá permissões para rodar tal script.






5. Re: Script de poderes root sendo executado como usuario comun ou por tras do sistema[RESOLVIDO]

Jean César
dark777

(usa Slackware)

Enviado em 10/08/2017 - 16:11h

raserafim escreveu:

dark777 escreveu:


em relação a isso os parametros deste script eu ciei uma função no arquivo rc.zram e chamo ele no rc.S logo apos levantar todos os modulos do sistema e suas dependencias mas nao faz a alteração...

a princípio acho que deveria ter funcionado também com as chamadas em rc.S.

no entanto, no Slackware, a maneira "padrão" de se fazer chamadas à scripts adicionados pelo usuário é por meio do arquivo "rc.local" -- de modo a não alterar os arquivos padrão do sistema.

verifique se você, de fato, deu permissão de execução ao seu arquivo de script. se o seu arquivo de script não tiver permissão de execução, logo, a chamada em "rc.local" não terá permissões para rodar tal script.

em relação a perissao eu usei $chmod 755 /etc/rc.d/rc.zram
eu tinha feito a chamada do mesmo em rc.local mas tambem nao alterou alias eu tinha colocado em rc.local para ele startar as configuraçoes do zram e tambem nao tinha funfado... achei estranho isso...







wiki.anon


6. Re: Script de poderes root sendo executado como usuario comun ou por tras do sistema[RESOLVIDO]

Rodrigo Albuquerque Serafim
raserafim

(usa Slackware)

Enviado em 10/08/2017 - 16:30h

dark777 escreveu:

raserafim escreveu:


verifique se você, de fato, deu permissão de execução ao seu arquivo de script. se o seu arquivo de script não tiver permissão de execução, logo, a chamada em "rc.local" não terá permissões para rodar tal script.


em relação a perissao eu usei $chmod 755 /etc/rc.d/rc.zram
eu tinha feito a chamada do mesmo em rc.local mas tambem nao alterou alias eu tinha colocado em rc.local para ele startar as configuraçoes do zram e tambem nao tinha funfado... achei estranho isso...

pois é... me parece que se o script funciona mesmo, tudo deveria funcionar...

sugiro dois testes:
- dê permissão por meio do comando (como root): # chmod +x /etc/rc.d/rc.zram
- execute o script em um terminal (como root): # /etc/rc.d/rc.zram

se o script executar corretamente e houver corretamente a sua chamada no arquivo "rc.local", então, assim acredito, tudo deveria funcionar..


7. Re: Script de poderes root sendo executado como usuario comun ou por tras do sistema[RESOLVIDO]

Jean César
dark777

(usa Slackware)

Enviado em 10/08/2017 - 16:53h

raserafim escreveu:

dark777 escreveu:

raserafim escreveu:


verifique se você, de fato, deu permissão de execução ao seu arquivo de script. se o seu arquivo de script não tiver permissão de execução, logo, a chamada em "rc.local" não terá permissões para rodar tal script.


em relação a perissao eu usei $chmod 755 /etc/rc.d/rc.zram
eu tinha feito a chamada do mesmo em rc.local mas tambem nao alterou alias eu tinha colocado em rc.local para ele startar as configuraçoes do zram e tambem nao tinha funfado... achei estranho isso...

pois é... me parece que se o script funciona mesmo, tudo deveria funcionar...

sugiro dois testes:
- dê permissão por meio do comando (como root): # chmod +x /etc/rc.d/rc.zram
- execute o script em um terminal (como root): # /etc/rc.d/rc.zram

se o script executar corretamente e houver corretamente a sua chamada no arquivo "rc.local", então, assim acredito, tudo deveria funcionar..


entao fiz isso e o mesmo executa mas em rc.local nao alterou o fstab nao e o unico lugar que consegui fazer a função modificar o fstab foi colocando em /etc/profile e fazendo o bashrc executar o /etc/profile dessa forma ele fez mas só altera se eu me logar como root..

wiki.anon