chmod 755
- Entrada
- 111101101₂
- Saída esperada
- 0o755
Cada grupo de 3 bits (111, 101, 101) vira um dígito octal: 7, 5, 5. Em hexadecimal o mesmo valor seria 0x1ED, agrupado de 4 em 4 bits.
converter binário para octal
Cada dígito octal equivale a exatamente 3 bits binários (2³ = 8 valores possíveis): separe o número em grupos de 3 a partir do bit menos significativo e troque cada grupo pelo dígito de 0 a 7 correspondente. É o mesmo agrupamento por trás de permissões Unix como chmod 755.
Cada grupo de 3 bits (111, 101, 101) vira um dígito octal: 7, 5, 5. Em hexadecimal o mesmo valor seria 0x1ED, agrupado de 4 em 4 bits.
Owner recebe read+write (4+2=6), group e others recebem só read (4): a permissão padrão para arquivos criados sem execução.
O bit extra à esquerda (1) é o sticky bit: em /tmp, ele impede que um usuário apague arquivos de outro mesmo com permissão de escrita no diretório.
Multiplique cada bit pelo seu peso, que é uma potência de 2 contada da direita para a esquerda a partir de 2 elevado a 0, e some os resultados. Por exemplo, 1011 em binário é 1x8 + 0x4 + 1x2 + 1x1 = 11. Uma conferência rápida: 11111111 sempre vale 255, porque são oito bits ligados, 2^8 - 1. Para ver a tabela de pesos montada, use a aba Passo a passo.
Porque cada dígito octal cobre exatamente os 8 estados de read/write/execute (2³): com 3 bits dá para representar qualquer combinação das 3 permissões sem desperdiçar valores. Um grupo de 4 bits, como no hexadecimal, teria 16 estados possíveis para só 8 combinações reais, sobrando espaço inútil.
É o grupo de bits especiais, à esquerda dos 9 bits de rwx: setuid vale 4, setgid vale 2 e sticky vale 1, e podem ser somados como as permissões normais. chmod 4755 ativa setuid, chmod 2755 ativa setgid e chmod 1777 ativa apenas o sticky bit.
Octal é o padrão em contextos Unix herdados, como permissões de arquivo e algumas chamadas de sistema; hexadecimal é o padrão em memória, cores CSS e protocolos de rede, porque 4 bits por dígito encaixam melhor no byte de 8 bits. Fora desses dois nichos, quase todo sistema moderno prefere hexadecimal.
Resultados
11111111377255FF7V73193Os dados ficam apenas no navegador. Nenhum número é enviado para o servidor.