Não consigoo rodar scripts shell nos clientes NIS

1. Não consigoo rodar scripts shell nos clientes NIS

Thiago
thiagodvp

(usa Slackware)

Enviado em 04/01/2008 - 16:10h

Ola pessoal,

Estou encontrando problemas na hora de rodar um shell em um cliente NIS.
No servidor eu consigo rodar o shell tranquilo com qualquer usuario,jah no cliente eu so consigo rodar com usuario root dentro do /root porque dentro da pasta do cliente NIS eu nao consigo.
Provavelmente deve ser problema de permissao mas nao consigo achar aonde.
Usuarios locais conseguem rodar o shel dentro de seu home,jah os usuario do NIS nao.
Ta aparecendo o seguinte erro
-bash: ./scriptshell: /bin/bash: bad interpreter: Permissão negada

Tenho certeza que o script tah rodando pois eh um script simples soh pra testes
#!/bin/bash
echo $USER

Jah olhei as permissoes do /bin/bash tanto no cliente quanto no servidor e tah tudo certo (permissoes rx pra todos e wrx pro dono)
Jah dei o chmod a+x scriptshell
jah olhei pra onde ta setando a variavel de ambiente do shell (ta setando pro /bin/bash)
Jah tentei mudar o #!/bin/bash do scriptshell para #!/bin/sh e da o msm problema
Quando rodo o script pelo sh scriptshell ele roda, mas preciso que ele rode pelo ./scriptshell pois esse script vai ficar dentro do /home/$USER/.kde/Autostart

Espero que vcs possam me ajudar
Vlw


  


2. Re: Não consigoo rodar scripts shell nos clientes NIS

Elgio Schlemer
elgio

(usa OpenSuSE)

Enviado em 04/01/2008 - 16:43h

Como tu enviou o script para os clientes?

Eu tive este problema quando salvei um script em uma pen. Como a pen era FAT16 o Linux automaticamente converteu script, que é na verade TEXTO PURO, para texto DOS.

Texto DOS: cada linha termina com CR+LF (13+10 em decimal)

Texto Linux: cada linha termina apanes com LF.

elgio@mate:~$ ls -la lixo*.sh
-rwxr-xr-x 1 elgio elgio 24 2008-01-04 16:41 lixo1.sh
-rwxr-xr-x 1 elgio elgio 21 2008-01-04 16:40 lixo.sh
elgio@mate:~$

elgio@mate:~$ ./lixo.sh
OK
elgio@mate:~$ ./lixo1.sh
bash: ./lixo1.sh: /bin/bash^M: interpretador inválido: Arquivo ou diretório inexistente
elgio@mate:~$

lixo1.sh é IGUAL ao lixo, só que convertido para DOS.

usando o TR para converter para texto LINUX:

elgio@mate:~$ cat lixo1.sh | tr -d "\r" > lixo2.sh
elgio@mate:~$ ./lixo2.sh
elgio@mate:~$ chmod a+x lixo2.sh
elgio@mate:~$ ./lixo2.sh
OK
elgio@mate:~$




3. Outras possibilidades

Elgio Schlemer
elgio

(usa OpenSuSE)

Enviado em 04/01/2008 - 16:48h

Veja se nos clientes o home não está montado com noexec.

Em muitos casos é ALTAMENTE RECOMENDADO QUE ESTEJA, mas no teu caso um noexec significa que nada que esteja no home pode ser executado.

root@mate:/media/hda1/temp# ls -la
total 12
drwxr-xr-x 2 root root 4096 2008-01-04 16:46 .
drwxr-xr-x 22 root root 4096 2008-01-04 16:46 ..
-rwxr-xr-x 1 root root 21 2008-01-04 16:46 lixo.sh

root@mate:/media/hda1/temp#
root@mate:/media/hda1/temp# mount |grep hda1
/dev/hda1 on /media/hda1 type ext3 (rw)

Veja, meu exemplo, hda1, montado normal.
Remontando com o noexec:

root@mate:/media/hda1/temp#
root@mate:/media/hda1/temp# mount -o noexec -o remount /media/hda1/

root@mate:/media/hda1/temp# mount |grep hda1
/dev/hda1 on /media/hda1 type ext3 (rw,noexec)

Veja, agora esta com noexec.
Tentando executar o script:

root@mate:/media/hda1/temp#
root@mate:/media/hda1/temp# ./lixo.sh
-su: ./lixo.sh: /bin/bash: interpretador inválido: Permissão negada

Igual ao teu problema.
Tornando a montar sem o noexec:

root@mate:/media/hda1/temp#
root@mate:/media/hda1/temp# mount -o exec -o remount /media/hda1/

root@mate:/media/hda1/temp# ./lixo.sh
OK


Agora pensei que o MAIS PROVAVEL é que teu problema seja ESTE e não o anterior que mencionei




4. Re: Não consigoo rodar scripts shell nos clientes NIS

Thiago
thiagodvp

(usa Slackware)

Enviado em 04/01/2008 - 16:52h

Não enviei o script para os clientes. Fiz o script pela maquina cliente.
Mas se quiser enviar um script para um cliente eh soh usar o comando scp.

Acho que esse não eh meu problema, pois fiz o script em uma maquina linux e não passou por nenhum pendrive.
Consigo executar o script com usuario root dentro da pasta root. Não consigo executa-lo no home de um usuario que esta montado no NIS.
Tambem consigo executa-lo pelo sh scriptshell.

Mas nesmo assim vlw pela dica, não sabia dessa parada que acontece com o script.


5. Deve ser a segunda mesmo

Thiago
thiagodvp

(usa Slackware)

Enviado em 04/01/2008 - 16:57h

No meu fstab eu não uso o noexec mas da uma olhada aí que deve ser alguma coisa parecida que to usando.


192.168.30.28:/home /home nfs rw,bg,tcp,rsize=32768,wsize=32768,hard,nointr,noac,timeo=600,user,auto 0 0

Se não for pedir mto gostaria que me explicasse alguns desses paremetros que estou usando no fstab pois quando cheguei aki ele jah estava montado desse jeito e naum sei oq eles significam.

Vlw


6. BINGO!

Elgio Schlemer
elgio

(usa OpenSuSE)

Enviado em 04/01/2008 - 17:05h

O user é o mesmo que noexec,nosuid e nodev!!

É exatamente este o problema!

Volto a lembrar, é MUITO MAIS SEGURO ter estas opcoes. Se for tirar, tire o user mas insira pelo menos o nodev e nosuid



7. Vlw

Thiago
thiagodvp

(usa Slackware)

Enviado em 08/01/2008 - 08:54h

Resolveu meu problema

Abraços






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts