Impedindo um usuário de apagar arquivos, apesar de poder gravá-los

Publicado por Sidney Alexandre Pagel em 03/11/2005

[ Hits: 9.401 ]

 


Impedindo um usuário de apagar arquivos, apesar de poder gravá-los



Esta dica tem por base utilizar o servidor ProFTPd rodando sobre Slackware Linux 10.1. O objetivo desse pequeno HOWTO é que criemos um usuário determinado que ocupe uma pasta no servidor FTP e possa gravar quaisquer arquivos nela (fazer upload), porém, não possa apagá-los, o que pode ser muito útil no caso de você desejar liberar um usuário padrão para vários clientes e que eles possam apagar os arquivos. Bem, vamos lá. Suponhamos que o usuário que você queira criar chame-se USER.

Passo 1) Crie o usuário. Aqui as possibilidades são inúmeras, com centenas de sintaxes possíveis. Isso deve resolver:

# useradd USER -g ftp -d /home/USER
# mkdir /home/USER
# chown USER:ftp /home/USER

Antes de utilizar o exemplo acima, tenha certeza de que seu ProFTPd está configurado para aceitar logins de usuários sem shell, caso contrário, você deverá acrescentar a shell utilizando-se do parâmetro "-s /caminho/para_a_shell". A primeira linha deverá ser modificada da seguinte maneira:

# useradd USER -g ftp -d /home/USER -s /bin/sh

As outras duas permanecem iguais.

Passo 2) Edite o arquivo /etc/proftpd.conf (use o editor de sua preferência):

# mcedit /etc/proftpd.conf

Vá até o final do arquivo e acrescente:

<Directory /home/USER/*>
<Limit DELE>
Denyall
</Limit>
</Directory>

Passo 4) Reinicie o serviço e pronto!

Pelo inetd:

# /etc/rc.d/rc.inetd restart

Caso esteja rodando standalone, os comandos seriam:

# killall -9 proftpd
# proftpd

Desse modo, apesar do usuário ser o dono da pasta, ele encontra-se proibido de apagar quaisquer arquivos aí contidos, mesmo sendo também dono dos arquivos. O inconveniente é que a única pessoa capaz de apagar os arquivos será o root, por meio de SSH ou equivalente.

Espero ter ajudado alguém.

Valeu!

Outras dicas deste autor

Alterando o IP de sua placa de rede no Slackware 10 com um único comando

Leitura recomendada

Corrigir erro em imagem .iso pelo torrent

500 Illegal PORT range rejected (Solução)

Problemas com login lento no ProFTPD

Montando um host FTP em um diretório local

Client Gráfico FTP - Agora ficou fácil!

  

Comentários
[1] Comentário enviado por paulomello em 13/12/2005 - 15:55h

Simplesmente sensacional

[2] Comentário enviado por gpr.ppg.br em 14/12/2005 - 19:01h

como faço para baixar tudo de uma pasta, arquivos e subpastas??? no ftp em modo texto ??? pois eu usei o comando: mget *.* e só baixa os arquivos.



Contribuir com comentário