Definindo permissões para usuários e grupos específicos no Linux

6

Como posso conceder permissão para arquivos para um usuário específico ou um grupo específico?

Temos três grupos: "g12" ("u1" e "u2", "g34" e "g56".

  • g12 - só deve ler o arquivo.

  • g34 - deve escrever e ler.

  • g56 - deve ter todas as permissões (rwx).

E outras pessoas não devem acessar o arquivo.

    
por AntonAL 25.05.2010 / 10:43

4 respostas

11

Você precisa usar as listas de controle de acesso. Eles são uma maneira mais avançada de lidar com permissões do que o usuário padrão / grupo / outra maneira no Linux. Veja esta página por exemplo: Listas de Controle de Acesso do Ubuntu

Um exemplo dessa página:

setfacl -m u:mike:rwx file or directory

Eu só usei esses comandos em um laboratório em um curso de administração de servidores, mas até onde pude ver, é uma maneira bem fácil de fazer isso.

    
por 25.05.2010 / 12:06
3

Como root:

chown u1:u1 f1.txt
chmod 400 f1.txt

Isso garantirá que o arquivo seja de propriedade do usuário u1 (chown) e do grupo u1 (supondo que o grupo padrão do usuário u1 seja u1) e que apenas esse usuário possa ler o arquivo (chmod). Se você quiser que o usuário possa gravar no arquivo, altere 400 para 600.

Você pode adicionar um segundo usuário ao grupo padrão do primeiro usuário com:

useradd -G u1 u2

O comando acima assume que o grupo padrão do usuário u1 também é chamado u1 e o segundo usuário é u2.

Agora alteramos as permissões em f1.txt para permitir que os membros do grupo tenham acesso de leitura u1 (o segundo "4" em 400 é o grupo de permissões):

chmod 440 f1.txt

Cada um dos três dígitos seguintes ao comando chmod representa as permissões para o proprietário (primeiro dígito), o grupo (segundo dígito) e todos os outros usuários (terceiro dígito) no sistema. Um valor de 1 é a permissão de execução, 2 é a permissão de gravação e 4 é a permissão de leitura. Você adiciona esses números juntos para "misturar" esses três tipos de permissões. Exemplo, 4 (leitura) + 1 (executar) = 5, para permitir que o proprietário e o grupo leiam e executem o arquivo, mas restrinjam o acesso a todos que você usaria 550, para permitir que o proprietário leia e grave no arquivo e o grupo e todos os outros usuários para ler o arquivo, você usaria 644.

Existem outros formatos para definir permissões, digite:

man chmod

no prompt de comando para mais detalhes.

    
por 25.05.2010 / 11:44
1

resposta curta é, você não pode

você não define permissões para grupos ou usuários, você define permissões para arquivos. Um arquivo tem um proprietário e um grupo, e você pode definir as permissões "ler" "gravar" e "executar" separadamente para um usuário, um grupo e todos os outros.

Você pode dar um exemplo do que você está querendo fazer?

    
por 25.05.2010 / 10:48
-1

Acho que o que você quer fazer é como você organiza seus grupos.

Sou relativamente novo no Linux, mas pelo que entendi, você pode criar novos grupos. Diga algo como AccessLow e AccessAll. Digamos que você queira que Jim tenha acesso a todos, então você coloca Jim nesse grupo. Em seguida, você indica ao diretório específico que deseja que eles tenham acesso à propriedade de grupo do AccessAll. Então diga o que você quer que eles façam com o chmod (se você quiser que eles acessem com o executável, apenas dê o Chmod 750. Isso dá ao dono controle total enquanto o grupo AccessAll só tem capacidade de leitura e execução, mas não pode gravar na pasta Se você quer que uma pasta tenha acesso limitado, então use a propriedade do grupo para o AccessLow e faça o seu modo apropriado para o que você quer que ele seja capaz de fazer.Eu acho que isso funcionará sabendo o que eu sei. quer dar acesso, você pode simplesmente considerar "Outro" e dar chmod específico para permitir que eles apenas leiam, mas se você quer que eles façam um pouco mais do que o "Outro" especifica, mas ainda quer ter algumas coisas ainda escondidas então Eu sugiro colocá-los em um grupo que tem a capacidade de fazer um pouco mais, mas não tão baixo acesso como "Outros". É preciso um pouco de configuração, mas parece ser capaz de fazer o que você está procurando. o que eu estava lendo aqui em busca de uma maneira de mudar a propriedade de mim mesmo para algo muito parecido. Usando o servidor Ubuntu, eu estava limitado a mudar esses parâmetros, mas descobri no processo e acabei decidindo escrever sobre o que eu acho que poderia funcionar.

EDIT: Ao pensar sobre isso, gostaria de saber se existe uma maneira de designar pessoas para mais de um grupo, pois agora tenho uma ideia para fazer um tipo diferente de compartilhamento no Samba. Eu posso pesquisar isso mais tarde e obter minha própria resposta. Mas no Windows, você é capaz de fazer isso, então pense que pode ser de alguma forma possível aqui. Seria legal dizer que as pessoas atualmente com acesso ao meu domínio podem ter a maioria das permissões disponíveis para elas, enquanto alguém autenticado, mas não no domínio, só tem habilidades de leitura e pode executar sem escrever, etc. Eu acho que poderia ser possível tornando-os nomes de login específicos, mas generalizados também. Gosto de acessar meu diretório de músicas, basta fazer um login chamado "music" (com uma senha fácil) que já está configurado no Samba para poder acessar o diretório específico Music com total capacidade de leitura e não vejo mais nada.

    
por 02.10.2013 / 13:46