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 chmod
comando 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 root
usuá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, -v
para 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
chmod
permite 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
, s
e t
de 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 x
qual 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 -R
opçã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+rx
aconteceria durante a chamada . Com, X
no entanto, você pode chmod -R a+rX
usar.
Numericamente
O uso numérico de chmod é estruturado da seguinte forma:
chmod SUGO beispiel.txt
S
significa 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 chmod
tê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 |
---|---|---|
7º | Cheio | 111 |
6º | Leia e escreva | 110 |
5 | Leia e execute | 101 |
4º | 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 |
---|---|
4º | 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:
- 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).
- 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.
- adiciona o direito de ler (r) para todos os outros (se ainda não estiver disponível).
- 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.
- 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
Em muitos gerenciadores de arquivos gráficos e clientes FTP , por exemplo Konqueror / KDE , Nautilus / GNOME , os direitos do arquivo podem ser editados graficamente.