【发布时间】:2009-05-05 14:56:17
【问题描述】:
我正在开发一个网络备份服务部分,它允许用户下载一个 zip 文件,其中包含他们从备份的列表中选择的文件。
压缩过程是通过 shell_exec 命令完成的。为此,我已授予 apache 用户 no-password sudo 对 zip 命令的权限。
我的问题是,因为我不能对包含用户备份文件的文件夹执行“sudo cd /path/to/user/files”,所以我需要指定要压缩的文件的完整绝对路径,然后进入我不想要的 zip 文件。
这就是我的意思:
用户“test1”备份了他们的文件,这些文件存储如下
/home/backups/test1/我的图片/pic1.jpg
/home/backups/test1/我的图片/pic2.jpg
/home/backups/test1/我的图片/pic3.jpg
/home/backups/test1/hello.txt
/home/backups/test1/music/band/song.mp3
压缩这些文件时,它们会保留完整路径,但我只想显示:
我的照片/pic1.jpg
我的照片/pic2.jpg
我的照片/pic3.jpg
你好.txt
音乐/乐队/歌曲.mp3
有没有办法告诉 zip 截断路径,或为每个文件指定自定义路径?
或者有什么方法可以将工作目录更改为用户的根备份文件夹,这样我就可以简单地指定相对文件路径。
感谢您的阅读,希望您能走到这一步,这一切都有意义!
【问题讨论】:
标签: php shell zip sudo shell-exec