首頁  >  文章  >  後端開發  >  PHP 如何將 linux 伺服器的 root 權限目錄改為 www:www

PHP 如何將 linux 伺服器的 root 權限目錄改為 www:www

WBOY
WBOY原創
2016-08-04 09:20:522034瀏覽

客服透過 FTP 上傳檔案的時候,所有檔案預設是 ROOT 使用者權限的,導致 PHP 檔案無法讀寫建立.

只有透過 chown www:www 來進行每個文件的設定才可以.

請問有辦法透過 PHP 來操作嗎?

回覆內容:

客服透過 FTP 上傳檔案的時候,所有檔案預設是 ROOT 使用者權限的,導致 PHP 檔案無法讀寫建立.

只有透過 chown www:www 來進行每個文件的設定才可以.

請問有辦法透過 PHP 來操作嗎?

你說:他們的伺服器,他們喜歡用這個 SFTP 直接傳檔,然後導致程式不能建立目錄改寫檔之類的。這個是必然,你可以把他們登入sftp的用戶用usermod -aG www [username]加入到www這個群組裡面,把www用戶加入你傳文件的那個用戶的群組裡面,這樣www和傳文件的用戶就是一組的了,這樣得給文件們664權限
(我就用過的這個方法,本地用syncthing以及atom編輯器(屬於users群組下)和web伺服器(nginx群組)互通同步檔案。不過我是把web伺服器chown給users的)

對,bool chown ( string $filename , mixed $user )可以改的。 php好像還有chmod,但建議在伺服器上改吧, chown -R www:www /path/

一般資料夾權限給個755,檔案給個644。用以下指令可搞定(具體資料夾自行更改): chown -R nginx.nginx /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 nginx.nginx /usr/share/nginx/html/ && find /usr/share/nginx/html/ -type d -exec chmod 755 {} ; && find /usr/share/nginx/html/ -type f -exec chmod 644 {} ;'

<code>-----</code>

另一個伺服器用的sftp傳文件,用戶屬於users群組下的aaa,我傳文件前打開ssh,先把文件全部權限搞成屬於users的aaa,在bashrc裡面寫入alias的,也不麻煩,傳完了再弄回去,還是上面的好點,畢竟你們要用stfp,把root隨便給出去用也不太安全)

你要是圖方便 直接把資料夾chown -R 777就可以

ftp用戶設定一下權限不行?

別用root登入嘛,win下傳過去的吧,ftp工具一般可以改,比如xftp,可以修改傳過來的文件夾和文件權限,並且保持後續傳進來的也是如此的權限

可以用這個函數boolchown(),不過不太安全,最好是能在伺服器上直接改,這個也需要root權限才能執行,最好ftp的帳戶是和php進程的用戶保持一致

shell 中 使用 chown 指令,之前也遇到這樣的問題,設定lamp的時候。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn