O Zip não suporta salvar a propriedade / permissão do arquivo, tanto quanto eu sei. Você pode tentar configurar o umask para que o unzip crie os arquivos com essas permissões. Executar
umask 644
antes de unzip
.
Eu descompactei um arquivo no meu servidor usando:
unzip filename
No entanto, isso parece ter causado todos os arquivos com permissões de proprietário / grupo de 0 0
.
Os arquivos que eu enviei eram um script de software PHP
, então estou pensando em como definir corretamente as permissões ao descompactar os arquivos e como eles devem ser definidos?
Na verdade, algumas respostas aqui não estão corretas. Arquivos ZIP também podem ter permissões de arquivo. (*) Você pode listar as permissões dos arquivos em seu arquivo ZIP com:
unzip -Z
Talvez a ferramenta que você usou para criar o arquivo ZIP não tenha armazenado as permissões ou não tenha sido armazenada corretamente.
Então, se você mesmo fez o arquivo ZIP , verifique a ferramenta com a qual você criou o arquivo ZIP. Talvez exista uma maneira de definir permissões antes de compactar (como com o maven) ou preservar as permissões originais (mas isso só funcionaria em um sistema que suporte permissões - ou seja, não no Windows).
Se você não criou o arquivo ZIP , sua única chance é definir as permissões corretas após a descompactação, por exemplo, com
chmod -R [permissions] [directory]
(*) Usamos esse recurso em combinação com o plug-in do assembly maven, onde você pode especificar o fileMode para os arquivos que entram no arquivo ZIP.
Arquivos ZIP não armazenam permissões do Unix. Se você quiser retê-los, precisará arquivá-los usando tar
(e possivelmente gzip
do arquivo também).
Se você descompactar arquivos PHP e eles não tiverem permissões adequadas, é isso que você deve configurar como :
Por exemplo, se você descompactou seus arquivos para /var/www/foo
e deseja que seu usuário ( whoami
) e grupo ( id -gn
):
find /var/www/foo -exec chown $(whoami):$(id -gn $(whoami)) {} \+
find /var/www/foo -type f -name '*.php' -exec chmod 644 {} \+
find /var/www/foo -type d -exec chmod 755 {} \+
Tags permissions zip linux