Strona 1 z 1

[Bash] Skrypt nie podmienia chronionych plików

: 28 kwie 2010, 21:42
autor: choody

Kod: Zaznacz cały

#!/bin/bash

##    Net Config for Ubuntu 10.04 Lucid Lynx LTS
##    Copyright (C) 2010  Szymon 'Puszek' Noczyński
##
##    You should have received a copy of the GNU General Public License
##    along with this program.  If not, see <http://www.gnu.org/licenses/>.

########################################################
#interfaces
########################################################
echo "Teraz edytujesz adresy DHCP"
###############
#Interfeis eth
###############
echo -en "Interfejs sieci (eth0,eth1,wlan0)"
echo " "
read eth
echo $eth
###############
#IP
###############
echo -en "IP:\n"
read ip
echo "$ip"
###############
#Maska Podsieci
###############
echo -en "Maska Podsići\n"
read maska
echo "$maska"
###############
#Barma Domyslna 
###############
echo -en "Brama domyslna \n"
read brama
echo "$brama"
################
#Zapis do pliku 
################

echo "
auto $eth 
iface $eth inet static
address $ip
netmasc $maska 
gateway $brama" >  $HOME/Pulpit/interfaces.conf

########################################################
#resolv.conf
########################################################
echo "Teraz wpisujesz adresy serwerów"
echo " "
###############
#nameserver1
###############
echo -en "Wpisz pierwszy adres serwera DNS"
echo ""
read s1
echo "$s1"
###############
#nameserwer2
###############
echo -en "Wpisz drugi adres serwera DNS"
echo " "
read s2
echo "$s2"
###############
#nameserwer3
###############
echo -en "Wpisz trzeci adres serwer DNS"
echo " "
read s3
echo "$s3"
###############
#nameserver Google
###############
echo "To jest dodatkowy sewer Googla 8.8.8.8"
echo " "
echo "8.8.8.8"
###############
#Zapis do pliku
###############
echo "
nameserver $s1
nameserver $s2
nameserwer $s3
nameserver 8.8.8.8
" >  $HOME/Pulpit/resolv.conf
###############
#sudo 
###############
sudo /etc/init.d/networking restart
sleep 5
sudo ifdown $eth
sleep 5
sudo ifup $eth
sleep 5

###############
#Koniec
###############
Skrypt nie podminia plików resolv.conf i interfaces ( wiem scierzki sa na pulpit ale to zmienilem bo testowalem ). Testowane na 9.10 i na 10.04

Odp: [Bash] Skrypt nie podmienia chronionych plików

: 28 kwie 2010, 22:56
autor: sulti
Na końcu używasz sudo - to świadczy o tym, że skrypt uruchamiasz z prawami zwykłego użytkownika. W trakcie skryptu próbujesz jednak z tymi samymi prawami (lub raczej bez nich) nadpisywać zawartość skryptów, których właścicielem jest root.

Odp: [Bash] Skrypt nie podmienia chronionych plików

: 29 kwie 2010, 07:02
autor: kamilsilver

Kod: Zaznacz cały

sudo 'echo "
auto $eth 
iface $eth inet static
address $ip
netmasc $maska 
gateway $brama" >  $HOME/Pulpit/interfaces.conf'

Kod: Zaznacz cały

sudo 'echo "
nameserver $s1
nameserver $s2
nameserwer $s3
nameserver 8.8.8.8
" >  $HOME/Pulpit/resolv.conf'
Lub lepiej jak kolega wyżej napisał, wywalić z pliku zbędne komendy sudo i cały skrypt odpalić z uprawnieniami admina przez:

Kod: Zaznacz cały

sudo ./skrypt
(warto na początku pliku zrobić warunek że wywali z skryptu jak skrypt nie ma uprawnień admina (aby niepotrzebnie nie wykonywać się)

Odp: [Bash] Skrypt nie podmienia chronionych plików

: 29 kwie 2010, 07:47
autor: choody
Dzieki za pomoc to jest mój pierwszy skrypt i robilem go razem z kursem wiec warunków nie umiem (jeszcze). A zrobilem go po to, bo jak instaluje 9.10 albo 10.04 to musze twożyc te pliki a tak to szybciej idzie.