LTSP - Como impedir que clientes LTSP tenham acesso a impresoras e partições?

Iniciado por Éderson, 02 de Maio de 2013, 08:07

tópico anterior - próximo tópico

Éderson

Pessoal, na escola de minha mãe utilizamos Ubuntu Linux em todas as máquina e o laboratório de informática funciona bem com o LTSP e interface LXDE porém os clientes têm acesso aos arquivos da partição NTFS onde ficam os vídeos e músicas podendo inclusive excluí-los. Outra coisa é que tem acesso às impressoras instaladas no servidor, podendo imprimir.
Gostaria de restringir nos clientes os acessos que listei acima porém só encontro informações e tutoriais ensinando a instalar impressoras nos clientes, modificar o fstab e etc. Há alguma configuração no LTSP que me permita essas restrições? Gostaria que alguém com conhecimento nisso me informasse claramente como devo proceder.

Agradecido.

zekkerj

Citarporém os clientes têm acesso aos arquivos da partição NTFS onde ficam os vídeos e músicas podendo inclusive excluí-los.
Sinal de que você configurou muito mal o seu sistema... quem faz acessos são os usuários, se você entrega um usuário com permissões de criar arquivos num diretório, ele obrigatoriamente terá também permissão de apagar arquivos.

CitarOutra coisa é que tem acesso às impressoras instaladas no servidor, podendo imprimir.
Veja no CUPS como restringir acesso às impressoras instaladas.

Uma alternativa interessante seria você separar os serviços em dois servidores; em um, você coloca seus arquivos e impressoras; no outro, você oferece os serviços do LTSP. E tenha em mente que o usuário usado pelos alunos não pode ter acesso administrativo nenhum, a menos que você não se importe de reinstalar o sistema todo de duas em duas semanas, que é o tempo até que um deles descubra como zonear a instalação...
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

Éderson

Se você souber como restringir o acesso a partições NTFS favor me informar.
A respeito da impressora, não dá pra eu nâo tê-la no servidor. O que preciso é fazer com que um determinado grupo de usuários não acessem. Já mexi nas configurações do CUPS mas nada... possivelmente não fiz o correto. Se quiser te envio por MP ou outro meio as configurações do CUPS, ltsp e o que mais for necessário para ter uma ajuda.

zekkerj

CitarSe você souber como restringir o acesso a partições NTFS favor me informar.
Sim, eu sei como. Basta configurar corretamente os usuários e as partições!!! Por exemplo, posso sugerir que você retire as permissões de leitura/escrita/execução públicos do ponto de montagem? Isso já é um bom começo.

Aliás... posso fazer outra pergunta? Pq você tem partições NTFS num servidor LTSP? Partições NTFS caem bem em máquinas com dual boot. Mas um servidor LTSP com dual boot simplesmente não faz sentido...

CitarA respeito da impressora, não dá pra eu nâo tê-la no servidor. O que preciso é fazer com que um determinado grupo de usuários não acessem. Já mexi nas configurações do CUPS mas nada...
Então... eu não conheço nenhuma forma de limitar o uso da impressão por usuário na máquina, no Cups. Pode ser que exista, mas não na instalação padrão. Talvez se você deixasse a impressora desativada, e só ativá-la (com um usuário administrador) na hora em que fosse realmente utilizá-la?

Outra idéia seria você tirar a impressora do servidor, e ligá-la num dos terminais LTSP, que ficaria fora da sala de aula. Assim, para usar a impressora, bastaria logar nesse terminal, e a impressora seria liberada automaticamente (se é que me lembro bem como isso funciona no LTSP --- tem algum tempo que não uso).

Citar...Se quiser te envio por MP...
Não, por Deus, MP não. MP é pra assuntos particulares. Suporte por MP não combina com fórum de debates. A informação tem que estar toda aqui, pra que outras pessoas possam pesquisar e transformar nossa conversa em conhecimento.

Se quiser enviar MP pra me agradecer, reclamar, xingar, ameaçar (já fizeram isso :o), tudo bem... mas pedidos de ajuda e/ou suporte, eu não respondo por MP. Sou da idéia de que a informação só vira conhecimento quando é dividida com os outros. OK?

Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

Éderson

Bem, respondendo sua pergunta: o servidor na verdade é o computador da direção, uma máquina com boa configuração e memória que também é usada como servidor para o laboratório ltsp e por isso apresenta também partição NTFS visto que ao ser adquirido veio com o Windows instalado e acabamos não tirando.

Seria bom eu saber como é configurar corretamente os usuários. Criei um grupo LTSP e nele os usuários do lab e eles só acessam as pastas deles porém conseguem acessar a partição NTFS que é onde ficam os arquivos. Esse é o maior problema!

Exatamente por também ser o PC da diretoria não tenho como deixar o servidor ltsp sem impressora.

Entendo o porque de não por MP e vc tem razão.  :)

Agradeço a paciência novamente.

zekkerj

Primeira coisa a fazer, é garantir que a partição NTFS não seja montada via automounter, e sim via fstab, pois assim você vai ter controle tanto sobre quem monta --- só o root --- quanto quais os direitos que os outros usuários vão ter sobre a pasta, que eu acho que a melhor forma é por grupos.

Execute os comandos abaixo e cole o resultado aqui.

sudo blkid | grep ntfs

mount | grep fuseblk

ls -l /media
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

Éderson

Para sudo blkid | grep ntfs, o resultado foi:
/dev/sda1: LABEL="Windows_D" UUID="30C079A67C2CA9AC" TYPE="ntfs"

Para mount | grep fuseblk:
/dev/sda1 on /media/Windows_D type fuseblk (rw,noexec,nosuid,nodev,allow_other,default_permissions,blksize=4096)

Para ls -l /media:
total 8
drwxr-xr-x 2 root root  4096 Jan 25 13:54 CD-DVD
drwxrwxrwx 1 root users 4096 Mar 21 08:41 Windows_D


Criei os usuários do LTSP da seguinte forma:
addgroup ltsp
chmod -R 777 /home/ltsp/
chown root.ltsp /home/ltsp/
adduser -ingroup ltsp -home /home/ltsp/ltsp1 ltsp1
adduser -ingroup ltsp -home /home/ltsp/ltsp2 ltsp2
Criei desta maneira 11 usuários LTSP

O que devo fazer agora?

zekkerj

Citarchmod -R 777 /home/ltsp/~
Isso é totalmente desnecessário... :( inclusive assim, teoricamente, um usuário poderia remover o diretório de outro usuário.

Para resolver o problema do acesso à partição Windows, faça o seguinte.

1. Desmonte a partição.

sudo umount /media/Windows_D

2. Crie novamente o diretório, que pode não estar presente se estiver sendo criado via udev.

sudo mkdir -p /media/Windows_D

3. Certifique-se de que esse diretório pertença a um usuário/grupo correto, e que tenha as permissões de acesso corretas.

sudo chown fulano:grupoX /media/Windows_D
sudo chmod 0750 /media/Windows_D


Se os alunos precisam ter acesso de leitura nessa partição, mude o valor "0750" para "0755". Se mais algum usuário, além de "fulano", precisa alterar a partição, mude o valor para "0770" ou "0775" (nunca para 0777!!! Ou todo nosso esforço irá por água abaixo!!!), e coloque-o no grupo "grupoX".

3. Configure a montagem da partição no arquivo /etc/fstab, adicionando a linha abaixo:

UUID=30C079A67C2CA9AC /media/Windows_D ntfs rw,auto,nodev,nosuid,noexec,defaults,uid=fulano 0 0

Se tiver dificuldade com arquivos com acentos no nome, há uma opção que pode ser usada pra corrigir isso (iocharset, se me lembro bem).

4. Monte novamente a partição com o comando abaixo:

sudo mount /media/Windows_D

Note que a opção "auto" faz com que a partição seja montada automaticamente no boot. Se não quiser que isso aconteça, mude para "noauto".

A configuração criada faz com que apenas o super-usuário, ou um usuário administrador, via sudo, possa montar/desmontar a partição. Para que usuários possam montar a partição, adicione a opção "user". Para que um usuário diferente do que montou a partição possa desmontá-la, adicione a opção "users".
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

Éderson

Oi, fiz tudo como vc disse e as máquinas ltsp continuam acessando livremente (criando e excluindo) a partição Windows_D.
A única mudança que fiz foi trocar sudo chmod 0750 por 0755

fulano = diretoria
grupo = administracao

zekkerj

Então você fez alguma coisa errada... se os alunos não têm permissão de escrita na raiz da partição, e a partição não foi montada com parâmetro "umask", o usuário que cria a partição se torna dono de todos os arquivos.

Considere reformatar essa partição, trazendo-a para um formato nativo, como Ext4, ReiserFS ou XFS.
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

Éderson

Bem, resolvi reparticionar o HD e deixei a partição em ext4 para que assim possa ter controle. Segui os passos e a partição montou porém o usuário desejado (que não é root) oara ter controle da partição não consegue criar pastas, arquivos nem excluir nada. O que fiz de errado?
Passos feitos:
1 - Primeiro é necessário obter o UUID da partição que deseja montar. O comando abaixo lista e identifica as partições:
sudo blkid | grep ext4

2 – copie o campo UUID da partição que deseja ser montada.
Ex:  91bd0d98-8122-4447-98cd-d032a91f2c81

3 - Abra o arquivo fstab para edição (/etc/fstab) e insira uma linha no seguinte formato:
sudo gedit /etc/fstab

Tentei esses formatos:
/dev/sda3 /media/Dados_ext4 ext4 rw,errors=remount-ro 0 2

UUID=91bd0d98-8122-4447-98cd-d032a91f2c81 /media/Dados_ext4          ext4    defaults        0       2

UUID= 91bd0d98-8122-4447-98cd-d032a91f2c81 /media/Dados_ext4 ext4 errors=remount-ro 0 1

Esse dá erros: UUID= 91bd0d98-8122-4447-98cd-d032a91f2c81 /media/Dados_ext4 ext4 rw,auto,nodev,nosuid,noexec,defaults,uid=diretoria 0 0

4 – Dê um nome à partição que será acessada
sudo mkdir /media/Dados_ext4

5 – Certifique-se de que esse diretório pertença a um usuário/grupo correto, e que tenha as permissões de acesso corretas.
sudo chown diretoria /media/Dados_ext4
sudo chmod 0755 /media/Dados_ext4

6 - Monte novamente a partição com o comando abaixo:
sudo mount /media/Dados_ext4

também reiniciei e nada. Porquê o usuário diretoria não consegue ter controle?

Agradecido.

zekkerj

Para um usuário poder criar, apagar ou renomear arquivos, ele tem que ter acesso de escrita na pasta. Ele pode receber essa permissão de três formas: diretamente, sendo dono da pasta (e tendo o bit de gravação ativo na posição correspondente ao usuário); indiretamente, fazendo parte de um grupo que tenha acesso de escrita à pasta.

No caso do diretório ser um ponto de montagem, você tem duas situações possíveis. Na primeira, o sistema de arquivos é nativo (ext2/3/4, reiserfs, xfs), assim cada arquivo dentro dele tem informação própria de usuário/grupo/acesso. Para criar/apagar/renomear arquivos na raiz, basta ter os acessos corretos no ponto de montagem.

No sistema de arquivos estrangeiro (NTFS, VFAT, FAT12/16/32) não há informação de usuário/acesso, ou essa não corresponde ao modelo de usuários linux (NTFS). Assim, o sistema de arquivos é montado pertencendo inicialmente ao super-usuário, ou ao usuário indicado (parâmetro uid=xxx), com as permissões padronizadas (umask=xxx).

Então, o motivo de vc não conseguir usar a última linha é devido àquele parâmetro "uid=fulano" que vc usou, que não é usado em sistemas nativos.

Sobre o usuário não conseguir criar arquivos na partição, um dos motivos possíveis é ela ter sido montada em modo R/O. Se for isso, nem o root vai conseguir modificar qualquer coisa dentro do sistema de arquivos.

Podemos tentar descobrir o motivo, mas pra isso vamos precisa de mais dados da situação. Execute os comandos abaixo e cole o resultado aqui.

sudo mount -o remount /media/Dados_ext4
mount | grep /media/Dados_ext4
ls -ld /media/Dados_ext4
ls -l /media/Dados_ext4
cd /media/Dados_ext4
sudo -u diretoria touch teste.txt
sudo -u diretoria mkdir teste.dir
ls -l /media/Dados_ext4
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

Éderson

1 - sudo mount -o remount /media/Dados_ext4
2 - mount | grep /media/Dados_ext4
/dev/sda3 on /media/Dados_ext4 type ext4 (rw,errors=remount-ro)

3 - ls -ld /media/Dados_ext4
drwxr-xr-x 3 root root 4096 Jun 27 12:01 /media/Dados_ext4

4 - ls -l /media/Dados_ext4
total 16
drwx------ 2 root root 16384 Jun 27 12:01 lost+found

5 - cd /media/Dados_ext4
6 - sudo -u diretoria touch teste.txt
touch: não foi possível tocar "teste.txt": Permissão negada

7 - sudo -u diretoria mkdir teste.dir
total 16
mkdir: é impossível criar o diretório "teste.dir": Permissão negada

8 - ls -l /media/Dados_ext4
drwx------ 2 root root 16384 Jun 27 12:01 lost+found

Outra coisa: como dar poder de escrita em uma pasta para mais de um usuário?

zekkerj

Citardrwxr-xr-x 3 root root 4096 Jun 27 12:01 /media/Dados_ext4
Bem, a pasta continua pertencendo ao root. Pode ser resultado do processo de montagem/desmontagem...

Mas tem uma forma mais fácil de resolver: crie uma pasta dentro de /media/Dados_ext4, faça "diretoria" ser o dono dela. Assim:

mount -o remount /media/Dados_ext4
sudo mkdir /media/Dados_ext4/diretoria
sudo chown diretoria /media/Dados_ext4/diretoria


Pronto, agora o usuário "diretoria" pode fazer o que quiser nessa pasta (*). E as permissões não serão perdidas ao desmontar, já que elas estarão gravadas dentro do sistema de arquivos.

(*) Exceto mudar suas permissões. Para mudar as permissões de um arquivo ou pasta, vc precisa ter permissão de escrita na pasta acima.

CitarOutra coisa: como dar poder de escrita em uma pasta para mais de um usuário?
Isso é feito com grupos. Crie um grupo que englobe todos os usuários que precisem escrever na pasta:

sudo addgroup g_diretoria

Depois coloque os usuários nesse grupo:

sudo adduser diretoria g_diretoria
sudo adduser financeiro
sudo adduser financeiro g_diretoria
sudo adduser vendas
sudo adduser vendas g_diretoria


Por fim, faça com que a pasta pertença ao grupo, e dê permissão de escrita ao grupo:

sudo chgrp g_diretoria /media/Dados_ext4/diretoria
sudo chmod g+w,g+s,+t /media/Dados_ext4/diretoria


Onde:
  • "g+w" = "dê permissão de escrita ao grupo"
  • "g+s" = "ligue o bit SGID no diretório". Quando uma pasta tem o bit SGID ligado, todos os arquivos e pastas criados nele vão pertencer ao mesmo grupo.
  • "+t" = "ligue o sticky bit". Quando uma pasta tem o sticky bit ligado, um usuário com permissão de escrita nessa pasta só pode remover arquivos ou pastas se for dono deles, também. Isso evita que um usuário apague arquivos dos outros usuários.
  • Observe que não há espaços entre as vírgulas nesse argumento do comando chmod.
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

Éderson

Gostaria de saber como alterar o título e colocar (RESOLVIDO) mas não achei como.

Resolvi colocar todas as informações obtidas em um local só. Agradecimentos totais ao usuário zekkerj.

Para abrir o terminal: CTRL + ALT + T

1 - Primeiro é necessário obter o UUID da partição que deseja montar. O comando abaixo lista e identifica as partições:
sudo blkid | grep ext4
ou ls -l /dev/disk/by-uuid

OBS: Só o comando sudo blkid mostra todas as partições

2 – copie o campo UUID da partição que deseja ser montada.
Ex:  91bd0d98-8122-4447-98cd-d032a91f2c81

3 - Abra o arquivo fstab para edição (/etc/fstab) e...
sudo gedit /etc/fstab

... insira uma linha no seguinte formato:
# Partição de Dados em ext4
/dev/sda3 /media/Dados_ext4 ext4    defaults        0       2

OU
UUID=<UUID copiado> <diretório onde a partição será montada>  ext4  defaults  0  2

Outras opções:
/dev/sda3 /media/Dados_ext4 ext4 rw,errors=remount-ro 0 2
UUID= 91bd0d98-8122-4447-98cd-d032a91f2c81 /media/Dados_ext4 ext4 errors=remount-ro 0 1

Esse a seguir deu erros: UUID= 91bd0d98-8122-4447-98cd-d032a91f2c81 /media/Dados_ext4 ext4 rw,auto,nodev,nosuid,noexec,defaults,uid=diretoria 0 0

4 – Dê um nome à partição que será acessada
sudo mkdir -p /media/Dados_ext4

5 - Monte a partição com o comando abaixo:
sudo mount /media/Dados_ext4

Se precisar desmontar a partição o comando é:
sudo umount /media/Dados_ext4

Se precisar desmontar e montar a partição com um único comando, use:
mount -o remount /media/Dados_ext4

6 – Crie uma pasta dentro de /media/Dados_ext4 e faça "diretoria" ser o dono dela
sudo mkdir -p /media/Dados_ext4/Arquivos
sudo chown -R diretoria /media/Dados_ext4/Arquivos

OU sudo chown diretoria /media/Dados_ext4/Arquivos

Pronto, agora o usuário "diretoria" pode fazer o que quiser nessa pasta (*). E as permissões não serão perdidas ao desmontar, já que elas estarão gravadas dentro do sistema de Arquivos.
(*) Exceto mudar suas permissões. Para mudar as permissões de um arquivo ou pasta, vc precisa ter permissão de escrita na pasta acima.

7 – Para dar acesso APENAS de leitura nesta pasta aos outros usuário, execute o comando abaixo. Caso queira dar acesso a mais usuários, SIGA O PASSO 8:
sudo chmod 0755 /media/Dados_ext4/Arquivos



8 – Caso queira dar poder escrita em uma pasta para mais de um usuário, deve-se criar grupos. Crie um grupo que englobe todos os usuários que precisem escrever na pasta.

sudo addgroup arquivos

Depois coloque os usuários nesse grupo:
sudo adduser diretoria arquivos
sudo adduser administrador arquivos

sudo adduser coordenacao
sudo adduser coordenacao arquivos

Por fim, faça com que a pasta pertença ao grupo, e dê permissão de escrita ao grupo:

OPÇÃO A:
sudo chgrp arquivos /media/Dados_ext4/Arquivos
sudo chmod g+w,g+s,+t /media/Dados_ext4/Arquivos


Onde:
"g+w" = "dê permissão de escrita ao grupo"
"g+s" = "ligue o bit SGID no diretório". Quando uma pasta tem o bit SGID ligado, todos os Arquivos e pastas criados nele vão pertencer ao mesmo grupo.
"+t" = "ligue o sticky bit". Quando uma pasta tem o sticky bit ligado, um usuário com permissão de escrita nessa pasta só pode remover Arquivos ou pastas se for dono deles, também. Isso evita que um usuário apague Arquivos dos outros usuários.
Observe que não há espaços entre as vírgulas nesse argumento do comando chmod.

OPÇÃO B:
Nessa opção certifique-se de que esse diretório pertença a um usuário/grupo correto, e que tenha as permissões de acesso corretas.
sudo chown fulano:grupoX /media/Dados_ext4/Arquivos
sudo chown -R diretoria:arquivos /media/Dados_ext4/Arquivos
sudo chmod 0775 /media/Dados_ext4/Arquivos


Se os alunos precisam ter acesso de leitura nessa pasta, mude o valor "0750" para "0755". Se mais algum usuário, além de "fulano", precisa alterar a partição, mude o valor para "0770" ou "0775" (nunca para 0777!!! Ou todo nosso esforço irá por água abaixo!!!), e coloque-o (o usuário) no grupo "grupoX".

OPÇÃO C:
Após montada, atribua os direitos para todos poderem gravar na mesma, se assim o desejar:
sudo chmod a+rwx /media/ Dados_ext4/Arquivos