Čitanje ls -l
-rwxr-xr-x. 1 root root 4096 Oct 18 12:00 script.sh
│└┬┘└┬┘└┬┘│ │ │ │ │ └────┬────┘ └───┬───┘
│ │ │ │ │ │ │ │ │ │ └ ime (i -> odredište za simboličke linkove)
│ │ │ │ │ │ │ │ │ └ vreme izmene (godina se prikazuje ako je starije od 6 meseci)
│ │ │ │ │ │ │ │ └ veličina u bajtovima (ili major, minor za uređaje)
│ │ │ │ │ │ │ └ grupa
│ │ │ │ │ │ └ vlasnik
│ │ │ │ │ └ broj hard linkova
│ │ │ │ └ . = SELinux kontekst, + = ACL, @ = prošireni atributi (macOS)
│ │ │ └ ostali: r-x
│ │ └ grupa: r-x
│ └ vlasnik: rwx
└ tip: - datoteka, d direktorijum, l simbolički link, c znakovni uređaj, b blok uređaj, p pipe, s socket Stvari koje zbunjuju
- Broj linkova: koliko stavki direktorijuma pokazuje na inode. Za direktorijum je 2 plus broj poddirektorijuma, jer se
..svakog poddirektorijuma računa. Datoteka sa brojem 3 ima još dva hard linka negde. - Veličina direktorijuma: veličina njegove liste stavki (4096 na ext4), a ne zbir sadržaja. Za to koristite
du -sh. - s, S, t, T u stringu dozvola su setuid, setgid i sticky bitovi; malo slovo znači da je postavljen i bit za izvršavanje ispod njega, veliko da nije (obično greška).
- Dozvole simboličkih linkova su uvek
lrwxrwxrwxi ignorišu se; važne su dozvole odredišta. - Vremena: ls prikazuje mtime (promenjen sadržaj).
statprikazuje i atime (poslednje čitanje, često isključeno sanoatime), ctime (promenjen inode: chmod, chown, rename) i vreme nastanka na sistemima datoteka koji ga čuvaju.
stat
stat file ispisuje sve što inode sadrži: mod u oktalnom i simboličkom obliku, uid/gid sa imenima, broj inode-a, uređaj, broj blokova (u jedinicama od 512 bajtova, pa retka (sparse) datoteka prikazuje manje blokova nego što bi njena veličina zahtevala) i četiri vremenske oznake. stat -c '%a %U %G %n' * ispisuje samo ono što tražite; stat -f umesto toga opisuje sistem datoteka.
Pitanja
Šta znači tačka na kraju dozvola?
Na datoteci je postavljen SELinux bezbednosni kontekst (viđa se na Fedori, RHEL-u, CentOS-u). ls -Z ga prikazuje. Znak + umesto toga znači da postoji lista kontrole pristupa (ACL); getfacl je prikazuje.
Zašto direktorijum ima broj linkova 2?
Njegova sopstvena stavka u roditelju plus njegova stavka „.“. Svaki poddirektorijum dodaje još jedan kroz svoje „..“. Dakle, direktorijum sa brojem linkova 7 ima pet poddirektorijuma.
Koja je razlika između mtime i ctime?
mtime se menja kad se promeni sadržaj; ctime se menja kad se promeni inode (sadržaj, dozvole, vlasnik, broj linkova). ctime ne možete postaviti sa touch, što ga čini korisnim za forenziku.
Kako da vidim skrivene datoteke i veličine u čitljivim jedinicama?
ls -lah: -a prikazuje dot-datoteke, -h ispisuje veličine kao K, M, G. Dodajte -t za sortiranje po vremenu i -r za obrnuti redosled.