Page 1 of 1

Explicatie privind chmod

Posted: 10 Dec 2013, 11:58
by laszlo.zsigmond
Am fost intrebat despre drepturi legat de Midnight Commander, unde in fereastra din File > Chmod unde sub Permissions (Octal) este afisat un numar cu 5 cifre, ultimele 3 sunt cele obisnuite: o cifra pentru root, pentru group si pentru utilizator. Dar cele 2 de mai inainte?

chmod cum probabil deja stiti este prescurtire pentru "change mode". Aici "mode"-ul aceasta refera la campul st_mode din inode. In pagina de man a lui stat(2) (info coreutils 'stat invocation') arata ce inseamna fiecare valoare de st_mode pana 7 cifre,
chmod, as you probably know, is short for “change mode”. “mode” here refers to the st_mode field in the inode. stat(2), the man page for the stat, fstat, and lstat system calls, shows st_mode values of up to seven digits. Aici e un mic extras din el:
S_IFSOCK 0140000 socket
S_IFLNK 0120000 symbolic link
S_IFREG 0100000 regular file
S_IFBLK 0060000 block device
S_IFDIR 0040000 directory
S_IFCHR 0020000 character device
S_IFIFO 0010000 FIFO
Bine, deci primul cifra e totdeauna zero pentru indicarea ca numarul este octal, deci il putem sa omitem.
MC (Midnight Commander) omite si cifra a doua.
Putem sa vedem ca fisierele regulare au 0 pentru primul cifra si cataloage au 4. 2 si 6 sunt pentru character device si block device - il putem sa vedem numai in catalogul /dev. "Pipe"-uri numite au valoarea 1 si socketurile au valoarea 4.
Cifra al doilea sunt pentru setuid/setgid/sticky bit, puteti sa cititi mai multe despre ele aici:

http://docs.oracle.com/cd/E19683-01/806 ... index.html
http://linux-training.be/files/books/ht ... 26s03.html