Sida 1 av 1
Kommando i terminalen
Postat: 29 sep 2010, 16:10
av Prozze
[Halloj, har fått kommandot
Kod: Markera allt
sudo find / -type f \( -perm -4000 -o -perm -2000 \) -print
av en kompis som vill ha en förklaring på vad det gör, men jag har själv ingen aning om vad just detta gör, så undrar om det kanske finns någon där ute som kan hjälpa mig?
Mhv prozze
Re: Kommando i terminalen
Postat: 29 sep 2010, 16:46
av Konservburk
Du ska aldrig köra kommandon med sudo om du inte vet vad kommandot gör. I just det här fallet är det ingen större fara eftersom det där kommandot inte ändrar något, utan bara letar reda på filer med vissa egenskaper.
Men om din kompis inte förstår vilka filegenskaper kommandot letar efter så har han heller ingen nytta av resultatet. Utan att veta vad din kompis försöker göra så går det inte att avgöra om det där kommandot är lämpligt eller inte.
Re: Kommando i terminalen
Postat: 29 sep 2010, 17:17
av Prozze
Jo det vet jag att man inte ska göra, men frågade honom vad han skulle ha det till och det är tydligen så att det har med en uppgift i skolan att göra då man vill veta vad just detta kommandot gör och varför det kan vara intressant att veta.
Re: Kommando i terminalen
Postat: 29 sep 2010, 17:46
av Konservburk
Kommandot letar som sagt reda på filer som har vissa egenskaper och är därför bara intressant för den som vill veta vilka filer som har de här egenskaperna. Anledningen till att vilja ha tag i den informationen är att de här filegenskaperna utgör en säkerhetsrisk. Men utan att veta vilka filer som bör och inte bör ha dessa egenskaper så är kommandot helt oanvändbart.
Re: Kommando i terminalen
Postat: 30 sep 2010, 16:05
av Prozze
Okej, men om jag omformulerar frågan till. Vilka specifika egenskaper är det jag letar efter med just detta kommando. Jag förstår att find har funktionen att hitta vissa filer, och type en specifik sort. men det jag undrar är då vad uttrycket inom parentesen säger alltså vilka filer är det datorn letar fram och vilka egenskaper har dem.
(-perm -4000 -o -perm -2000)
Re: Kommando i terminalen
Postat: 30 sep 2010, 18:05
av HakanS
Meningen med att gå en utbildning är att du, eller som du kallar det "en kompis", ska läsa dig till kunskapen för att lära dig något.
Forumet är inte till för att göra skoluppgifterna åt dig.
Re: Kommando i terminalen
Postat: 30 sep 2010, 18:13
av Konservburk
Du får ursäkta att jag svarar svepande, men du har ställt frågan i nybörjardelen av forumet och ett mer detaljerat svar hör inte hemma där. Jag kan flytta tråden till avancerat bruk om du känner att du behöver en mer ingående förklaring av vad kommandot gör. Annars är nog egentligen det bästa att du och/eller din kompis går igenom dokumentationen till kommandot find. Allt ni undrar över finns utförligt beskrivet där.
Re: Kommando i terminalen
Postat: 30 sep 2010, 18:15
av Prozze
Kursliteraturen som han har fått säger inget om just det uppgiften han har fått är att genom att använda kommandot för att lista ut vad det ger varav varken han eller de andra i hans grupp har lyckats med det, det är därför vi vänder oss till forum annars skulle vi inte ens ta upp frågan...
Re: Kommando i terminalen
Postat: 30 sep 2010, 18:17
av Prozze
Konservburk skrev:Du får ursäkta att jag svarar svepande, men du har ställt frågan i nybörjardelen av forumet och ett mer detaljerat svar hör inte hemma där. Jag kan flytta tråden till avancerat bruk om du känner att du behöver en mer ingående förklaring av vad kommandot gör. Annars är nog egentligen det bästa att du och/eller din kompis går igenom dokumentationen till kommandot find. Allt ni undrar över finns utförligt beskrivet där.
du får gärna flytta tråden så den passar bättre in.
Re: Kommando i terminalen
Postat: 30 sep 2010, 18:36
av Konservburk
Nu är tråden bättre placerad.
Dokumentationen jag nämnde i mitt förra inlägg finner du här:
http://www.gnu.org/software/findutils/m ... index.html
Jag inser att det är ett mastigt dokument så jag ska vara snäll och peka mer specifikt på vilka delar du bör läsa igenom:
http://www.gnu.org/software/findutils/m ... /Type.html
http://www.gnu.org/software/findutils/m ... ators.html
http://www.gnu.org/software/findutils/m ... -Bits.html
http://www.gnu.org/software/findutils/m ... Modes.html
http://www.gnu.org/software/findutils/m ... -Name.html
Om det är något du inte riktigt förstår i den här dokumentationen så är det bara att fråga så ska jag försöka förtydliga och/eller förklara.
Re: Kommando i terminalen
Postat: 30 sep 2010, 19:00
av Prozze
Tackar, ska sätta mig o läsa det och återkommer om det är något annat jag undrar över.
Re: Kommando i terminalen
Postat: 30 sep 2010, 19:06
av Konservburk
Du gör såklart som du vill, men det allra bästa är nog om du efter genomläsningen försöker förklara för mig vad du tror att kommandot gör. Då kan jag bekräfta att du har förstått det hela eller peka på och rätta till eventuella missförstånd.
Re: Kommando i terminalen
Postat: 30 sep 2010, 19:19
av HakanS
Prozze skrev:Tackar, ska sätta mig o läsa det och återkommer om det är något annat jag undrar över.
Är det inte bättre om din kompis läser det istället.

Re: Kommando i terminalen
Postat: 30 sep 2010, 19:49
av Prozze
har skickat vidare det till honom också, o sa att han ska skicka det till hans gruppmedlemmar. duger det hakans?
Re: Kommando i terminalen
Postat: 30 sep 2010, 20:02
av Prozze
Konservburk skrev:Du gör såklart som du vill, men det allra bästa är nog om du efter genomläsningen försöker förklara för mig vad du tror att kommandot gör. Då kan jag bekräfta att du har förstått det hela eller peka på och rätta till eventuella missförstånd.
Som jag fattar det så letar det upp alla program som ger speciella privilegier till användaren som kör dem.
Re: Kommando i terminalen
Postat: 30 sep 2010, 20:12
av Konservburk
Prozze skrev:Som jag fattar det så letar det upp alla program som ger speciella privilegier till användaren som kör dem.
Det är åt rätt håll.
Har du förstått vilka speciella privilegier det handlar om? Jag ser också gärna att du förtydligar vad du menar med
alla program
Re: Kommando i terminalen
Postat: 30 sep 2010, 20:19
av Prozze
Alltså suid/sgid-program som ligger på systemet. Jag är dock lite osäker på vilka speciella privileger det get men antar att det är root-access vilket gör så man kan ändra lösen osv
Re: Kommando i terminalen
Postat: 30 sep 2010, 20:41
av Konservburk
Prozze skrev:Alltså suid/sgid-program som ligger på systemet. Jag är dock lite osäker på vilka speciella privileger det get men antar att det är root-access vilket gör så man kan ändra lösen osv
Det är rätt uppfattat att det gäller suid och sgid. Men suid och sgid ger nödvändigtvis inte root-rättigheter. Exakt vilka rättigheter de ger beror helt på vilken ägare och grupp suid/sgid-filen har.
Sen har vi det här med att kommandot bara skulle hitta program. Det stämmer faktiskt inte. Det är möjligt/troligt att det egentligen var tanken, men som kommandot är skrivet nu så hittar det alla filer med suid och/eller sgid.
Det skulle nog vara en bra övning att skriva om kommandot så att det bara hitta körbara suid/sgid-program. Och kanske till och med göra det ännu lite svårare och skriva om kommandot så att det bara hittar körbara suid/sgid-program som ger root-rättigheter.
Re: Kommando i terminalen
Postat: 30 sep 2010, 20:47
av Prozze
Okej, men ska skicka detta vidare, sen måste jag tacka för hjälpen.
Re: Kommando i terminalen
Postat: 10 nov 2010, 23:31
av Johnny Rosenberg
Prozze skrev:[Halloj, har fått kommandot
Kod: Markera allt
sudo find / -type f \( -perm -4000 -o -perm -2000 \) -print
av en kompis som vill ha en förklaring på vad det gör, men jag har själv ingen aning om vad just detta gör, så undrar om det kanske finns någon där ute som kan hjälpa mig?
Mhv prozze
Har du eller ni läst informationen man får av ”man find”? Där kan man bland annat läsa:
-perm mode
File's permission bits are exactly mode (octal or symbolic). Since an exact match is required, if you want to
use this form for symbolic modes, you may have to specify a rather complex mode string. For example -perm g=w
will only match files which have mode 0020 (that is, ones for which group write permission is the only permis‐
sion set). It is more likely that you will want to use the `/' or `-' forms, for example -perm -g=w, which
matches any file with group write permission. See the EXAMPLES section for some illustrative examples.
-perm -mode
All of the permission bits mode are set for the file. Symbolic modes are accepted in this form, and this is
usually the way in which would want to use them. You must specify `u', `g' or `o' if you use a symbolic mode.
See the EXAMPLES section for some illustrative examples.
-perm /mode
Any of the permission bits mode are set for the file. Symbolic modes are accepted in this form. You must spec‐
ify `u', `g' or `o' if you use a symbolic mode. See the EXAMPLES section for some illustrative examples. If no
permission bits in mode are set, this test matches any file (the idea here is to be consistent with the behav‐
iour of -perm -000).
-perm +mode
Deprecated, old way of searching for files with any of the permission bits in mode set. You should use -perm
/mode instead. Trying to use the `+' syntax with symbolic modes will yield surprising results. For example,
`+u+x' is a valid symbolic mode (equivalent to +u,+x, i.e. 0111) and will therefore not be evaluated as -perm
+mode but instead as the exact mode specifier -perm mode and so it matches files with exact permissions 0111
instead of files with any execute bit set. If you found this paragraph confusing, you're not alone - just use
-perm /mode. This form of the -perm test is deprecated because the POSIX specification requires the interpreta‐
tion of a leading `+' as being part of a symbolic mode, and so we switched to using `/' instead.
Även ”info find” kanske ger lite kött på benen.