****** Permissoes ******
Para saber se um programa eh executavel ou nao, execute um 'ls -l' e veja
no lado esquerdo se o arquivo tem X nos seus argumentos, como
no exemplo abaixo:
drwxr-xr-x 2 root root 1024 Dec 23 15:22 bin
drwxr-xr-x 2 root root 1024 Dec 31 05:48 boot
drwxr-xr-x 2 root root 1024 Dec 6 15:51 cdrom
drwxr-xr-x 3 root root 8192 Mar 11 10:17 dev
drwxrwxr-x 2 root root 1024 Feb 27 13:52 dosa
dr-xr-xr-x 11 root root 2048 Mar 11 10:19 etc
drwxr-xr-x 11 root root 2048 Feb 23 19:08 home
drwxr-xr-x 3 root root 1024 Feb 23 19:13 lib
drwxr-xr-x 2 root root 12288 Nov 2 11:25 lost+found
-rwxr--r-- 1 root root 57 Mar 10 03:44 make-backup
-rw-rw-r-- 1 killer users 2342 Mar 10 03:12 teste.txt
-rw-rw-rw- 1 fernando visits 23412 Mar 09 22:22 teste2.doc
No exemplo acima todos os arquivos tem como dono root e como
grupo tb root, com excecao do 'teste.txt' que o dono eh 'killer' e o
grupo eh 'users', e tb 'teste2.doc', no qual 'fernando' eh o dono e o
grupo 'visits' tb eh dono.
Como vc pode ver do lado esquerdo de cada arquivo/diretorio
existe um serie de letras r, w, x ou d! Vamos ver o que representa cada
uma delas:
drwxrwxrwx
0111222333
No caso acima, a primeira coluna significa (numero 0) se o nome
listado eh um diretorio ou nao, caso nao seja um diretorio ele serah
exibido da seguinte maneira:
-rwxr--r-- 1 root root 57 Mar 10 03:44 make-backup
|
\-----------> Nao contem a letra 'd', nao eh diretorio, e sim arquivo!!!
O exemplo abaixo mostra o que seria um diretorio:
drwxr--r-- 1 root root 1 Mar 10 01:12 bin
|
\-----------> Contem a letra 'd' na primeira coluna, eh um diretorio!!!
Continuando, na segunda coluna (numeros 1 de acordo com o exemplo mais
acima) temos as definicoes para o dono do arquivo, como mostra o exemplo:
-rwxr--r-- 1 killer users 1231 Mar 09 12:12 teste.txt
|||
||\--------> O dono do arquivo (killer) pode executar o arquivo, x=executable!
|\---------> O dono do arquivo (killer) pode gravar no arquivo, w=writable!
\----------> O dono do arquivo (killer) pode ler o arquivo, r=readable!
Seguindo, na terceira coluna (numeros 2 de acordo com o exemplo
laaaaaahhh em cima, eheh) temos as definicoes para o grupo que eh dono do
arquivo, como mostra o exemplo:
-r--rwxr-- 1 fernando visits 212 Mar 01 12:42 exemplo.doc
|||
||\-----> O grupo dono do arquivo (visits) pode executar o arquivo!
|\------> O grupo dono do arquivo (visits) pode gravar no arquivo!
\-------> O grupo dono do arquivo (visits) pode ler o arquivo!
Finalmente, temos a quarta coluna (composto pelos numeros 3),
essa coluna se refere as permicoes para todos os outros usuarios do
sistema, sem ser os donos e grupos-donos dos mesmos, exemplo:
-r--r--rwx 1 fernando visits 1231 Mar 03 12:42 exemplo2.doc
|||
||\--> Todos os usuarios (exceto fernando e usuarios do grupo visits)
|| tem permissao para acessar o arquivo!
|\---> Todos os usuarios (exceto fernando e usuarios do grupo visits)
| tem permissao para gravar no arquivo!
\----> Todos os usuarios (exceto fernando e usuarios do grupo visits)
tem permissao para ler o arquivo!
Quando nos referimos a diretorio inves de arquivos, o FLAG x
(executavel) diz se o diretorio eh ou nao acessivel, jah que nao podemos
"EXECUTAR" diretorios... Exemplo:
drwxr--r-- 1 root root 2134 Mar 01 12:54 exemplo3
||||| |
||||| \----> Todos os usuarios podem ler o interior do diretorio, mas nao
||||| podem usar o comando 'cd' para entrar nele, pois nao existe
||||| o FLAG 'x' para a quarta coluna!
||||\-------> Usuarios do grupo 'root' podem ler o interior do diretorio,
|||| mas tb nao podem usar 'cd' para entrar no diretorio!
|||\--------> O usuario 'root' pode usar 'cd' para entrar no diretorio!
||\---------> O usuario 'root' pode gravar arquivos nesse diretorio!
|\----------> O usuario 'root' pode ler o interior desse diretorio!
\-----------> Indica que o nome listado e' um diretorio!
O comando chmod pode ser usado para mudar os FLAGS 'rwx' dos
arquivos e/ou diretorios, a sintaxe basica eh:
chmod [ugoa]{-+}[rwx] nome_do_arquivo_ou_diretorio
Exemplo:
chmod u+rw arquivo1.txt
No exemplo vc mudara' a permissao para o dono do arquivo (u =
user) pode ler e gravar (rw) no 'arquivo1.txt'...
Caso vc queira desfazer o comando, vc faria:
chmod u-rw arquivo1.txt
Como se ve, o + ou - define se os FLAGS serao ativados ou desativados!
Outros exemplos:
chmod a+r arquivo2.txt (Todos usuarios (a=all) podem ler o 'arquivo2.txt')
chmod o+w arquivo3.txt (Outros usuarios (o=others) sem ser o dono e o grupo
dono do arquivo, podem gravar o 'arquivo3.txt')
chmod g+x netscape (O grupo-dono do arquivo (g=group) pode executar o
arquivo 'netscape')
O comando chmod pode tb ser usado com numeros, em vez dos flags,
como mostra o exemplo:
chmod 664 arquivo.txt
O que quer dizer cada um desses numeros? Veja abaixo:
0 = nenhuma permissao
1 = permissao para executar
2 = permissao para gravar
3 = permissao para gravar e executar
4 = permissao para ler
5 = permissao para ler e executar
6 = permissao para ler e gravar
7 = permissao para ler, gravar e executar
No exemplo o comando informou que o 'arquivo.txt' pode ser lido e
gravado pelo seu dono (numero 6 na primeira coluna), informou que pode
tb ser lido e gravado pelos usuarios que compoem o grupo-dono (numero 6
na segunda coluna), e informou que pode ser lido por todos os outros
usuarios do sistema (numero 4 na ultima coluna).
O comando chown e' simples e pode ser usado da seguinte maneira:
chown usuario.grupo nome_do_arquivo_ou_diretorio
Como exemplo, vamos definir que um arquivo 'teste4.txt' tera'
como dono 'killer' e como grupo 'users':
chown killer.users teste4.txt
Outros exemplos:
chown mrdvs.visits teste5.txt
chown jackie.jackie teste6.txt