inicia o script do apache

1

Eu tenho o Apache instalado no meu sistema operacional Linux (sabayon), apenas para testes de programação.

O que eu quero é um script para que o servidor seja iniciado imediatamente quando eu quiser.

Este é o código:

#!/bin/bash
# een script dat de apache server start
/etc/init.d/apache2 start

O único problema é que o Apache precisa de privilégios de root, mas eu sou um usuário normal. Agora posso executar esse script a partir da linha de comando com sudo ./apache_start.sh , mas não quero isso. Eu só quero clicar duas vezes nele e iniciar o servidor Apache.

Então, o que posso fazer para que o script seja executado como root em vez do usuário normal?

Eu não me importo se houver um prompt que peça a senha, só não quero abrir um console, navegar para o arquivo e assim por diante.

    
por Mathlight 04.03.2012 / 22:57

2 respostas

2

Você não pode usar o script de inicialização padrão se quiser fazer o que está fazendo. Além disso, você não pode iniciá-lo sem privilégios de root se quiser que ele seja executado na porta 80, já que somente o root pode iniciar os listeners na porta 80.

Você tem duas opções como eu vejo. Execute em uma porta superior a 1024 e execute o apache manualmente a partir da linha de comando. Ou use o sudo:

visudo

Adicione uma linha com seu nome de usuário

username ALL=NOPASSWD: /etc/init.d/apache2 start, /etc/init.d/apache2 stop

E sua coisa de atalho na área de trabalho diz para executar

sudo /etc/init.d/apache2 start
    
por 04.03.2012 / 23:44
0

Você pode usar gksudo para obter privilégios de root visualmente, o que é legal.

apache-start.sh

#!/bin/bash

if [ "$EUID" = "0" ]; then
    # we're root, so just run it
    service apache2 start
    exit 0
fi

# otherwise, try running it with a visual prompt for superuser
gksudo service apache2 start
    
por 03.09.2012 / 03:56

Tags