Nota: estou usando o Ubuntu 12. Não sou um novato completo (posso configurar um servidor web robusto e esse tipo de coisa), mas agora que estou tentando usá-lo como um desktop, sinto que nunca aprendi o básico.
Existe uma pasta padrão no Linux para compartilhar coisas entre usuários locais? Eu pensei que /usr/share era para isso, mas não vai permitir, a menos que eu use o sudo.
Percebi que há um item de ‘opções de compartilhamento’ quando clico com o botão direito em uma pasta, mas estou preocupado que isso possa fazer algo nos bastidores que eu não gosto. Então, como isso funciona? Seria complicado fazer o mesmo no cli?
Responder1
As únicas pastas prontas que podem ser usadas para isso são /tmp e /var/tmp. /tmp pode ser limpo em cada reinicialização e /var/tmp pode ser removido após algum período de tempo, como uma semana. Em qualquer caso, eles são paratemporárioarquivos. Mesmo que o Ubuntu 12.04 não toque em /var/tmp, você nunca sabe o que a próxima versão fará, então você deve sempre assumir que o conteúdo desses diretórios pode ser removido sem aviso prévio.
Se o fato de serem temporários é um problema, você precisa de outra solução. Se eu quiser que outros usuários locais tenham acesso de leitura aos meus arquivos, defino o modo do meu diretório pessoal como 755 (é o que costumo fazer); mas, nesse caso, tomo cuidado para que todos os arquivos ou diretórios secretos em meu diretório inicial sejam definidos como 600 ou 700, respectivamente.
A combinação de arquivos temporários + diretório inicial legível por todos geralmente é suficiente. Se você realmente deseja uma pasta compartilhada, você precisa criar, por exemplo, /home/shared, e configurá-la para 777 ou 1777 (1777 significa gravável por todos como 777, mas apenas o proprietário de um arquivo pode remover o arquivo ). Configurações mais avançadas incluem definir o bit setgid do diretório e brincar com grupos de usuários, mas não estou entrando em detalhes sobre isso.
Geralmente não gosto do modo 711 para diretórios; Acho isso confuso e não está claro o quão seguro é (gosto de assumir que legível significa legível, mesmo que você tenha que adivinhar o nome para acessá-lo).
Concluindo, a solução depende do que você está tentando fazer.
Responder2
Se você conceder permissões de execução, mas não de leitura em um diretório, um processo poderá percorrer o diretório, mas não poderá ler seu conteúdo. Isso permitirá o acesso aos subdiretórios dentro dele. Então, resumindo, 0711.
Responder3
Se você não se sentir confortável em conceder acesso ao seu diretório pessoal a outras pessoas, você pode usar uma montagem de ligação. Ou seja, você torna um diretório acessível usando um caminho diferente. É semelhante a um link no sistema de arquivos, mas não exige que o usuário tenha acesso a todos os diretórios no caminho.
Por exemplo, você cria um diretório chamado /shares (ou o que quiser) e vincula todos os diretórios que devem ser compartilhados (/shares/user deve ser criado antes):
mount --bind /home/user/private/stuff/share /shares/user
Portanto, apenas o próprio compartilhamento deve ser acessível a outras pessoas, /home/user pode ser 0700 (assim como coisas privadas). Para tornar isso permanente, você terá que adicionar uma entrada em /etc/fstab:
/home/user/private/stuff/share /shares/user none bind 0 0
O comando mount ou a edição /etc/fstab exigirá privilégios de root, portanto, prefixe os comandos com "sudo" ao usar uma conta não privilegiada.