84669인 학습
152542인 학습
20005인 학습
5487인 학습
7821인 학습
359900인 학습
3350인 학습
180660인 학습
48569인 학습
18603인 학습
40936인 학습
1549인 학습
1183인 학습
32909인 학습
客服通过 FTP 上传文件的时候,所有文件默认是 ROOT 用户权限的,导致 PHP 文件无法读写创建.
只有通过 chown www:www 来进行对每个文件的设置才可以.
请问有办法通过 PHP 来操作吗?
认证0级讲师
bool chown ( string $filename , mixed $user )可以改的。php好像还有chmod,不过建议直接在服务器上改权限吧。
“客服通过 FTP 上传文件的时候,所有文件默认是 ROOT 用户权限的,导致 PHP 文件无法读写创建.”看样子“客服”使用的是root登录,上传的文件所有者自然属于root用户了。
一般的情况,文件夹权限755,文件644。比如在nginx上的文件权限设定,一般用以下指令可搞定(具体文件夹路径自行更改): chown -R www:www /usr/share/nginx/html/ && find /usr/share/nginx/html/ -type d -exec chmod 755 {} ; && find /usr/share/nginx/html/ -type f -exec chmod 644 {} ;
chown -R www:www /usr/share/nginx/html/ && find /usr/share/nginx/html/ -type d -exec chmod 755 {} ; && find /usr/share/nginx/html/ -type f -exec chmod 644 {} ;
把它写入bashrc,总不能下次要用又敲一次吧:alias webroot='chown -R www:www /usr/share/nginx/html/ && find /usr/share/nginx/html/ -type d -exec chmod 755 {} ; && find /usr/share/nginx/html/ -type f -exec chmod 644 {} ;'
alias webroot='chown -R www:www /usr/share/nginx/html/ && find /usr/share/nginx/html/ -type d -exec chmod 755 {} ; && find /usr/share/nginx/html/ -type f -exec chmod 644 {} ;'
!!!不过直接用root太不保险了,万一删错什么的就不好了,同时建议把ssh的root远程登录关闭了,别启用root用户的sftp来给客服用。因此,更建议创建一个一般权限的用户给客服使用。为了方便,最好将并将这个用户放到www组中。当然这样得的话,遇到需要有www:www权限读写时还是得需要手动给予文件们664权限了,保证同组的用户可以读写文件。
你要是图方便 直接把文件夹chown -R 777就可以
ftp用户设置一下权限不行?
别用root登录嘛,win下传过去的吧,ftp工具一般可以改,比如xftp,可以修改传过来的文件夹和文件权限,并且保持后续传进来的也是如此的权限
可以用这个函数boolchown(),不过不太安全,最好是能在服务器上直接改,这个也需要root权限才能执行,最好ftp的账户是和php进程的用户保持一致
shell 中 使用 chown 命令,之前也遇到过这样的问题,配置lamp的时候。
bool chown ( string $filename , mixed $user )可以改的。php好像还有chmod,不过建议直接在服务器上改权限吧。
“客服通过 FTP 上传文件的时候,所有文件默认是 ROOT 用户权限的,导致 PHP 文件无法读写创建.”
看样子“客服”使用的是root登录,上传的文件所有者自然属于root用户了。
一般的情况,文件夹权限755,文件644。比如在nginx上的文件权限设定,一般用以下指令可搞定(具体文件夹路径自行更改):
chown -R www:www /usr/share/nginx/html/ && find /usr/share/nginx/html/ -type d -exec chmod 755 {} ; && find /usr/share/nginx/html/ -type f -exec chmod 644 {} ;
把它写入bashrc,总不能下次要用又敲一次吧:
alias webroot='chown -R www:www /usr/share/nginx/html/ && find /usr/share/nginx/html/ -type d -exec chmod 755 {} ; && find /usr/share/nginx/html/ -type f -exec chmod 644 {} ;'
!!!不过直接用root太不保险了,万一删错什么的就不好了,同时建议把ssh的root远程登录关闭了,别启用root用户的sftp来给客服用。
因此,更建议创建一个一般权限的用户给客服使用。为了方便,最好将并将这个用户放到www组中。
当然这样得的话,遇到需要有www:www权限读写时还是得需要手动给予文件们664权限了,保证同组的用户可以读写文件。
你要是图方便 直接把文件夹chown -R 777就可以
ftp用户设置一下权限不行?
别用root登录嘛,win下传过去的吧,ftp工具一般可以改,比如xftp,可以修改传过来的文件夹和文件权限,并且保持后续传进来的也是如此的权限
可以用这个函数boolchown(),不过不太安全,最好是能在服务器上直接改,这个也需要root权限才能执行,最好ftp的账户是和php进程的用户保持一致
shell 中 使用 chown 命令,之前也遇到过这样的问题,配置lamp的时候。