Quero dar acesso a um dir para um amigo. Ele tem acesso ao sistema de arquivos, onde o dir está localizado. Não quero definir as permissões para todos os usuários. Como posso permitir que apenas uma pessoa veja o diretório? Nenhum de nós é um superusuário.
[BOUNTY CHALLENGE] Nenhuma das respostas funciona, usando o Ubuntu:
1. A abordagem de jamuraa não está funcionando
$ setfacl -m user:friend:rwx classroom.xml
setfacl: classroom.xml: Operation not supported
2. A abordagem do nik não está funcionando: não é possível acessar o arquivo inexistente
3. A abordagem do ba não está funcionando: não consigo criar grupos, nem uma raiz.
4. A abordagem do ToK não está funcionando, os usuários estão em dois grupos: "usuários" e "campo"
chown -R myFriend:users ~/TEST
chown: changing ownership of `/u/myFriend/TEST/you_see_it': Operation not permitted
chown: changing ownership of `/u/myFriend/TEST': Operation not permitted
Respostas:
Com apenas permissões normais do UNIX (usuário, grupo, todos), você não pode fazer isso facilmente. Se você não precisar mais acessar o diretório, poderá alterar o proprietário do diretório para seu amigo, o que é válido em alguns Unices, mas a maioria não é.
No entanto - se você tiver ACLs ativadas no Linux, poderá fazer isso se for o proprietário do arquivo. Basta executar o comando em
setfacl -m user:friend:rwx filename
que friend é o nome da conta do seu amigo e o nome do arquivo é o arquivo. Você pode verificar se ele entrou em vigor executandogetfacl filename
, você deve ver a tríadeuser:friend:rwx
na lista. Não vi muitos sistemas Linux com as ACLs ativadas.fonte
Isso é algo que discutimos na escola.
É mais ou menos assim,
data
, para referência aqui)chmod 711 data
"x
- acesso para entrar no diretóriodifficult-name-here
(isso pode ser uma string com hash)chmod a+rx difficult-name-here
"cd path/to/data/difficult-name-here
"root
sempre é possível acessar tudo (o que não é um problema aqui)difficult-name-here
com as pessoas que você deseja fornecer esses dadosMuito rude, mas se isso puder ser quebrado sem a quebra do controle de acesso ao unix, eu gostaria de saber.
Atualização no comentário de
dmckee
,Esta é exatamente a conclusão que chegamos!
"segurança pela obscuridade" tem segurança limitada .
Dito isto, ao projetar proteção para dados,
é importante identificar seu valor.
Você deve ter como alvo,
Nesse caso, se você
root
decidir enumerar a árvore de diretórios em algum lugar de acesso público,seu segredo será revelado! Mas você está protegendo da raiz ou de sua potencial irresponsabilidade?
Se for esse o caso, você terá muito mais com que se preocupar do que com os arquivos compartilhados.
Atualização sobre a nota que não está funcionando na pergunta .
Eu usei isso nos primeiros dias do linux para saber que funciona.
Se você receber '
cannot access non-existant file
' em vez de'permissions denied
'', provavelmente cometeu um erro na sequência. O que você deseja deve ficar assim,CoverDir
' acesso como'rwx--x--x
'', ogrupo e outros só poderão entrar no diretório, mas não poderão ler seu conteúdo.
'
Obscure
', dentro dele e conceder acesso de leitura completo com 'rwxr-xr-x
',qualquer pessoa que conheça esse nome poderá listar seu conteúdo.
ls BasePath/CoverDir/Obscure
'Porque as pessoas do seu grupo e outras pessoas não poderão '
ls BasePath/CoverDir
'.fonte
ssh
chave privada).Ryan estava 100% correto, apenas para trás. Como seu amigo (provavelmente) tem um grupo único associado ao seu nome de usuário, altere a propriedade do grupo do diretório em questão para esse grupo, provavelmente o nome de usuário do amigo. Para poder compartilhar o conteúdo entre vocês, você deve manter a propriedade como usuário:
Em seguida, atribua permissões apropriadas ao diretório, dependendo de qual acesso você deseja que o outro usuário tenha:
concederia a você o acesso completo do RWX ao diretório e a todo o seu conteúdo.
Observe que isso pressupõe que nenhum outro usuário foi adicionado ao grupo de seus amigos. O sistema provavelmente não teria feito essa atribuição, no entanto, como mencionado anteriormente, o usuário root pode fazer o que escolher. Você pode usar o comando groups para ver cada grupo ao qual seu amigo ou usuário arbitrário pertence. Além disso, a menos que as permissões tenham sido alteradas por algum motivo, você poderá visualizar o arquivo / etc / group que contém as atribuições de grupo para cada grupo no sistema.
fonte
Eu criaria um novo grupo para você e seu amigo e definiria as permissões da pasta como completas para proprietário e grupo, juntamente com o bit setgid do diretório.
Mas, dependendo das suas necessidades, talvez você também precise mudar umask de você e de seus amigos para que ele defina automaticamente o grupo para poder alterar novos arquivos.
fonte
As listas de controle de acesso são a maneira perfeita de fazer isso.
No entanto (se bem me lembro), o sistema de arquivos precisa ser inicializado com ACLs (por exemplo, "/ dev / sda6 / home ext3 padrões, acl "), via / etc / fstab, e isso é algo que somente o superusuário pode fazer. ..
fonte
É necessário RBACS como grsec / selinux.
fonte
Por padrão, cada usuário em um sistema Ubuntu também possui um grupo associado com o mesmo nome. Portanto, se você puder adicionar seu amigo ao seu grupo e marcar a pasta em questão como
g+rwx
, estará definido. Lembro-me vagamente que este caso de uso foi citado como o motivo para criar um grupo para cada usuário.fonte
E o Dropbox? Você pode instalá-lo sem privilégios de administrador e os dois links para a mesma conta.
Confira Como instalar o Dropbox em um ambiente Linux totalmente baseado em texto
fonte
não tentei isso, mas que tal um diretório público legível com um FS criptografado no espaço do usuário (por exemplo, encfs). Então você pode compartilhar essa senha com seu amigo e ninguém mais pode usar esses dados (bem, acho que eles poderiam obter os dados e executar um cracker de senha offline?).
fonte
Para dar ao Linux a mesma fineza que as janelas em privilégios de arquivo, você precisa aninhar grupos. Crie um grupo que tenha acesso à sua pasta como gostaria que seu amigo tivesse. Adicione-o a esse grupo ou ao grupo em que ele reside. Por exemplo
/ foo é a pasta que você deseja compartilhar. Crie um grupo FooGroup que tenha o acesso desejado à pasta. Adicione grupos e usuários a esse grupo aos quais você deseja ter acesso a esta pasta.
É muito difícil ter um grupo para cada pasta ou arquivo, mas é a melhor maneira de restringir o acesso no mesmo nível do Windows.
fonte
Você pode criptografar o diretório com
gpg
. E tente ofuscar a localização, como sugeriu o nik.fonte