Owner 是 root,那 group 呢?
通常來說,在 Linux 底下不管是 Apache 或是 Nginx,都是透過 www-data 這個使用者在進行操作
如果 www-data 這個使用者沒有權限,那當然就改不了
我自己習慣是:
先將該目錄 chown -R xxxuser:www-data dir/
讓 www-data 成為群組,這樣 www-data 就有權限去 chmod('/images/', 0777)
了
再來個 chmod -R 0755 dir/
讓 www-data 有權限去 RX
再使用一個沒 root 權限使用者 xxxuser 去 pull 資料下來
這樣可以避免時常使用 root 導致的資安風險
也讓 www-data 能夠實際操作執行這些檔案
如果想要用程式移動檔案到 root 權限的資料夾,有辦法做到嗎
如果只是要移到root權限的資料夾,可以把那個資料夾權限設定為777 (ex: chomod -R 0777 /dir/to/path
)或將當下的使用者加入group (ex: usermod -a -G {groupName} www-data
)
但是這些都不是很好的作法,應該盡量避免將資料夾的權限完全開放或讓程式擁有存取有root資料夾的權限,甚至是直接拿root權限來跑php和排程....
應該先用指令設好資料夾權限!
我不太懂為何您堅持使用 PHP 來設定權限,是有什麼需求嗎?
至於 root 問題樓上 Tung 說明的很清楚了,權限控管很重要,不要什麼都用 root,太危險