Kommando i terminalen

Här diskuterar vi skal, kommandon och klassiska linuxverktyg.
Prozze
Inlägg: 10
Blev medlem: 29 sep 2010, 16:04
OS: Ubuntu
Utgåva: 22.04 Jammy Jellyfish LTS

Kommando i terminalen

Inlägg 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
Användarvisningsbild
Konservburk
Inlägg: 5919
Blev medlem: 07 apr 2007, 22:28

Re: Kommando i terminalen

Inlägg 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.
Prozze
Inlägg: 10
Blev medlem: 29 sep 2010, 16:04
OS: Ubuntu
Utgåva: 22.04 Jammy Jellyfish LTS

Re: Kommando i terminalen

Inlägg 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.
Användarvisningsbild
Konservburk
Inlägg: 5919
Blev medlem: 07 apr 2007, 22:28

Re: Kommando i terminalen

Inlägg 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.
Prozze
Inlägg: 10
Blev medlem: 29 sep 2010, 16:04
OS: Ubuntu
Utgåva: 22.04 Jammy Jellyfish LTS

Re: Kommando i terminalen

Inlägg 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)
HakanS
Global Moderator
Inlägg: 4289
Blev medlem: 30 mar 2006, 10:34
OS: Kubuntu
Utgåva: 23.04 Lunar Lobster
Ort: Trollhättan

Re: Kommando i terminalen

Inlägg 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.
Användarvisningsbild
Konservburk
Inlägg: 5919
Blev medlem: 07 apr 2007, 22:28

Re: Kommando i terminalen

Inlägg 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.
Prozze
Inlägg: 10
Blev medlem: 29 sep 2010, 16:04
OS: Ubuntu
Utgåva: 22.04 Jammy Jellyfish LTS

Re: Kommando i terminalen

Inlägg 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...
Prozze
Inlägg: 10
Blev medlem: 29 sep 2010, 16:04
OS: Ubuntu
Utgåva: 22.04 Jammy Jellyfish LTS

Re: Kommando i terminalen

Inlägg 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.
Användarvisningsbild
Konservburk
Inlägg: 5919
Blev medlem: 07 apr 2007, 22:28

Re: Kommando i terminalen

Inlägg 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.
Prozze
Inlägg: 10
Blev medlem: 29 sep 2010, 16:04
OS: Ubuntu
Utgåva: 22.04 Jammy Jellyfish LTS

Re: Kommando i terminalen

Inlägg av Prozze »

Tackar, ska sätta mig o läsa det och återkommer om det är något annat jag undrar över.
Användarvisningsbild
Konservburk
Inlägg: 5919
Blev medlem: 07 apr 2007, 22:28

Re: Kommando i terminalen

Inlägg 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.
HakanS
Global Moderator
Inlägg: 4289
Blev medlem: 30 mar 2006, 10:34
OS: Kubuntu
Utgåva: 23.04 Lunar Lobster
Ort: Trollhättan

Re: Kommando i terminalen

Inlägg 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. ;D >:D
Prozze
Inlägg: 10
Blev medlem: 29 sep 2010, 16:04
OS: Ubuntu
Utgåva: 22.04 Jammy Jellyfish LTS

Re: Kommando i terminalen

Inlägg av Prozze »

har skickat vidare det till honom också, o sa att han ska skicka det till hans gruppmedlemmar. duger det hakans?
Prozze
Inlägg: 10
Blev medlem: 29 sep 2010, 16:04
OS: Ubuntu
Utgåva: 22.04 Jammy Jellyfish LTS

Re: Kommando i terminalen

Inlägg 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.
Användarvisningsbild
Konservburk
Inlägg: 5919
Blev medlem: 07 apr 2007, 22:28

Re: Kommando i terminalen

Inlägg 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
Prozze
Inlägg: 10
Blev medlem: 29 sep 2010, 16:04
OS: Ubuntu
Utgåva: 22.04 Jammy Jellyfish LTS

Re: Kommando i terminalen

Inlägg 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
Användarvisningsbild
Konservburk
Inlägg: 5919
Blev medlem: 07 apr 2007, 22:28

Re: Kommando i terminalen

Inlägg 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.
Prozze
Inlägg: 10
Blev medlem: 29 sep 2010, 16:04
OS: Ubuntu
Utgåva: 22.04 Jammy Jellyfish LTS

Re: Kommando i terminalen

Inlägg av Prozze »

Okej, men ska skicka detta vidare, sen måste jag tacka för hjälpen.
Användarvisningsbild
Johnny Rosenberg
Inlägg: 1256
Blev medlem: 23 jun 2007, 16:18
OS: Ubuntu
Utgåva: 22.10 Kinetic Kudu
Kontakt:

Re: Kommando i terminalen

Inlägg 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.
Vänliga hälsningar

Johnny Rosenberg
ジョニー・ローゼンバーグ

IEEE 1541 - binära prefix
ISO 8601 - datum och tid
Skriv svar

Återgå till "Terminalforum"