Permissões para impedir que usuários SSH acessem pastas de outros usuários

3

Atualmente, estou executando o Fedora em um computador em rede, agindo como um host para outros usuários que farão SSH em meu terminal para fazer seu trabalho.

No entanto, percebi que eles também podem acessar minha pasta /home . Como faço para configurar as permissões de forma que elas não consigam acessá-las?

    
por John Tan 20.06.2012 / 10:21

4 respostas

6

Por não torná-lo legível para o mundo. Por padrão, é assim:

igalic@tynix /home % ls -lh
total 28K
drwxr-xr-x. 62 igalic igalic 4.0K Jun 20 10:24 igalic/
drwx------.  2 root   root    16K Jun  1 15:54 lost+found/
igalic@tynix /home %

Eu posso negar acesso a qualquer pessoa que não seja eu mesmo (e root) com chmod o-rx :

igalic@tynix /home % ls -lh
total 20K
drwxr-x---. 62 igalic igalic 4.0K Jun 20 10:28 igalic/
drwx------.  2 root   root    16K Jun  1 15:54 lost+found/
igalic@tynix /home %

Estas são as permissões básicas do Unix. Você pode fazer permissões de acesso mais refinadas com ACLs POSIX estendidas:

igalic@tynix /home % getfacl igalic
# file: igalic
# owner: igalic
# group: igalic
user::rwx
group::r-x
other::---

Ou SELinux:

drwxr-x---. igalic igalic unconfined_u:object_r:user_home_dir_t:s0 igalic/
drwx------. root   root   system_u:object_r:lost_found_t:s0 lost+found/
    
por 20.06.2012 / 10:32
2

Palavras como permissões ou acesso são muito vagas para um sistema Unix. Para resolver seu problema, você precisaria saber como as permissões são gerenciadas e, em seguida, definir com mais precisão o que você quer dizer com "não é possível acessá-lo" .

Visão geral resumida do sistema de permissões no Unix

Existem 3 tipos de permissões:

  • r : leia
  • w : escrever
  • x : executar

Observe que a permissão tem um significado especial para diretórios:

  • r : lista os arquivos no diretório, por exemplo, com ls .
  • w : adicionar novos elementos ao diretório.
  • x : acessa arquivos no diretório.

Existem 3 níveis de permissão que você pode definir:

  • usuário (o proprietário do arquivo / diretório)
  • grupo
  • tudo

Observe que, quando você cria novos usuários no sistema, é solicitado que você os atribua um grupo. A razão é simplesmente para um melhor gerenciamento de permissões.

Como conhecer as permissões de um arquivo

Existem várias maneiras. Eu acho que o mais simples seria usar ls -l . Exemplo:

$ ls -l file
-rw-r-----   1 rahmu users   406 Jun 18 13:28 file

A primeira coluna indica as permissões.

-rw-r----- , o primeiro bit ( - ) indica se o arquivo é um diretório, um link ou um arquivo regular. Ignore por enquanto. Em seguida, os próximos 3 bits ( rw- ) indicam as permissões no nível do usuário. Isso significa que o usuário rahmu tem o direito de read e write deste arquivo. Os próximos três bits ( r-- ) são as permissões no nível do grupo, isso significa que todos os usuários que estão no grupo users terão read access. Todos os outros usuários não terão permissão alguma ( -- ). Isso significa que eles não podem ler o arquivo, escrevê-lo ou executá-lo.

Como modificar permissões.

Geralmente é feito com o utilitário chmod . Ele suporta muitas sintaxes, o que é melhor é discutível, mas o seguinte fará mais sentido após a explicação acima:

$ chmod [who]operator[permissions] file
  • who é u ser, g roup ou o thers. (também há a ll, para modificar todos os três níveis de uma vez).
  • operator é + ou - .
  • permission é r , w ou x .

Exemplos:

  • chmod u-w file : remova a permissão write para o usuário.
  • chmod a+x file : adicione execute permissão para todos.

Como evitar acesso ao seu / home?

Como mencionei, você precisa definir o que entende por acesso . Se o que você quer dizer é read access, como em você não quer que eles sequer listem o que está dentro de seu diretório, então o mais fácil seria tirar as permissões apropriadas do diretório /home . (Supondo que eles estão se conectando com um usuário separado).

$ chmod o-rwx ~ 
    
por 20.06.2012 / 10:53
0

Cada arquivo (e diretório) pertence a um usuário e um grupo, sempre. Para gerenciar o controle de acesso, existem três conjuntos de direitos: um para o usuário ao qual o arquivo pertence, um para o grupo ao qual o arquivo pertence e um para todos os outros (outros).

Verifique no nosso diretório home suas permissões, ls -l /home . O mais provável é que seu diretório pessoal pertença ao seu nome de usuário, o que significa que o acesso de outras pessoas a ele depende dos direitos de grupo e outros direitos. Todos que tiverem direitos de leitura em seu diretório home podem recuperar uma lista de seus conteúdos, todos com direitos executáveis podem acessar os arquivos nesse diretório.

Para ser o mais restritivo possível, defina as permissões do diretório de usuário para 700 com chmod 700 /path/to/your/home . Isso torna seu diretório de usuário inacessível para todos os usuários que não são você.

O SSH não tem nada a ver com isso!

    
por 20.06.2012 / 10:36
0

Se você estiver disposto a instalar aplicativos de terceiros, dê uma olhada no escudo limitado (lshell) . Pode ser configurado para limitar o acesso dos usuários a comandos e / ou caminhos no seu sistema de arquivos.

Ele também pode detectar se uma conexão é feita remotamente (por SSH, FTP, ...) e agir de maneira diferente.

Não posso fornecer uma configuração exata ao seu caso de uso, mas sugiro que você dê uma olhada na descrição de todas as opções disponíveis , bem como o exemplo de arquivo de configuração hospedado no site do projeto.

    
por 21.06.2012 / 19:14