A permissão de acesso protege o sistema de arquivos Linux do acesso indevido de pessoas ou programas não autorizados.
A permissão de acesso do Linux também impede que um programa mal
intencionado, por exemplo, apague um arquivo que não deve, envie arquivos para
outra pessoa ou forneça acesso da rede para que outros usuários invadam o
sistema. O sistema Linux é muito seguro e como qualquer outro
sistema seguro e confiável impede que usuários iniciantes (ou mal
intencionados) instalem programas enviados por terceiros sem saber para que
eles realmente servem e causem danos irreversiveis seus arquivos, seu micro ou
sua empresa.
Esta seção pode se tornar um pouco difícil de se entender, então recomendo ler
e ao mesmo tempo prática-la para uma ótima compreensão. Não se preocupe,
também coloquei exemplos para ajuda-lo a entender o sistema de permissões de
acesso do ambiente Linux.
O principio da segurança no sistema de arquivos Linux é definir o
acesso aos arquivos por donos, grupos e outros usuários:
Linux. Somente o dono pode modificar as permissões de acesso do
arquivo.
As permissões de acesso do dono de um arquivo somente se aplicam ao dono do arquivo/diretório. A identifição do dono também é chamada de user id (UID).
A identificação de usuário e o nome do grupo que pertence são armazenadas
respectivamente nos arquivos /etc/passwd e
/etc/group. Estes são arquivos textos comuns e podem ser editados
em qualquer editor de texto, mas tenha cuidado para não modificar o campo que
contém a senha do usuário encriptada (que pode estar armazenada neste arquivo
caso não estiver usando senhas ocultas).
Por padrão, quando um novo usuário é criado, o grupo ele pertencerá será o mesmo de seu grupo primário (exceto pelas condições que explicarei adiante) (veja isto através do comando id, Seção 10.8). A identificação do grupo é chamada de gid (group id).
Um usuário pode pertencer a um ou mais grupos. Para detalhes de como incluir o usuário em mais grupos veja Adicionando um novo grupo a um usuário, Seção 10.6.
Cada um dos tipos acima possuem três tipos básicos de permissões de acesso que serão vistas na próxima seção.
Quanto aos tipos de permissões que se aplicam ao dono, grupo e outros usuários, temos básicamente 3:
Para que um arquivo/diretório possa ser apagado, é necessário o acesso a gravação.
cd (veja cd, Seção
6.2 para detalhes).
As permissões de acesso a um arquivo/diretório podem ser visualizadas com o uso do comando ls -la. Para maiores detalhes veja ls, Seção 6.1. As 3 letras (rwx) são agrupadas da seguinte forma:
-rwxrwxrwx gleydson users teste
Virou uma bagunção não? Vou explicar cada parte para entender o que quer dizer as 10 letras acima (da esquerda para a direita):
teste.
teste
teste tem a permissão para ler, gravar e executar o
programa.
Veja o comando chmod, Seção 11.6 para detalhes sobre a mudança das permissões de acesso aos arquivos/diretórios.
O acesso a um arquivo/diretório é feito verificando primeiro se o usuário que acessará o arquivo é o seu dono, caso seja, as permissões de dono do arquivo são aplicadas. Caso não seja o dono do arquivo/diretório, é verificado se ele pertence ao grupo correspondente, caso pertença, as permissões do grupo são aplicadas. Caso não pertença ao grupo, são verificadas as permissões de acesso para os outros usuários que não são donos e não pertencem ao grupo correspondente ao arquivo/diretório.
Após verificar aonde o usuário se encaixa nas permissões de acesso do arquivo (se ele é o dono, pertence ao grupo, ou outros usuários), é verificado se ele terá permissão acesso para o que deseja fazer (ler, gravar ou executar o arquivo), caso não tenha, o acesso é negado, mostrando uma mensagem do tipo: "Permission denied" (permissão negada).
O que isto que dizer é que mesmo que você seja o dono do arquivo e definir o
acesso do dono (através do comando chmod) como somente
leitura (r) mas o acesso dos outros usuários como leitura e gravação,
você somente poderá ler este arquivo mas os outros usuários poderão
ler/grava-lo.
As permissões de acesso (leitura, gravação, execução) para donos, grupos e outros usuários são independentes, permitindo assim um nível de acesso diferenciado. Para maiores detalhes veja o capítulo Tipos de Permissões de acesso, Seção 11.2.
Lembre-se: Somente o dono pode modificar um arquivo/diretório!
Para mais detalhes veja chown, Seção 11.8, chgrp, Seção 11.7.
Abaixo dois exemplos práticos de permissão de acesso: Exemplo de acesso a um arquivo, Seção 11.4.1 e Exemplo de acesso a um diretório, Seção 11.4.2. Os dois exemplos são explicados passo a passo para uma perfeita compreensão do assunto. Vamos a prática!
Abaixo um exemplo e explicação das permissões de acesso a um arquivo no
Linux (obtido com o comando ls -la, explicarei passo
a passo cada parte:
-rwxr-xr-- 1 gleydson user 8192 nov 4 16:00 teste
teste. Um conjunto
de 10 letras que especificam o tipo do arquivo, permissão do dono do arquivo,
grupo do arquivo e outros usuários. Veja a explicação detalhada sobre cada uma
abaixo:
cd. Caso for um l é um link
simbólico para algum arquivo ou diretório no sistema (para detalhes veja ln, Seção 8.4. Um -
significa que é um arquivo normal.
teste. O dono
(neste caso gleydson) tem a permissão para ler(r), gravar(w) e
executar (x) o arquivo teste.
teste. Os usuários que pertencem ao grupo user tem a
permissão somente para ler(r) e executar(x) o arquivo teste não
podendo modifica-lo ou apaga-lo.
teste e que
não pertencem ao grupo user. Neste caso, estas
pessoas somente terão a permissão para ver o conteúdo do arquivo
teste.
teste.
teste pertence.
teste
Abaixo um exemplo com explicações das permissões de acesso a um diretório no
Linux:
drwxr-x--- 2 gleydson user 1024 nov 4 17:55 exemplo
exemplo. É um conjunto de 10
letras que especificam o tipo de arquivo, permissão do dono do diretório, grupo
que o diretório pertence e permissão de acesso a outros usuários. Veja as
explicações abaixo:
exemplo. O dono do diretório (neste
caso gleydson) tem a permissão para listar arquivos do diretório(r),
gravar arquivos no diretório(w) e entrar no diretório(x).
exemplo.
exemplo e
que não pertencem ao grupo user. Com as permissões
acima, nenhum usuário que se encaixe nas condições de dono e
grupo do diretório tem a permissão de acessa-lo.
exemplo
exemplo pertence.
exemploPara detalhes de como alterar o dono/grupo de um arquivo/diretório, veja os comandos chmod, Seção 11.6, chgrp, Seção 11.7 e chown, Seção 11.8.
OBSERVAÇÕES:
Isto mostra que é levado mais em consideração a permissão de acesso do diretório do que as permissões dos arquivos e sub-diretórios que ele contém. Este ponto é muitas vezes ignorado por muitas pessoas e expõem seu sistema a riscos de segurança. Imagine o problema que algum usuário que não tenha permissão de gravação em um arquivo mas que a tenha no diretório pode causar em um sistema mal administrado.
Esta seção foi retirada do Manual de Instalação da Debian.
A conta root é também chamada de super usuário, este é um login que não possui retrições de segurança. A conta root somente deve ser usada para fazer a administração do sistema, e usada o menor tempo possível.
Qualquer senha que criar deverá conter de 6 a 8 caracteres, e também poderá conter letras maiúsculas e minúsculas, e também caracteres de pontuação. Tenha um cuidado especial quando escolher sua senha root, porque ela é a conta mais poderosa. Evite palavras de dicionário ou o uso de qualquer outros dados pessoais que podem ser adivinhados.
Se qualquer um lhe pedir senha root, seja extremamente cuidadoso. Você normalmente nunca deve distribuir sua conta root, a não ser que esteja administrando um computador com mais de um administrador do sistema.
Utilize uma conta de usuário normal ao invés da conta root para operar seu sistema. Porque não usar a conta root? Bem, uma razão para evitar usar privilégios root é por causa da facilidade de se cometer danos irreparáveis como root. Outra razão é que você pode ser enganado e rodar um programa Cavalo de Tróia -- que é um programa que obtém poderes do super usuário para comprometer a segurança do seu sistema sem que você saiba.
Muda a permissão de acesso a um arquivo ou diretório. Com este comando você pode escolher se usuário ou grupo terá permissões para ler, gravar, executar um arquivo ou arquivos. Sempre que um arquivo é criado, seu dono é o usuário que o criou e seu grupo é o grupo do usuário (exceto para diretórios configurados com a permissão de grupo "s", será visto adiante).
chmod [opções] [permissões] [diretório/arquivo]
Onde:
chmod não muda permissões de links simbólicos, as permissões devem
ser mudadas no arquivo alvo do link. Também podem ser usados códigos numéricos
octais para a mudança das permissões de acesso a arquivos/diretórios. Para
detalhes veja Modo de permissão octal, Seção
11.9.
Exemplos de permissões de acesso:
teste.txt para os
outros usuários (usuários que não são donos e não pertencem ao grupo do arquivo
teste.txt).
teste.txt para o
dono e grupo do arquivo.
teste.txt para o
dono, grupo e outros usuários.
Muda o grupo de um arquivo/diretório.
chgrp [opções] [grupo] [arquivo/diretório]
Onde:
Muda dono de um arquivo/diretório. Opcionalmente pode também ser usado para mudar o grupo.
chown [opções] [dono.grupo] [diretório/arquivo]
onde:
O dono.grupo pode ser especificado usando o nome de grupo ou o código numérico correspondente ao grupo (GID).
Você deve ter permissões de gravação no diretório/arquivo para alterar seu dono/grupo.
teste.txt para joao.
teste.txt para joao e seu grupo para
users.
Ao invés de utilizar os modos de permissão +r, -r, etc, pode ser usado o modo octal para se alterar a permissão de acesso a um arquivo. O modo octal é um conjunto de oito números onde cada número define um tipo de acesso diferente.
É mais flexível gerenciar permissões de acesso usando o modo octal ao invés do comum, pois você especifica diretamente a permissão do dono, grupo, outros ao invés de gerenciar as permissões de cada um separadamente. Abaixo a lista de permissões de acesso octal:
O uso de um deste números define a permissão de acesso do dono, grupo ou outros usuários. Vamos a prática com alguns exemplos:
"chmod 764 teste"
Os números são interpretados da direita para a esquerda como
permissão de acesso aos outros usuários (4), grupo (6), e
dono (7). O exemplo acima faz os outros usuários (4) terem
acesso somente leitura (r) ao arquivo teste, o grupo (6)
ter a permissão de leitura e gravação (w), e o dono (7) ter permissão
de leitura, gravação e execução (rwx) ao arquivo teste.
Outro exemplo:
"chmod 40 teste"
O exemplo acima define a permissão de acesso dos outros usuários (0) como nenhuma, e define a permissão de acesso do grupo (4) como somente leitura (r). Note usei somente dois números e então a permissão de acesso do dono do arquivo não é modificada (leia as permissões de acesso da direita para a esquerda!). Para detalhes veja a lista de permissões de acesso em modo octal no inicio desta seção (Modo de permissão octal, Seção 11.9).
Mais um exemplo:
"chmod 752 teste"
O exemplo acima define a permissão de acesso dos outros usuários (2) para somente execução (x), o acesso do grupo(5) como leitura e execução (rx), e o acesso do dono(7) como leitura, gravação e execução (rwx).
gleydson@escelsanet.com.br