Hjæællp - jeg har lavet rod i filrettighederne i /etc !
Jeg har igennem noget tid fået nogle advarsler om at visse af filerne i /ect var world writable. Det er fordi jeg oprindeligt installerede mit OS via remastersys, og den får ikke altid rettighederne med korrekt.
For at råde bod på det har jeg så netop udført dette i /etc:
sudo chmod -R o-x *
sudo chmod -R o-w *
Men av! Nu kan jeg stort set ingenting gøre. Min Mint Menu er tom, og jeg kan end ikke starte en terminal.
1.
Hvad gør jeg nu?
2.
Hvad er den korrekte mode for filerne i /etc?
For at råde bod på det har jeg så netop udført dette i /etc:
sudo chmod -R o-x *
sudo chmod -R o-w *
Men av! Nu kan jeg stort set ingenting gøre. Min Mint Menu er tom, og jeg kan end ikke starte en terminal.
1.
Hvad gør jeg nu?
2.
Hvad er den korrekte mode for filerne i /etc?
Kommentarer21
Re: Hjæællp - jeg har lavet rod i filrettighederne i /etc !
Jeg ville nok bare geninstallere i sådan et tilfælde :)
Re: Hjæællp - jeg har lavet rod i filrettighederne i /etc !
Fx blot tilføje o+rwx til alle filerne i /etc, hvis jeg altså bare kunne starte en terminal.
Re: Hjæællp - jeg har lavet rod i filrettighederne i /etc !
Jeg regnede med at det ville være OK at fjerne rettighederne for others, dvs. andre end ejer og gruppe, men der er jo det problem at kørselsrettigheder har en anden betydning for mapper: Her bestemmer kørselsrettigheder om man kan læse mapperne.
Jeg kan nemlig godt dykke ned i /etc med nautilus, men ikke ned i undermapperne. Så systemet kan altså ikke læse konfigurationsfilerne med mindre de ligger i selve /etc.
Re: Hjæællp - jeg har lavet rod i filrettighederne i /etc !
I min /etc (Mandriva 2009.1) har alle directories på nær et rettighederne sat til 755. Filerne varierer mere. De fleste har 644, men 644, 664, 600 og 440 findes også. Enkelte, som f.eks. anacrontab, esd.conf og mcc.conf, har 755.
Det er din første kommando, der har gjort skade, så vidt jeg kan se, så du skal sætte x'e tilbage på alle directories (husk også /etc). Har du filer med rettigheder 754, som de tre nævnte ovenfor, skal de nok også ændres til 755.
Kan du ikke starte systemet, så prøv via en live-CD.
Re: Hjæællp - jeg har lavet rod i filrettighederne i /etc !
Og, ja, jeg skal være varsom med chmod * !!! Det har jeg lært nu! Og så skal jeg fremover have backup af /etc.
Tænker så lige på: Er det muligt at logge ind som root når man starter Mint?
Re: Hjæællp - jeg har lavet rod i filrettighederne i /etc !
Jeg må så prøve om jeg kan på min nu "handicappede" stationære computer. Jeg kan end ikke logge ud på rettighedsproblemet, så jeg må vel slukke for den.
Men lader den lige stå lidt for at se om der kommer andre forslag...
Re: Hjæællp - jeg har lavet rod i filrettighederne i /etc !
Problemet er, at chmod ikke skelner mellem directories og andre filer, så her må du nok bruge f.eks. find.
# find /etc -type d -exec chmod o+x {}
burde kunne gøre det.
OBS: Jeg har ikke prøvet det med -exec, men
# find /etc -type d
retunerer alle directories fra /etc og nedefter.
Jeg ville starte en live-CD, mounte hd'en og prøve med find som root. Tilpas /etc til hvordan den ligger i live-CD-systemet.
Prøv evt. først uden -exec og læs man find.
#7:Du har helt ret i at man
Du har helt ret i at man må gå over find for at undlade at fjerne rettighederne fra mapper.
Hvad angår adgangen til systemet, så har jeg nu fået adgang ved at genstarte computeren (måtte tage strømmen, den ville ikke engang lukke ned!) og så starte en rodterminal fra GRUB'en. Her kørte jeg så en
chmod -R o+rw *
i /etc og kunne derefter logge ind normalt.
Det er selvfølgelig ikke elegant, og sikkerhedsmæssigt ret skidt, men i det mindste har jeg nu et fungerende system. Så må jeg se om jeg kan sætte de korrekt rettigheder.
Jeg har i øvrigt en gammel backup af /etc. Ikke ny nok til at jeg kan bruge selve filerne, men jeg har tænkt på om man kan overføre rettigheder fra det sæt filer til det andet? Det skal jeg måske starte en ny tråd om ...
Re: Hjæællp - jeg har lavet rod i filrettighederne i /etc !
Det var derfor jeg foreslog, at du skulle bruge find til reparationen.
Jeg skriver lidt flere forslag senere. Jeg har ikke mere tid lige nu.
Re: Hjæællp - jeg har lavet rod i filrettighederne i /etc !
Man kan godt sige der er mere rod nu, men på den anden fik jeg da startet systemet, og under alle omstændigheder er der ged i rettighederne som jeg må se at løse ved at sammenligne med backuppen.
Re: Hjæællp - jeg har lavet rod i filrettighederne i /etc !
cd ~/backup
find /etc -exec chmod --reference=.'{}' '{}' \;
Det er testet på en enkelt fil og fungerer. Det vigtigt at du har samme filer i samme struktur i din backup som i /etc, ellers kan du være nødt til at lave en test for om referencefilen eksistere og evt. udskrive navnet på de, der ikke gør.
Det er også vigtigt, at din backup ligger i et directory, der hedder etc.
Du er måske så tilbage ved de rettigheder fra før du rettede, men nu ved du så, at man skal være varsom.
#11:
Det ser ud til at kunne
Det ser ud til at kunne gøre det, bortset fra at der vist ikke skal være apostroffer omkring {}
Der er så stadig et problem med symlinkede filer, disse fik jo også ændret rettighederne da jeg rask væk chmod'ede hele molevitten.
#11:Det ser ud til at kunne
Det ser ud til at kunne gøre det, bortset fra at der vist ikke skal være apostroffer omkring {}
Der er så stadig et problem med symlinkede filer, disse fik jo også ændret rettighederne da jeg rask væk chmod'ede hele molevitten.
Edit: altså problem med filer der eksisterer udenfor /etc men hvor symlinket ligger i /etc
Re: #11:Det ser ud til at kunne
Jeg kan godt se, at der er et problem med symlinks, da chmod fortolker forskelligt afhængigt af, om det er recursive mode eller ej.
I /etc er der directories, alm. filer og symlinks, så det må kunne klares ved at putte en -type ind:
find /etc -type d -exec chmod --reference=.'{}' '{}' \;
find /etc -type f -exec chmod --reference=.'{}' '{}' \;
Så kan du tage directories og alm. filer hver for sig og undgå symlinks.
De symlinkede filer skulle ikke være blevet ændret, da du brugte chmod rekursivt. Prøv at checke om ikke det er rigtigt.
De filer, der ligger i directories under /etc vil selvfølgeligt være blevet ændret under rekursionen, men filer udenfor som f.eks. /etc/rmt -> /sbin/rmt skulle ikke. Derfor skal du nok under alle omstændigheder undgå symlinks.
Re: Hjæællp - jeg har lavet rod i filrettighederne i /etc !
Desværre virker chmod -R * også på symlænkede filer, så de har også fået forkerte rettigheder!
Det har jeg dog fundet en snørklet løsning på. Jeg har en bærbar med en næsten identisk konfigurations, så på denne har jeg altså de korrekte rettigheder for symlinkene.
Jeg har brygget denne kommando sammen, som når den køres på min bærbare, giver et script med de korrekte rettigheder. Det kan jeg så køre på min stationære til at sætte rettighederne tilsvarende.
find /etc -type l -exec ls -lL {} \; | awk '{k=0;for(i=0;i<=8;i++)k+=((substr($1,i+2,1)~/[rwx]/)*2^(8-i));if(k)printf("%0o ",k);print}' | sed -r "s#^([[:digit:]][[:digit:]][[:digit:]] )[^\/]*#chmod \1#" > setsymperms.sh
Et par typiske linjer fra outputtet er:
chmod 644 /etc/gtk/gtkrc.et
chmod 644 /etc/gtk/gtkrc.sp
osv.
#15:
det var da en grotesk
det var da en grotesk måde at få gemt dine permissions til en fil
prøv at køre kommandoen:
# cd /etc ; getfacl -R /etc > /root/perms.acl
setfacl kan så restore det.
Re: Hjæællp - jeg har lavet rod i filrettighederne i /etc !
Virker det også korrekt med symlinks? En del af filerne i /etc er symlinks til filer udenfor træet.
Din kommando kunne have sparet mig nogle timer! På den anden side var det nu meget skægt at nørkle med sed og awk.
Re: Hjæællp - jeg har lavet rod i filrettighederne i /etc !
Re: Hjæællp - jeg har lavet rod i filrettighederne i /etc !
Er der nogen vej ud af det?
Alternativt, kan man finde symlinks til mapper?
Der er
find -type d : finder mapper
find -type l : finder symlinks
Men kombinere dem så den kun finder symlinks til mapper???
Re: Hjæællp - jeg har lavet rod i filrettighederne i /etc !
for f in $(find /etc -type l -print | xargs ls -ld | awk '{print $8}'); do test -d $f && echo $f ; done
Kan det gøres lettere?
Re: Hjæællp - jeg har lavet rod i filrettighederne i /etc !
Tak for hjælpen alle sammen!
Ps. vil stadig gerne have at vide om der findes lettere måder at finde alle symlinkede mapper på end den i #20.