Por que em Midnight Commander o chmod tem 5 dígitos e para quê?

1

No menu arquivo, se eu for para chmod, ele retornará o valor chmod para a pasta / arquivo.

Eu entendo os últimos 3 dígitos, o segundo é setuid / setgid / sticky bit (li os documentos nele mas seu uso não é tão claro para mim) ... e então há o primeiro dígito que eu acho que é para arquivo / pasta e o que mais? Como para uma pasta, o dígito é 4, para o arquivo 0 ... e quanto aos 2 e 6? Verifiquei que o link simbólico não tem um valor de primeiro dígito chmod separado.

    
por obeliksz 04.11.2013 / 15:13

1 resposta

0

chmod , como você provavelmente sabe, é a abreviação de "modo de alteração". "Mode" aqui se refere ao campo st_mode no inode. stat (2) , a página man do stat , fstat , e lstat de chamadas do sistema, mostra valores st_mode de até sete dígitos. Veja um trecho:

   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

OK, o primeiro dígito é sempre zero, para indicar que o número é octal; podemos ignorar isso. MC parece estar ignorando o segundo também. Assim, você pode ver que os arquivos regulares têm 0 para o terceiro dígito (isto é, o quinto da direita) e os diretórios têm 4. 2 e 6 são dispositivo de caractere e dispositivo de bloco, respectivamente; você deve ver isso apenas em /dev . Os pipes nomeados devem ser 1 e os soquetes do sistema de arquivos devem ser 4. Se os links simbólicos estiverem sendo exibidos como 0, isso é estranho; talvez alguém tenha pensado que exibir 2 seria confuso demais.

    
por 05.11.2013 / 02:01