Flashback bygger pepparkakshus!
2008-12-28, 20:59
  #1
Medlem
binics avatar
försöker skriva script där jag ska kunna editera vissa konfigurationsfiler. för att kunna lägga till text till en fil går det bland annat via sed. tex

Kod:
sed -i 1i"lite text" filnamn

koden fungerar alldeles utmärkt sålänge det inte rör sig om skrivskyddade filer, konfigurationsfiler etc. enkelt exempel:

Kod:
sudo sed -i 1i"deb http://ppa.xxx.net/ubuntu intrepid main" /etc/apt/sources.list

får ändå permission denied.

ngn lösning? tänkte köra med awk men vet inte om jag kan lägga in text på det sättet.
Citera
2008-12-29, 23:07
  #2
Medlem
Om det gick att skriva till skrivskyddade filer utan vidare, så vore väl skrivskyddet ingenting värt?

Du får väl ta bort skrivskyddet med chmod, sätta det till rw-rw-r-- eller något annat lämpligt.
Citera
2008-12-31, 11:27
  #3
Medlem
binics avatar
Citat:
Ursprungligen postat av Katalysator
Om det gick att skriva till skrivskyddade filer utan vidare, så vore väl skrivskyddet ingenting värt?

Du får väl ta bort skrivskyddet med chmod, sätta det till rw-rw-r-- eller något annat lämpligt.

självklart, det är jag med på. därför jag la till sudo före så att man ska ange lösenordet. också därför som jag inte vill köra chmod då jag inte vill riskera oplanerade modifikationer på dessa filer.
Citera
2008-12-31, 12:49
  #4
Medlem
h-kans avatar
Skriv ditt script som vanlgt och sedan starta det med sudo.

#!/bin/bash
sed -i 1i"lite text" /etc/apt/soures.list

sedan

# sudo ./sciptet i en terminal

PS.
echo "lite text" >> /etc/apt/sources.list är lite lättare än sed och appendar till slutet av filen istället
Citera
2008-12-31, 14:37
  #5
Medlem
Citat:
Ursprungligen postat av binic
självklart, det är jag med på. därför jag la till sudo före så att man ska ange lösenordet. också därför som jag inte vill köra chmod då jag inte vill riskera oplanerade modifikationer på dessa filer.
Jag tror du komplicerar till allt i onödan, utan att få någonting för det. Vill du skriva till filer, måste filerna vara skrivbara! Ingenting blir "säkrare" av att du sätter krokben för dig själv. Du gör ju skript, så det borde väl vara tänkt för någon sorts automatisering? Annars kan du bättre använda en texteditor interaktivt, så ser du vad du gör. Säkerhetskopiering av känsliga filer skadar inte heller.

Sätt in dig själv i administratörsgruppen (kallas vanligen "wheel", men ditt OS kan ju ha ett annat namn, kanske "admin" eller liknande) och kör chmod g+w på de trilskande filerna. Tycker du det låter osäkert, så kör åtminstone chmod u+w och fortsätt med sudo.

Allvarligt talat: Vad skulle vara värst att bli av med -- roots konfigurationsfiler eller dina personliga filer i hemmamappen? Om du måste välja på att radera /etc/blaha eller /home/binic/jätteviktig_uppsats_som_ska _lämnas_in_i_morgon, vad väljer du då? Root, sudo och allt det där skyddar den förstnämnda filen som med största sannolikhet går att återställa bara genom att hämta en likadan från internet. Dina unika och verkligt värdefulla filer sitter bara där, redo för att bli utplånade samtidigt som du oroar dig över falsk säkerhet. Gör inte det!
Citera
2009-01-08, 12:18
  #6
Medlem
Citat:
Ursprungligen postat av Katalysator
Allvarligt talat: Vad skulle vara värst att bli av med -- roots konfigurationsfiler eller dina personliga filer i hemmamappen? Om du måste välja på att radera /etc/blaha eller /home/binic/jätteviktig_uppsats_som_ska _lämnas_in_i_morgon, vad väljer du då? Root, sudo och allt det där skyddar den förstnämnda filen som med största sannolikhet går att återställa bara genom att hämta en likadan från internet. Dina unika och verkligt värdefulla filer sitter bara där, redo för att bli utplånade samtidigt som du oroar dig över falsk säkerhet. Gör inte det!
Visst är det allvarligare att bli av med sina egna filer, det är därför det är viktigt att ha backup.
Men att inte skydda systemfiler för "de finns ju ändå att hämta från internet om nåt skiter sig" är inte heller så smart. Om inte systemet är skyddat så öppnar det ju upp för vem som helst (via ondsint kodade web sidor eller liknande) att komma åt din dator och sen som root radera de filer du tycker är viktigare att skydda...
Citera
2009-01-09, 03:44
  #7
Medlem
binics avatar
Citat:
Ursprungligen postat av h-kan
Skriv ditt script som vanlgt och sedan starta det med sudo.

#!/bin/bash
sed -i 1i"lite text" /etc/apt/soures.list

sedan

# sudo ./sciptet i en terminal

PS.
echo "lite text" >> /etc/apt/sources.list är lite lättare än sed och appendar till slutet av filen istället

såg inte ditt svar tidigare men gjorde precis så som du säger. tack
Citera

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Det är enkelt att registrera ett nytt konto

Bli medlem

Logga in

Har du redan ett konto? Logga in här

Logga in