chmod

Exemplos de chmod

chmod (do inglês: modo de mudança ) é um programa de linha de comando no Unix com o qual os direitos de arquivo Unix clássicos podem ser alterados. O chmodcomando existe desde a primeira versão do AT&T Unix (início dos anos 1970).

As alterações de atributo só podem ser feitas pelo proprietário do arquivo ou pelo rootusuário.

usar

O programa é usado no shell Unix da seguinte maneira:

$ chmod [options] mode file1 …

As opções são inicialmente possíveis; opções podem, portanto, -vpara saída detalhada ( detalhada ) e recursiva-R para todos os subdiretórios em fuga .

mode significa a máscara de direitos a ser aplicada ao arquivo ou arquivos. Isso pode ser feito em notação numérica ou simbólica .


Notação simbólica

chmodpermite uma abreviação para combinar direitos de arquivo facilmente. Aqui, u representa o proprietário ( usuário ), g representa o grupo ( grupo ) e o todos os outros usuários ( outros ). Finalmente, há também um , que inclui todos os três grupos de usuários ( todos ). Por exemplo, para dar a todos os usuários possíveis os direitos de execução de um arquivo, é o suficiente . chmod a+x dateiname

Essas classes de usuário estão vinculadas aos direitos de arquivo com três operadores possíveis :

  • + adiciona os direitos de arquivo correspondentes às classes de usuário correspondentes (apenas sobrescreve os direitos em questão)
  • - revoga os direitos de arquivo correspondentes (e afetados) das classes de usuário correspondentes
  • = Redefine os direitos de arquivo correspondentes para as classes de usuário, independentemente de seus direitos anteriores ao objeto (substituir).

Os direitos de arquivo correspondentes são então especificados. Estes são r, w, x, se tde acordo com a clássica notação simbólica . Existe também o caractere especialX ( execução especial ). Este não é um direito de arquivo, mas um substituto para o xqual define o direito de execução para diretórios (independentemente de você ter definido antes) e apenas define um direito de execução para arquivos que já têm um direito de execução foi definido para pelo menos uma classe de usuário. Portanto, só faz sentido se for usado com +a -Ropção de dar às classes de usuário correspondentes acesso a uma árvore de diretórios sem definir o bit de execução para arquivos normais (não programas), o que normalmente chmod -R a+rxaconteceria durante a chamada . Com, Xno entanto, você pode chmod -R a+rXusar.

Numericamente

O uso numérico de chmod é estruturado da seguinte forma:

chmod SUGO beispiel.txt

Ssignifica o chamado S ticky-bit , que normalmente tem um valor de 0
U... para o usuário (Inglês u Ser ) ou o proprietário (e proprietário) do arquivo
G... para o grupo e
O... para o Inglês o (s) ther , então todos os outros usuários

Os quatro dígitos octais após o comando chmodtêm um valor de 0 a 7 para os dígitos de S, U, G ou O. Com U, G e O, 4 significa leitura, 2 significa escrita e 1 significa execução.

# autorização rwx
Cheio 111
Leia e escreva 110
5 Leia e execute 101
Apenas leia 100
3 Escreva e execute 011
2 Apenas escrevendo 010
1 Apenas corra 001
0 Nenhum 000

O sticky bit se comporta de maneira diferente para diretórios e arquivos. Com os diretórios na maioria das implementações UNIX modernas, um conjunto sticky bit cria a propriedade de que (com os direitos restantes apropriados) cada usuário pode gravar arquivos no diretório, mas só pode editar ou excluir seus próprios. Os valores 4 e 2 também são possíveis, os quais inserem o proprietário do diretório ou o grupo de diretório para arquivos como o proprietário do arquivo. B. Os usuários de diferentes membros do grupo primário podem facilmente compartilhar os arquivos em um diretório.

# autorização
SUID (definir usuário do diretório para arquivos)
2 SGID (definir grupo de diretório para arquivos)
1 Apenas o proprietário (e superusuário) pode excluir e renomear arquivos
0 Nenhum

O sticky bit é um risco de segurança, especialmente para arquivos executáveis , pois define o contexto do proprietário do arquivo em vez do do executor. O significado original de manter arquivos executáveis ​​na memória principal para gerar um ganho de desempenho não é mais relevante.

Exemplos

Beispiel 1 $ chmod u=rw MyFile
Beispiel 2 $ chmod g-rx MyFile
Beispiel 3 $ chmod o+r MyFile
Beispiel 4 $ chmod 0700 Beispiel.txt
Beispiel 5 $ chmod g+w,o-x MyFile


Explicação:

  1. define os direitos do arquivo “MyFile” do proprietário (o arquivo) para ler (r) e escrever (w), se necessário exclui o direito de execução porque não definido. Esses direitos são úteis, por exemplo, se um usuário deseja proteger um documento em um diretório que é visível em um computador ou grupo. Essas configurações de direitos não fazem sentido para um diretório ou programa executável do usuário, já que ele não pode mais listá-lo posteriormente (falta o direito de execução).
  2. retira ao grupo (proprietário) o direito de ler (r) e executar (x), mas não afeta o direito de escrever. Dependendo do status anterior, o grupo ainda pode ter o direito de escrever (w) para que o arquivo possa ser usado como uma "caixa de entrada". Escrever com um editor interativo não será possível, mas por membros do grupo com um comando como echo content> MyFile.
  3. adiciona o direito de ler (r) para todos os outros (se ainda não estiver disponível).
  4. Com o método numérico, todos os direitos são retirados de todos, exceto do proprietário do arquivo, mas o proprietário pode ler (4), escrever (2) e executar (1) o arquivo.
  5. Adiciona o direito de gravação (w) ao grupo proprietário e remove o direito de execução de qualquer pessoa que não seja proprietária do arquivo ou que não seja a proprietária do arquivo.

Alternativas gráficas

Gráfico "chmod" no Konqueror

Em muitos gerenciadores de arquivos gráficos e clientes FTP , por exemplo Konqueror / KDE , Nautilus / GNOME , os direitos do arquivo podem ser editados graficamente.

Veja também

Links da web