O conceito é o conceito de permissões. Para explicar isso, primeiro precisamos olhar para duas coisas: o uid e o sistema de arquivos.
O uid
Em sistemas semelhantes ao Unix, cada usuário tem uma ID de usuário (UID) além do nome de usuário e outras propriedades. O uid é um número. Este uid não pode ser alterado pelo próprio usuário. Você pode verificar seu usuário uid com o comando
$ id
uid=1001(username) gid=1001(username) groups=1001(username)
O uid nesta saída de exemplo é 1001. O uid é exclusivo apenas em um sistema operacional. Se você tem dois computadores, dois usuários podem ter o mesmo uid.
O sistema de arquivos
Um sistema de arquivos semelhante ao Unix armazena, para cada arquivo, o uid do proprietário do arquivo e as permissões que o proprietário possui para este arquivo, e muito mais.
Você pode ver as permissões de um arquivo se você executar
$ ls -l file
-rw-r--r-- 1 username usergroup 1145 27 Feb 07:15 file
As permissões para o proprietário são " -
rw-
r--r--
", para que o proprietário possa ler o arquivo e gravar no arquivo.
Como tudo funciona
Para o entendimento final do esquema de permissões, precisamos do kernel do sistema Unix.
Sempre que acessamos um arquivo ou fazemos algo com um arquivo, não tocamos no arquivo diretamente. Em vez disso, usamos uma chamada de sistema que pede ao kernel para fazer o trabalho para nós. Dentro da chamada do sistema, existem rotinas para obter o uid do usuário e para obter as permissões do arquivo. O kernel então verifica se o dono do arquivo é igual ao uid do usuário; e se assim for, então verifica se o usuário tem a permissão necessária.
O truque é que um usuário normal não pode influenciar o kernel. O kernel é iniciado no processo de inicialização do computador e pode ser influenciado apenas pelo usuário root (com uid = 0).
O usuário não pode alterar seu uid, e ele não pode alterar as permissões de um arquivo que ele não possui (ele teria que alterar seu uid) porque o kernel gerencia essas coisas e somente o root pode alterá-las. / p>
Você pode encontrar mais sobre permissões aqui e mais sobre as chamadas do sistema e como elas funcionam here . E se você quiser saber o que mais está armazenado no sistema de arquivos, leia este sobre inodes.
O que eu deixei de fora
Esta resposta lhe dará apenas uma pequena ideia do esquema de permissão, mas espero que ajude você a entender melhor as coisas que deixei de fora, como
- Grupos, que funcionam como o esquema uid
- Permissões para todos os usuários
- Tipos de arquivo
-
sudo
esu
- Permissões em redes
- ... (Se você quiser saber mais, obtenha um bom livro sobre sistemas operacionais.)