Use pastas de dados comuns para dois usuários em vez de separados

2

Eu tenho uma máquina 15.04 com basicamente duas contas de usuário, um administrador e um usuário restrito. O que eu quero é que ambos tenham diretórios pessoais separados (para configurações de sistema / aplicativo, etc.), mas use os mesmos diretórios de dados:

  • Desktop
  • Documentos
  • Música
  • Imagens
  • Público
  • Modelos
  • Vídeos
  • e talvez mais algumas pastas de dados específicas do programa ...

Esses diretórios, portanto, precisam estar fora do diretório inicial desses dois usuários, por exemplo, estar localizado em /home/shared-data/ ou algo assim e ambos os usuários precisam de acesso total neles.

Se eu navegar por esse diretório e voltar para cima na hierarquia, quero sair no diretório inicial do mesmo usuário em que comecei, se possível. E o diretório compartilhado real não deve ser publicamente acessível por novos usuários, apenas pelos usuários que eu permiti especificamente.

Além disso, novos arquivos e pastas criados devem estar automaticamente acessíveis para os dois usuários.

Então, qual é a maneira mais fácil de mover todos os dados dos diretórios iniciais atuais dos usuários para esse local externo e, em seguida, substituir as pastas originais por links / mounts / whatever para o novo diretório compartilhado, para que pareça antes?

    
por Byte Commander 30.06.2015 / 11:40

1 resposta

1

Não mova nada. Apenas use links. Por exemplo, digamos que seu usuário normal seja usera e seu segundo seja userb . Presumivelmente, userb é uma nova conta e não possui dados que você deseja manter. Então, exclua os diretórios em questão e recrie-os como links, depois configure as permissões corretas:

  1. Exclua os diretórios e recrie como links

    sudo rmdir ~userb/{Desktop,Documents,Music,Pictures,Public,Templates,Videos}
    for i in Desktop Documents Music Pictures Public Templates Videos; do
        sudo -u userb ln -s ~usera/"$i" ~userb
    done
    
  2. Crie um novo grupo e adicione ambos os usuários a este grupo:

    sudo groupadd foo
    sudo usermod -aG foo usera
    sudo usermod -aG foo userb
    
  3. Altere a propriedade do grupo dos diretórios que você deseja compartilhar para este novo grupo:

    chgrp -R foo ~usera/{Desktop,Documents,Music,Pictures,Public,Templates,Videos}
    
  4. Defina as permissões nos diretórios de destino como rwx para o grupo e defina o bit SETGID no diretório para que os novos arquivos pertençam ao grupo correto.

    chmod -R g+rwxs ~usera/{Desktop,Documents,Music,Pictures,Public,Templates,Videos}
    
  5. Defina as configurações da Lista de controle de acesso para definir as permissões para arquivos / diretórios recém-criados:

    setfacl -d -m g:foo:rwx ~usera/{Desktop,Documents,Music,Pictures,Public,Templates,Videos}
    

É isso. Agora, os diretórios em ~/userb são links para aqueles em ~/usera e ambos os usuários têm acesso de leitura / gravação a eles.

    
por terdon 30.06.2015 / 12:35