chmod

Chmod

Descrição da imagem Chmod-GNU.png. Em formação
Primeira versão 3 de novembro de 1971
Modelo Utilitário UNIX ( d )

chmod (abreviação de ch ange mod e ) é uma chamada de sistema do UNIX ( padrão POSIX ) e o comando correspondente para alterar as permissões de um arquivo ou diretório .

História

Este comando apareceu pela primeira vez no AT&T UNIX versão 1.

Permissão para alterar direitos

Um usuário tem o direito de chmod um arquivo:

usar

As opções passadas para o comando chmod são indicadas assim:

chmod options modes fichiers

Para um arquivo: chmod [u g o a] [+ - =] [r w x] nom_du_fichier

Para o conteúdo de um diretório (recursivamente): chmod -R [u g o a] [+ - =] [r w x] nom_du_répertoire

Opções

chmodtem várias opções que podem modificar o resultado. Algumas dessas opções são:

Modos

Para cada arquivo fornecido, as permissões se aplicam ao proprietário do arquivo (código 'u' como usuário ), ao grupo de usuários do arquivo ('g' como grupo ) ou a outros usuários ('o' como outros ). Para aplicar as alterações a todos de uma vez, usamos o código 'a' como todos  :

Os modos podem ser especificados de duas maneiras, com letras ou com números octais . Para cartas, existem os operadores de mudança de estado +e -para adicionar ou remover um tipo de direito aos direitos atuais, e o operador =para substituí-los. Para o octal, você deve somar os números de cada tipo de proprietário.

As permissões são (valores octais entre parênteses):

Correspondência de representação de direitos
Lei Valor alfanumérico Valor octal Valor binário
não certo --- 0 000
execução apenas --x 1 001
apenas escrevendo -w- 2 010
escrevendo e atuando -wx 3 011
somente leitura r-- 4 100
ler e executar r-x 5 101
leitura e escrita rw- 6 110
todos os direitos (ler, escrever e executar) rwx 7 111

Exemplos

Modos especiais

Existem três modos especiais comumente usados: o bit sticky (denotado t) e os bits SETUID e SETGID (denotado s).

Outro chmod

Função C

chmod

chmod existe na biblioteca C padrão . Ele tem a mesma função do comando Unix.

int chmod(const char *path, int amode) ;

Ou :

  • path é o nome do arquivo a ser modificado.
  • amode é o novo atributo a ser colocado no arquivo.
  • chmod retorna o valor 0 (operação bem-sucedida) ou -1 (erro).
fchmod int fchmod(int descripteur du fichier, mode_t mode)

A diferença entre chmod e fchmod é que chmod leva o caminho para o arquivo como um argumento (que pode ser lido por humanos, por exemplo: /tmp/toto.txt ), enquanto fchmod leva o descritor de arquivo como um argumento.

Função Perl

O chmod existe nas bibliotecas Perl para alterar as permissões de uma lista de arquivos. O segundo parâmetro deve ser o valor octal. A função retorna o número de arquivos atribuídos com sucesso.

$cnt = chmod 0644, 'fichier1', 'fichier2'; $cnt = chmod 0644, @liste;

Função PHP

chmod existe na biblioteca PHP padrão . Tem a mesma função do comando Unix e os mesmos parâmetros da função C.

Cacls e atributos da Microsoft

No MS-DOS e no Windows , o utilitário attribpermite alterar determinados atributos (leitura, gravação, ocultação, sistema) de arquivos, não vinculados ao proprietário.

No Windows NT , caclsé o utilitário de linha de comando mais completo equivalente a chmode chown .

Notas e referências

  1. (em) "  Biblioteca de interface POSIX: liboskit_posix.a  " .

Veja também

links externos