Não existe nenhum mecanismo nativo para alcançá-lo facilmente. O sistema de permissões do Linux não pode especificar permissões separadas para criar arquivos e diretórios, porque os diretórios são arquivos de fato. Mas tente assim:
- Faça com que todos os diretórios de arquivamento sejam de propriedade de um usuário (ou poucos diferentes), criados apenas para essa finalidade. Vamos assumir o nome do arquivo useruser.
-
Faça todos os diretórios de arquivamento (eu acho que você tem muitos) para ser de propriedade deste usuário, in.ex .:
$ chown archiveuser:archiveuser /somedir/archivedir1 $ chown archiveuser:archiveuser /somedir/archivedir2 $ chown archiveuser:archiveuser /somedir/archivedir3
-
Restringir o acesso aos diretórios de arquivamento a serem acessados somente pelo proprietário:
$ chmod 700 /somedir/archivedir1 $ chmod 700 /somedir/archivedir2 $ chmod 700 /somedir/archivedir3
-
Use o mecanismo
sudo
para dar acesso ao comandocp
aos diretórios de arquivamento:adicione a
/etc/sudoers
:someuser1 ALL=(archiveuser) NOPASSWD:/bin/cp /path/to/pendrive/* /somedir/archiveuser/* someuser2 ALL=(archiveuser) NOPASSWD:/bin/cp /path/to/pendrive/* /somedir/archiveuser/*
É claro que é conveniente criar um grupo adequado para todos os usuários que devem ter permissão para usar este comando. Leia o tutorial
sudo
: -). -
Isso é tudo. Os usuários precisam usar:
$ sudo -u archiveuser cp /path/to/pendrive/somefile /somedir/archiveuser/
Você pode criar um alias para torná-lo mais conveniente de usar (por exemplo, alias cpt='sudo -u archiveuser cp'
). Observe também que cp -r
necessário para copiar um diretório não é permitido por sudo
neste caso. Também o comando mkdir
é impedido por permissões. Assim, seu objetivo é alcançado.