Compartilhamento de usuários no Unix

1

Como o Unix ou o Linux impede que outros usuários acessem ou modifiquem os arquivos uns dos outros? Eu sei que as permissões são parte disso. Existe um conceito específico em uso?

    
por MAXGEN 27.02.2014 / 06:19

1 resposta

4

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 e su
  • Permissões em redes
  • ... (Se você quiser saber mais, obtenha um bom livro sobre sistemas operacionais.)
por 27.02.2014 / 09:24