arquivo de grupo e tudo relacionado a ele [fechado]

1

Sou bem novo no sistema operacional * nix. Eu entendo o formato e uso (pelo menos o que as páginas de manual dizem) do arquivo /etc/group . Um dia, eu estava tentando substituir meu arquivo de grupo por uma cópia de backup. Alterei o nome do arquivo para group.old e, em seguida, todas as contas na minha máquina perderam o acesso root . Eu tive que ir para o modo de usuário único para consertá-lo. Parece que eu preciso de uma lição aprofundada sobre este grupo e toda a coisa da conta UNIX.

Alguém pode me fornecer um link ou compartilhar sua experiência de aprendizado comigo?

    
por pythoniku 11.02.2013 / 08:36

3 respostas

3

O arquivo /etc/group indica quais usuários são membros de quais grupos. Grupos são usados para controle de acesso; eles complementam os usuários.

/etc/group é lido no momento do login. Cada processo é executado como um usuário e um ou mais grupos. O processo de login começa a ser executado com todos os privilégios; uma que o usuário autenticou com êxito (por exemplo, digitando uma senha), o processo de login aceita os grupos indicados em /etc/group (mais um grupo indicado em /etc/passwd ) e, em seguida, inicia um shell como usuário autenticado.

Você provavelmente já percebeu que cada arquivo vem com três conjuntos de permissões (usuário, grupo e outros) e um proprietário e grupo. Quando um processo tenta acessar um arquivo, então:

  1. Se o processo estiver sendo executado como o usuário que possui o arquivo, as permissões aplicáveis serão as permissões do usuário.
  2. Caso contrário, se um dos grupos do processo for o grupo que possui o arquivo, as permissões aplicáveis serão as permissões do grupo.
  3. Caso contrário, as permissões aplicáveis são as outras permissões.

Exemplo:

$ ls -l myfile
-rw-r-----  1 msh gutenberg 1234 Jul  4  1971 books.txt

O usuário msh pode ler e gravar este arquivo ( rw- ). Qualquer usuário no grupo gutenberg pode ler o arquivo ( r-- ). Outros usuários não podem acessar o arquivo ( --- ).

Assim, os grupos permitem que você torne um arquivo acessível a um subconjunto de todos os usuários. Os serviços e dispositivos do sistema também podem ser restritos a um determinado usuário ou a um determinado grupo.

Existem três usos típicos para grupos:

  • Grupos de usuários físicos trabalhando em um projeto comum, acessando o mesmo conjunto de arquivos, como no exemplo acima.
  • Grupos de usuários físicos para controle de acesso aos recursos do sistema. Por exemplo, é típico para jogos competitivos armazenar arquivos de alta pontuação pertencentes ao usuário root e o grupo games , gravável apenas por games e não por todos os usuários ( rw-rw---- ); o programa do jogo é executado com privilégios elevados como games group (é setgid para games ) e assim pode leia e escreva os arquivos de alta pontuação, mas outros processos não podem.
  • Grupos de usuários do sistema. Por exemplo, muitos serviços do sistema são executados como um usuário dedicado e um grupo dedicado, para minimizar o risco de que um erro ou comprometimento em um serviço possa afetar os outros.

Devido a seus sintomas, seu sistema está configurado para controlar o acesso à conta root por meio da participação em um grupo. Existem várias maneiras de fazer isso. As configurações mais comuns são:

  • O acesso à conta raiz é feito através do sudo . Os usuários devem inserir sua própria senha para executar sudo . Os usuários têm permissão para chamar sudo para executar comandos como root, se estiverem no grupo admin . Isso é indicado por uma linha como %admin: ALL=(ALL) ALL in /etc/sudoers . Às vezes o nome do grupo é diferente. Esta é a configuração padrão no Ubuntu.
  • O acesso à conta root é feito por su . Somente usuários no grupo wheel podem executar su . Os usuários devem digitar a senha raiz para executar su ; Dessa forma, para se infiltrar na conta raiz, um invasor deve obter a senha de um usuário e a senha raiz. Esta foi a configuração padrão em alguns sistemas BSD, mas caiu em desuso porque os invasores se tornaram mais sofisticados (comprometem uma conta, executam um keylogger, pegam a senha do root).

Moral: não altere nem exclua arquivos em /etc se você não souber o que eles fazem. Se você mudar alguma coisa, faça-o a partir de um shell de root e teste que você ainda pode logar depois; se você não puder, reverta a mudança imediatamente.

Eu recomendo usar o controle de versão em /etc . No Ubuntu, instale o pacote etckeeper e execute etckeeper init (como root).

    
por 12.02.2013 / 01:14
1

Talvez o livro "Running Linux" de Dalheimer and Welsh (O'Reilly, 2005) ou alguns dos Os Guias do TLDP se encaixam na conta. Sua distribuição pode ter algum guia específico, pesquise. Seja especialmente cuidadoso ao modificar arquivos de configuração. Fazê-los é uma boa ideia, mas se você mudar alguma coisa melhor, faça uma cópia de antemão (não os mova). A maioria das distribuições possui ferramentas para gerenciar usuários e muitas outras configurações, não considere mais nada, a menos que você tenha absoluta certeza de que sabe o que está fazendo; e quando você sabe, use-os de qualquer maneira.

    
por 11.02.2013 / 11:49
0

É muito útil informar às pessoas qual software você está executando ao fazer perguntas. Nesse caso, seria útil saber qual distro você está executando.

Você está, por acaso, executando o Fedora ou Redhat? Se sim, o SE Linux pode ser o problema.

para descobrir se o seu sistema operacional Linux rodando o comando: getenforce

Ele voltará com "enforcing" se você estiver executando o SE Linux. Se você estiver executando o SE Linux, execute:

ls -lZ /etc/group.old /etc/group

E compare a diferença. Se o novo arquivo não tiver muita coisa parecida com isso:

system_u:object_r:etc_t:s0

na listagem que o arquivo antigo possui, você provavelmente perdeu suas informações de contexto do SElinux.

Você pode copiar o contexto do SElinux do arquivo antigo com:

chcon --reference /etc/group.old /etc/group

Provavelmente a resposta sensata, se você está apenas aprendendo, é desligar o SE Linux. Você pode fazer isso com:

setenforce 0

Isso matará o SELinuc quando você reiniciar (ou executar o setenforce 1).

Para desativar o SElinux permanentemente, você precisará editar:

/etc/selinux/config
    
por 11.02.2013 / 14:02