透過 php 來管理,目錄中的檔案的權限

如果您覺得您的問題不屬於 debian desktop 或是 debian server 版的範圍內,請在這裡發問。

版主: mufa

透過 php 來管理,目錄中的檔案的權限

文章walisbuya » 週日 7月 29, 2007 1:55 pm

我想用php 的網頁程式,來管理檔案的權限如下:
in.php <==這檔案的權限是 777 (索性權限全開)
<?
exec("/bin/chmod 755 index.html");
?>

經由上述程式執行,
檔案權限,會從 644 改變成 755,如下
index.html 644 ==> index.html 755

其中,我已在 sudoers 中最後一行,增加了一條使用者權限,
也重開機過,不知道有沒有這個必要重開,不過我還是這麼做了,

root ALL=(ALL) ALL
normaluser ALL=(ALL) ALL


這些檔案都置放在以下的目錄內。
/home/normailuser/public_html/

最後執行的結果是 ==> "沒有任何改變,index.html 的權限,還是 644"

我後來,將index.html 的權限改成 777
程式內容更改了一下,
in.php
<?
exec("/bin/chmod 644 index.html");
?>

執行結果還是不為所動,不知道為什麼。能為我解答嗎? 非常謝謝。
walisbuya
可愛的小學生
可愛的小學生
 
文章: 5
註冊時間: 週日 7月 29, 2007 1:52 pm

文章【Palatis】 » 週日 7月 29, 2007 2:18 pm

path?

exec("/bin/chmod 755 /path/to/index.html");

php 執行的 PWD 不一定就是你 script 的 dir.
【Palatis】
可愛的小學生
可愛的小學生
 
文章: 5
註冊時間: 週六 9月 27, 2003 4:02 pm

文章walisbuya » 週日 7月 29, 2007 3:17 pm

我改成
exec("/bin/chmod 755 /home/normailuser/public_html/index.html");
還是不行。

除了sudoers 的設定之外,還需要作什麼系統設定嗎。
必竟是用網頁來管理其目錄下檔案的權限,而不是用 ssh 連進來管理,

是不是還得開放什麼? 對了,Debian 的版本,我是用 4.0 的
Apache 是 2.0

我在想,是不是 PHP 程式內,也要先作 login ,才能進行,檔案權限的改變? 我查了查 PHP 的用法,似乎沒有可以用 exec() 登入的方法.
walisbuya
可愛的小學生
可愛的小學生
 
文章: 5
註冊時間: 週日 7月 29, 2007 1:52 pm

文章kiang » 週日 7月 29, 2007 6:29 pm

找找 suphp 的資料,也許會有你想要的
圖檔
kiang
可愛的小學生
可愛的小學生
 
文章: 40
註冊時間: 週二 8月 17, 2004 12:04 pm

文章twu2 » 週日 7月 29, 2007 6:54 pm

都在寫程式了, 有什麼理由不利用本身的 api 來處理, 要去呼叫外部的程式?

另外, 如果用 module 的方式來執行 php, 那麼執行的 user 會是執行 apache 的 user, 通常也表示不會有更改 userdir 裡頭檔案的權限.

請利用 suphp 來處理.
twu2
懵懂的國中生
懵懂的國中生
 
文章: 219
註冊時間: 週二 3月 11, 2003 2:58 pm
來自: Taipei

文章walisbuya » 週三 8月 01, 2007 12:13 am

感謝各位的回應,
我試過了 suPHP 的,最後的結果是,
apache2 不能跑,整個解除,重新套件後,也不行,
最後重裝 Debian,
------------------
至於 api 我不懂這是什麼,這是 W$ DLL 的程式庫嗎?
我找不到資料可以試。suPHP 我剛剛說過了,他把 apache2 玩掛了,
------------
Debian 重裝之後,最後解決的方式,就只是把擁有者改成 www-data
就好了,
exec("chmod 400 index.html");
能夠執行,也不需特別指明絕對目錄,只要用相對目錄就行了。
-----
我的目的,就只是想透過自己的程式,來管理檔案的權限,
並不需要什麼特別的套件。
分享給大家,以上,謝謝。
walisbuya
可愛的小學生
可愛的小學生
 
文章: 5
註冊時間: 週日 7月 29, 2007 1:52 pm

文章twu2 » 週三 8月 01, 2007 9:18 am

那... 把 apache 用 root 跑吧. 什麼都可以做.
順便把網路線拔了吧, 因為用 root 跑, 可能沒多久整台就會黑了.
twu2
懵懂的國中生
懵懂的國中生
 
文章: 219
註冊時間: 週二 3月 11, 2003 2:58 pm
來自: Taipei

文章walisbuya » 週三 8月 01, 2007 5:49 pm

若是用 root 來跑程式,的確有可能;
一般性帳號,若沒有處理好,主機也是會淹水的,

若您有除了suPHP之外的方法,請你不吝分享,謝謝。

另外,www-data 這帳號,並不是 root ,
若沒錯的話,對主機來說,這只是一個帳號,
不同的地方是,這帳號,是可以用在網頁管理上,

而該帳號呢,是可以透過指令集管理的方式,來限制使用指令的範圍,

我實作得到的結果是,visudo 可以作到這種限制,
我在找「權限管理方法」的時候,無意間,有實作到這一個,
我後來才明白,visudo 的作用,

最初講的,我的目的,就只是想作檔案的權限管理,其設置的範圍,是可以照自己的意思來作設置的,可以是一個檔案,也可以是一個目錄,只要我不講,誰知道,我對那一個檔案作 www-data 的設定。還有丫,也沒有必要把全部的目錄及檔案,全設置成 www-data 。像我,我是依我的需求,來作這種權限的控制的。

我思考了一下,我可以用一條程式碼來解決的問題,有必要去安裝 suPHP 嗎?! 一般的機器,也不會特別去裝這個套件。流通性並不是很好。不過,看大家這麼的推薦 suPHP ,我有空,會去研究其程式碼,看他是怎麼實作的。

嗯~ 回頭去看您講過的 api ,其實我很好奇,那到底是什麼,可以請你多提供一些資訊讓我知道嗎? 我好知道,像這樣的方法,我可以用在什麼用途上。非常感謝。

另外一提,不管我有沒有在網頁程設上,設計出網頁的管理介面,對主機來說,這些使用者,全都是「暱名」的網頁瀏灠使用者,若要修改檔案權限,主機只會回應 "不給改!!!",如我之前一直找不到解決方式的時候。除非,有涉及到,檔案權限管理的部分。則會根據連線的方式,給予適時的授權。當然,我們還是得瞭解其設定才行。
walisbuya
可愛的小學生
可愛的小學生
 
文章: 5
註冊時間: 週日 7月 29, 2007 1:52 pm

文章訪客 » 週三 8月 01, 2007 9:05 pm

API? Application Programming Interface.

Read this:
http://en.wikipedia.org/wiki/API


chmod API for PHP:
http://www.php.net/manual/en/function.chmod.php
訪客
 

文章walisbuya » 週三 8月 01, 2007 11:25 pm

您好,謝謝你的提供。

我很喜歡分享與獲得的喜稅。我程設的大舉進步,就是因為自由軟體與先進無私的奉獻,我才有磨練的空間與機會。我希望自己能夠跟得上各位先進,就算是錯誤示範,也算是經驗的一環。新進的新手與大伙們,就拿作借鏡亦可。

api 這部分,領域不太熟悉。若有所獲得,我會再把新的發現補上來。感恩。
walisbuya
可愛的小學生
可愛的小學生
 
文章: 5
註冊時間: 週日 7月 29, 2007 1:52 pm

文章mason » 週四 8月 02, 2007 9:48 am

walisbuya 寫:另外一提,不管我有沒有在網頁程設上,設計出網頁的管理介面,對主機來說,這些使用者,全都是「暱名」的網頁瀏灠使用者,若要修改檔案權限,主機只會回應 "不給改!!!",如我之前一直找不到解決方式的時候。

在 console 上也是一樣。
使用者可以更改檔案權限,但是不能更改檔案的 owner .
只有 superuser 可以。
skype:dantemason
http://blog.sikazozo.org
頭像
mason
快樂的大學生
快樂的大學生
 
文章: 547
註冊時間: 週二 9月 10, 2002 3:40 pm
來自: SIDE 3


回到 debian misc

誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 1 位訪客