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 Linux Mint)

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 Linux Mint)

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 Linux Mint)

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 Linux Mint)

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






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts