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.
Converter um número entre bases significa representar o mesmo valor usando um conjunto diferente de dígitos. Um número em decimal (base 10) pode ser expresso exatamente em binário (base 2), hexadecimal (base 16) ou qualquer outra base.
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.
Os dados ficam apenas no navegador. Nenhum número é enviado para o servidor.