Ferramentas / Calculadora de chmod

Calculadora de chmod

Marque as permissões de dono, grupo e outros e obtenha o número octal, a notação rwx e o comando chmod.

QuemLer (r)Escrever (w)Executar (x)
Dono (u)
Grupo (g)
Outros (o)

Processamento local: nada do que você digita sai do seu navegador.

Como usar

Marque as caixas de leitura, escrita e execução ou digite direto o valor octal (como 755) ou o simbólico (como rwxr-xr-x). Os outros campos acompanham, e o comando fica pronto para copiar.

Como o octal funciona

Cada permissão vale um número: leitura = 4, escrita = 2, execução = 1. Some os valores para dono, grupo e outros. Exemplo: rwx = 4+2+1 = 7 e r-x = 4+1 = 5, então rwxr-xr-x é 755.

Valores comuns

  • 644: arquivos comuns (dono lê e escreve, demais só leem).
  • 755: scripts e pastas.
  • 600: arquivos privados, como chaves SSH.
  • 777: acesso total para todos; evite em servidores.

Como implementar em código

Exemplos prontos para usar no seu projeto.

// Octal -> simbólico (ex.: 0o755 -> "rwxr-xr-x")
function simbolico(modo) {
  return [6, 3, 0].map((s) => {
    const b = (modo >> s) & 7;
    return (b & 4 ? 'r' : '-') + (b & 2 ? 'w' : '-') + (b & 1 ? 'x' : '-');
  }).join('');
}
console.log(simbolico(0o755)); // rwxr-xr-x

// Aplicar no Node.js:
// require('fs').chmodSync('script.sh', 0o755);
import os, stat

def simbolico(modo: int) -> str:
    return stat.filemode(stat.S_IFREG | modo)[1:]  # "-rwxr-xr-x" sem o tipo

print(simbolico(0o755))  # rwxr-xr-x

os.chmod("script.sh", 0o755)  # aplica a permissão
package main

import "os"

func main() {
	// Aplica rwxr-xr-x (0755). Em Go, o prefixo 0o indica octal.
	if err := os.Chmod("script.sh", 0o755); err != nil {
		panic(err)
	}
	// os.FileMode(0o755).String() retorna "-rwxr-xr-x"
}
import 'dart:io';

Future<void> main() async {
  // Dart não tem chmod nativo: chama o comando do sistema (Linux/macOS)
  final r = await Process.run('chmod', ['755', 'script.sh']);
  if (r.exitCode != 0) print(r.stderr);
}
import java.nio.file.*;
import java.nio.file.attribute.PosixFilePermissions;

public class Chmod {
    public static void main(String[] args) throws Exception {
        // "rwxr-xr-x" equivale a 755 (somente sistemas POSIX)
        Files.setPosixFilePermissions(Path.of("script.sh"),
            PosixFilePermissions.fromString("rwxr-xr-x"));
    }
}
<?php
// Em PHP o octal precisa do 0 na frente (sem aspas)
chmod('script.sh', 0755);

// Ler a permissão atual em octal:
echo substr(sprintf('%o', fileperms('script.sh')), -4);
using System.IO;

// .NET 7+ (Linux/macOS): 755 = rwxr-xr-x
File.SetUnixFileMode("script.sh",
    UnixFileMode.UserRead | UnixFileMode.UserWrite | UnixFileMode.UserExecute |
    UnixFileMode.GroupRead | UnixFileMode.GroupExecute |
    UnixFileMode.OtherRead | UnixFileMode.OtherExecute);

Perguntas frequentes

O que significa chmod 755?

O dono pode ler, escrever e executar; grupo e outros podem ler e executar. É o padrão para scripts e diretórios.

Para que servem setuid, setgid e sticky bit?

Com setuid ou setgid o programa roda com a permissão do dono ou do grupo do arquivo. O sticky bit, comum em /tmp, impede que usuários apaguem arquivos de outros em uma pasta compartilhada.

Posso usar 777 em um servidor?

Evite. Dá a qualquer usuário permissão para alterar e executar o arquivo. Prefira 755 para pastas e 644 para arquivos.

Veja também

Precisa de um sistema ou app sob medida?

A VcInova desenvolve software, aplicativos e integrações para empresas de todo o Brasil.

Fale com a VcInova