+ Responder ao Tópico



  1. #1

    Padrão Permissoes

    Ola a todos

    estou com uma duvida em relacao a permissoes, grupos, etc.
    estou com um opensuse instalado rodando o Xrdp com uns 15 terminais rodando nele, ate ai tudo funcionando redondo, mas agora meu cliente quer dividir cada setor por grupos diferentes, vou tentar explicar de um modo mais detalhado:


    |
    | | Geral
    | Grupo1 | Supervisor
    |
    |
    |
    Administracao | Grupo2 | Geral
    | | Supervisor
    |
    | | Geral
    | Grupo3 | Supervisor
    |



    e assim vai...
    sendo que administracao enxerga tudo.
    grupo1 geral so ve arquivos do Grupo1 e nao ve supervisor
    grupo1 supervisor ve arquivos de Geral

    e assim continua para outros grupos

    tentei colocando geral e supervisor e administracao no mesmo grupo mas dai todos acabam se enxergando


    se alguem ja passou por isso ou tem algum conhecimento para partilhar fico grato!!!


  2. #2

    Padrão Re: Permissoes

    Fala giomaf,

    Acabei de escrever um artigo sobre isso irmãozinho.
    Espero que sane sua dúvida.




    [size=10pt][size=10pt]Grupos e subgrupos em ambiente Linux.[/size][/size]

    Muitas vezes nos deparamos com a a necessidade de gerênciar diretórios e arquivos para mais de um usuário, porem existem poucos Howto's na internet tratando sobre esse assunto,

    tentarei nas próximas linhas esclarecer o conceito da administração de grupos e subgrupos.

    Suponhamos que exista o seguinte cenário:

    Nossa empresa fictícia irá possuir 6 funcionarios, que são eles:
    Anne,Ana,Daniel,Felipe,Andre e Natalia

    O usuário Anne será a presidente da impresa, já Ana será gerente, Daniel será funcionário da administração, Felipe também será funcionário da administração, André e Natalia serão apenas funcionários.

    Nesse cenário teremos as seguintes definições de grupos:

    presidencia,gerencia,administracao e funcionarios

    Sendo que, a presidência deve acessar todos os outros grupos,então deve acessar todos os diretórios e arquivos do grupo presidencia,gerencia,administracao e funcionarios.

    Já o grupo gerencia deva acessar os grupos gerencia,administracao e funcionarios mais não o grupo presidencia.
    Respectivamente o grupo administracao deve acessar administracao e funcionarios, mais não presidencia e nem gerencia.

    E por último o grupo funcionarios deve acessar apenas funcionarios.

    Vamos criar os grupos ;
    groupadd presiencia
    groupadd gerencia
    groupadd administracao
    groupadd funcionarios

    Vamos criar os usuários:

    useradd anne
    useradd ana
    useradd daniel
    useradd felipe
    useradd andre
    useradd natalia

    Aqui poderiamos já ter especificado o grupo que o usuário pertenceria com a opção -g do "useradd", porem caso o usuário já exista a remoção e criação do usuário isso não seria viável.


    Após criar os grupos e usuários, vamos verificar quais grupos os usuários pertencem:

    Para isso usaremos o "groups"

    execute então:
    groups anne
    A saida será algo do tipo:
    anne : users


    Obs:"users" é o grupo que anne já pertencia.

    Faremos isso para todos os usuários que irão ter seus grupos alterados, assim caso venhamos a cometer algum equivoco no processo, teremos acima os grupos que os usuários já pertenciam anteriormente.


    Continuemos então:
    groups ana
    ana : users

    groups daniel
    daniel : users

    groups felipe
    felipe : users

    groups andre
    andre : users

    groups natalia
    natalia : users



    Vamos então adicionar o usuário anne ao grupo presidencia,gerencia,administracao e usuarios:

    usermod -G users,presidencia,gerencia,administracao,funcionarios anne

    a opção -G do usermod nos permite adicionar um usuário a vários grupos, porem caso o grupo users fosse omitido, o usuário anne seria removido e não pertenceria mais ao mesmo, então cuidado para não remover grupos por engano com o usermod.


    Vamos verificar como o usuário anne ficou em relação aos grupos:

    groups anne
    anne : users presidencia gerencia administracao funcionarios


    Então vamos efetuar o mesmo processo a todos os usuários.


    usermod -G users,gerencia,administracao,funcionarios ana
    usermod -G users,administracao,funcionarios daniel
    usermod -G users,administracao,funcionarios felipe
    usermod -G users funcionarios andre
    usermod -G users,funcionarios natalia



    Com o esquema acima dos grupos, podemos manipular as permissões dos diretórios que desejamos para assim definir a política de acesso dos grupos aos diretorios e arquivos.
    Vamos supor que temos um servidor NFS compartilhando uma estrutura de diretório em /mnt/ , da seguinte maneira: (Lembrando que todo esse processo pode ser local.)


    cd /mnt/

    ls -la
    drwxr-xr-x 5 root users 100 2006-03-15 00:07 presidencia/
    drwxr-xr-x 5 root users 100 2006-03-15 00:07 gerencia/
    drwxr-xr-x 5 root users 100 2006-03-15 00:07 administracao/

    drwxr-xr-x 5 root users 100 2006-03-15 00:07 funcionarios/

    Vamos aplicar nosso conceito de permissões aos diretórios acima, vamos então mudar o grupo dos diretórios:

    chgrp -R presidencia presidencia
    chgrp -R gerencia gerencia

    chgrp -R administracao administracao
    chgrp -R funcionarios funcionarios

    Então agora vamos trocar a permissão dos diretórios para que usuários que não são donos e não pertençam ao grupo do diretório, não consiga visualizar seu conteúdo.

    Permitiremos que usuários do grupo dono do diretório possa visualizar, escrever e executar.

    chmod 770 presidencia/
    chmod 770 gerencia/
    chmod 770 administracao/
    chmod 770 funcionarios/

    Obs:"-R ?"


    vamos listar para ver como os diretórios ficaram:

    drwxrwx--- 5 root presidencia 100 2006-03-15 00:07 presidencia/
    drwxrwx--- 5 root gerencia 100 2006-03-15 00:07 gerencia/
    drwxrwx--- 5 root administracao 100 2006-03-15 00:07 administracao/

    drwxrwx--- 5 root funcionarios 100 2006-03-15 00:07 funcionarios/


    Com isso conseguimos atingir o objetivo de:

    Os usuários que pertencerem ao grupo presidencia conseguiram acessar todos os diretórios e arquivos do grupo presidencia,gerencia,administra
    cao e funcionarios e que
    os usuários gerencia conseguiram acessar os diretórios dos grupos gerencia,administracao e funcionarios mais não o diretório do grupo presidencia.
    Respectivamente os usuarios da administracao conseguiram acessar os diretorios de administracao e funcionarios, mais não o diretorio de presidencia e nem gerencia.

    E por último os usuários do grupo funcionarios conseguiram acessar apenas os diretórios do grupo funcionarios.

    Para finalizar, existe uma outra ferramenta para a inclusão do usuário em outros grupos, essa ferramenta é o "gpasswd".


    sua sintax é a seguinte:
    supondo que você queira adicionar o usuário daniel ao grupo root, ficaria assim:
    gpasswd -a daniel root
    já para remover o mesmo do grupo root, a sintax ficaria assim:
    gpasswd -d daniel root


    A desvantagem dessa ferramenta ao meu ver, é que não possue a opção de inclusão do usuário em multiplos grupos, mas é uma ferramenta muito útil.


    É isso ai, espero que tenha obtido uma noção a administração de grupos e subgrupos no ambiente Linux, e queiram me desculpar por qualquer erro no português.


    Abraços e boa pesquisa.
    Henrique Doiche Junqueira Campos
    MAJOR