Autor Tópico: Como fazer sudo su automatico  (Lida 12104 vezes)

Offline koga021

  • Usuário Ubuntu
  • *
  • Mensagens: 12
    • Ver perfil
Como fazer sudo su automatico
« Online: 15 de Janeiro de 2009, 17:00 »
Boa tarde to com seguinte problema
tenho um scripot de backup que faz tudo certinho e nao pede senha de nada,
porem no final quero botar o computaodr para desligar

entaun logo no final botei
halt
shutdow
poweroff

e naun funcionava
e com isso rodei no shel
e la dava a menssagem que precisava ser root para desligar

fui la eu de whereis halt
e mudei a permiçao para 777 do halt, mas mesmo assim continua dando, vc precisa ser  root
para desligar o computador no final do script

queria ver se existe algo do tipo

senha='xyz'
sudo su << $senha
e executa o script e desliga.

tem como fazer isso?
script abaixo
Citar
#!/bin/bash

#arquivos para backup
arquivos='/home/elsa-rj/douglas2 /home/elsa-rj/ELSA'

#espaço em branco antes de $(date --i)
data="$(date --i)"


#destino e onde serao armazenado o tar.gz enquanto nao e enviado ao servidor
destino="/home/elsa-rj/douglas/$data"

#troca de valores
alvo=$destino

#entrando na pasta o qual sera o backup
cd /home/elsa-rj/douglas/
chmod 777 /home/elsa-rj/douglas/
mkdir $alvo
chmod 777 $alvo
tar -czvf $data.tar.gz $arquivos
chmod 777 $alvo.tar.gz

#########fim da compactaçao#################

#########Envio via FTP#######################
# Dados do arquivo de backup

###################ALTERAR AKI LOGIN,SENHA IP####################
# Dados do servidor FTP
HOST_FTP='157.86.41.211'
USUARIO_FTP='servidor'
SENHA_FTP='servidor'

# A partir daqui não precisa mais editar.
# put local de origem   nome no servidor
# Acessa o FTP e coloca os arquivos
ftp -in << EOF
open $HOST_FTP
user $USUARIO_FTP $SENHA_FTP
cd /servidor
put $alvo.tar.gz $data.tar.gz
bye
EOF
echo "apagando arquivo compactado"
rm $alvo.tar.gz
rmdir *
echo "Backup efetuado com sucesso"

#halt para desligar
halt

Offline fpissarra

  • Usuário Ubuntu
  • *
  • Mensagens: 246
    • Ver perfil
    • Lost in the e-Jungle
Re: Como fazer sudo su automatico
« Resposta #1 Online: 20 de Janeiro de 2009, 16:36 »
Olha só... não sei se há uma maneira ou não, mas acredito que isso é contra a filosofia do uso do sudo. O propósito é dar segurança ao sistema, pedindo a senha do sudoer para que hava uma intervenção humana em questões que podem causar problemas ao sistema.

Se "bypassarmos" este esquema, para que então existe o sudo?

[[]]s
Fred

Offline krlsedu

  • Usuário Ubuntu
  • *
  • Mensagens: 119
  • Ubuntu e Grêmio, nada pode ser melhor!!!!!!!!
    • Ver perfil
    • SeBrasil
Re: Como fazer sudo su automatico
« Resposta #2 Online: 02 de Fevereiro de 2009, 10:20 »
Olá, como você executa este script, automaticamente, ou manual, se for manual tente executar com logue no terminal com sudo su, e depois execute o script.
Atenciosamente Carlos Eduardo!
A união faz o Ubuntu!!!

Offline deisefontoura

  • Usuário Ubuntu
  • *
  • Mensagens: 10
    • Ver perfil
Re: Como fazer sudo su automatico
« Resposta #3 Online: 05 de Fevereiro de 2009, 15:33 »
Oi eu estou querendo a mesma coisa. Eu quero fazer autenticação do linux no php através de shell scripts,
mas como eu faço um shell script que rode automático (não vai existir a possibilidade de digitar a senha em linha de comando).
Esses arquivos vão ser gerados e apagados depois que o login for efetuado, mas preciso carregar a senha do usuário,
e que o shell script use isso sem que apareça o Password: pra digitar.
Deu pra entender?

Offline dudu_ubuntun

  • Usuário Ubuntu
  • *
  • Mensagens: 507
    • Ver perfil
    • O Tempo do Mundo
Re: Como fazer sudo su automatico
« Resposta #4 Online: 05 de Fevereiro de 2009, 18:45 »
koga021,

isso deve resolver teu problema:

http://www.danilocesar.com/blog/2007/06/08/sudo-sem-senha-para-comandos-essenciais/

procure no google por "sudo sem senha"


abs

Offline Felix

  • Equipe Ubuntu
  • Usuário Ubuntu
  • *****
  • Mensagens: 3.068
    • Ver perfil
    • Alexsandro Felix
Re: Como fazer sudo su automatico
« Resposta #5 Online: 05 de Fevereiro de 2009, 19:26 »
Talvez isso possa ajudar também:

Citar
Em alguns casos há um usuário que tem acesso ao nosso servidor, mas não podemos/queremos/devemos dar acesso de root ao mesmo, porém ele necessita executar alguns comandos, uma alternativa a isso é instalar o comando sudo para auxiliá-lo, eu costumo seguir da seguinte forma:

1. Crio o usuário:

#add user usuario

2. Instalo o programa sudo:

#ap-get update && apt-get install sudo

    Descompactando sudo (de …/sudo_1.6.8p12-4_i386.deb) …
    Instalando sudo (1.6.8p12-4) …
    No /etc/sudoers found… creating one for you.

3. Edito o arquivo sudoers, criado após a instalação adicionando a linha referente ao usuário e aos comandos que ele poderá executar, mas que pedem nível de superusuário:

#vim /etc/sudoers

    usuario ALL=NOPASSWD: /usr/sbin/arp, /usr/sbin/arping

4. Para ajudar o usuário, edito o .bashrc dele para que ele não precise digitar o comando sudo nos comandos necessários, dessa forma:

#vim .bashrc

    alias arp=’sudo arp’

    alias arping=’sudo arping’

Pronto, mais uma receita simples e fácil e que é muito útil para mim no dia-a-dia

fonte

Offline deisefontoura

  • Usuário Ubuntu
  • *
  • Mensagens: 10
    • Ver perfil
Re: Como fazer sudo su automatico
« Resposta #6 Online: 10 de Fevereiro de 2009, 14:44 »
Não era bem isso...
Eu quero que se use a senha do usuário. só não queria que spawnasse o "password:"
pois estraga o script automático para ser rodado via página web. Queria alguma maneira
de passar como argumento para um switch user a senha digitada pelo usuário na página.
Pesquisando sobre isso, achei que teria como fazer isso com expect:
ver a reply desse tópico
http://www.computing.net/answers/unix/trouble-whit-command-su-/7127.html

Mas ainda não era bem o que eu precisava. Então para fazer a autenticação
criei o seguinte script (desconsiderar os echos no meio do script, que são meros testes de funcionamento)

#abrindo o arquivo de senhas
$file = '/etc/shadow'; /*ou então /etc/passwd observe que o usuário do apache precisa ter permissão para ler esse arquivo*/
$open = fopen($file,r);

#Carrega o usuário e senha
$user = 'deise';/*aqui vai o post do usuário*/
$pass = 'deise';/*aqui também*/

#"Expressão" para encontrar o usuário

$regex_usu = $user;

#Expressão para encontrar a senha
$regex_pass = $user.'\:([^\:]*)\:';


if($open){
   $read = fread($open,8192);
   if($read)
   {
       #
      echo "leu o arquivo";
      echo "<br>";
      echo $read;
      echo "<br>";
      #
      ereg($regex_usu,$read,$result_usu);
      ereg($regex_pass,$read,$result_pass);
      #
      echo "usuario:";
      print_r($result_usu[0]);
      echo "<br>";
      #
      echo "Senha:";      
      print_r($result_pass[1]);
      echo "<br>";   
         
         if($result_usu[0] == $user)
         {
            echo "usuario correto";
            echo "<br>";            
            if (crypt($pass, $result_pass[1]) == $result_pass[1]) {
      
                echo "Senha correta";
               echo "<br>";
               echo "Autenticacao completa";
               echo "<br>";               
            }else
            {
               echo "Senha incorreta";
               echo "<br>";                     
            }
         }else
         {
            echo "Usuario incorreto";
            echo "<br>";            
         }
   }else
   {
      echo "Falhou ao ler o arquivo";
      echo "<br>";      
   }
}else{
echo "Falhou ao abrir o arquivo";
echo "<br>";
}

Offline clcampos

  • Administrador
  • Usuário Ubuntu
  • *****
  • Mensagens: 10.790
  • .:: User Linux #439596 ::.
    • Ver perfil
Re: Como fazer sudo su automatico
« Resposta #7 Online: 10 de Fevereiro de 2009, 16:08 »
Acho isso uma grande quebra de segurança, pois sua senha estará visível dentro da rotina, mas basta fazer igual ao exemplo abaixo:

Código: [Selecionar]
#!/bin/bash
#
# Testando se consigo passar a senha direto para o sudo -s
#
# Cristiano
# 10/Fev/2009
#

senha="senha_do_usuário_administrador"  #coloque aqui  sua senha

clear
echo -e "\nTentando mostrar o conteúdo de \033[1m/etc/shadow\033[0m\n"
cat /etc/shadow
echo -e "\nObserve que não existe permissão\n"
read ESPERA

sudo -s <<!
passwd=$senha
echo -e "\nTentando mostrar o conteúdo de \033[1m/etc/shadow\033[0m\n.Tecle <\033[1mENTER\033[0m> para apresentar o conteúdo."
cat /etc/shadow
echo -e "\nObserve que agora mostrou\n"
!

Cristiano/Timóteo - MG
.: Como Fazer Perguntas de Forma Inteligente :.                
Com dúvida? pesquise!

Offline semideiapnick

  • Usuário Ubuntu
  • *
  • Mensagens: 30
    • Ver perfil
    • pviana
Re: Como fazer sudo su automatico
« Resposta #8 Online: 09 de MAR?O de 2009, 22:01 »
Boa noite,

Este script acima não funcionou! Tenho testado por a senha em variaveis e carregar próximo ao sudo, mais todas as tentativas foram por água abaixo.


Offline clcampos

  • Administrador
  • Usuário Ubuntu
  • *****
  • Mensagens: 10.790
  • .:: User Linux #439596 ::.
    • Ver perfil
Re: Como fazer sudo su automatico
« Resposta #9 Online: 09 de MAR?O de 2009, 22:24 »
Boa noite,

Este script acima não funcionou! Tenho testado por a senha em variaveis e carregar próximo ao sudo, mais todas as tentativas foram por água abaixo.



Qual?
Cristiano/Timóteo - MG
.: Como Fazer Perguntas de Forma Inteligente :.                
Com dúvida? pesquise!

Offline jamilservicos

  • Usuário Ubuntu
  • *
  • Mensagens: 39
  • O Bom discipulo é aquele que supera o mestre...
    • Ver perfil
    • Canal Castanhal . NeT - O Canal da Cidade Modelo na Internet!
Re: Como fazer sudo su automatico
« Resposta #10 Online: 26 de Abril de 2009, 00:59 »
Pelo que percebi o unico problema que você quer resolver e depois do backup desligar a maquina automaticamente é isso?

se for a solução é simples!

basta adicionar o usuario no /etc/sudoers

username ALL=NOPASSWD: /sbin/shutdown

para desligar sem pedir a senha
ou

username ALL=NOPASSWD ALL

para nunca pedi a senha e ter todos os privilegios root
lembrando que no lugar de username é o login do usuario!

Jamilservicos.com