在linux中給文件添加可執行許可權,可以通過chmod命令來設置。
1、在linux中,許可權對應的數值分別如下:
r(read讀許可權):4
w(write寫許可權):2
x(execute執行許可權):1
2、比如有一個t.sh的腳本文件,默認是644的許可權,即所有者擁有讀寫許可權,所有者所在組擁有隻讀許可權,其它用戶都有隻讀許可權。
❷ 關於Linux如何設置某個文件夾內的PHP文件為不可執行許可權
你這么想嘛首先,完全操作的許可權是 7如果你要去年去掉執行許可權,那麼就減1就是版6啦因此設定一個文件夾(包權括子文件),可讀可寫,那麼命令就是chmod -R 666 [目錄名]為什麼是3個6呢,第一個6代表這個文件的所屬用戶,這二個6代表,用戶所屬的組,第三個則表示其它用戶!下面舉個實例,我要把 /var/www/data 目錄的所有文件改為當前用戶具有全部許可權,用戶組和其它用戶不可執行,那麼命令就是chmod -R 766 /var/www/data如果執行命令時出現錯誤就在前面加個sudo sudo chmod -R 766 /var/www/data 同理,要禁止一個文件不能寫入的話,7-2=5so chmod -R 755 /var/www/data
❸ window 和linux 下如何用php程序設置文件許可權
win下無需設置許可權
linux下用 chmod()函數設置
❹ php下 怎麼改變linux文件的許可權
現在用php給一個linux程序做界面,不過需要改變某一些文件的許可權,我用的是chdir+system的方法,比如chdir到該文件所在的目錄下,然後system("chmod 755 $filename"),可是這樣的話好像是沒有效果的,網上看了些帖子,了解到php一般是以apache用戶身份去執行的,可以通過改變apache的屬組來實現,可是具體怎麼實現呢,能用php上直接實現么,麻煩來電詳細的解釋謝謝
❺ Linux下如何設置某個文件夾內的PHP文件為不可執行許可權
所有的人都不可執行
chmod a-x dirname/*.php
除了自己以外的人不可執行
chmod go-x dirname/*.php
自動繼承目錄許可權
chmod a+s dirname
❻ 如何在linux使用md5對其進行加密
這里以字元串123456為例子,它的md5密文值為:x0dx0a這里以1.txt為需要被加密的文件。x0dx0ax0dx0a一、用oppnsslmd5加密字元串和文件的方法。x0dx0a1.oppnsslmd5加密字元串的方法x0dx0aa.手動輸入命令及過程如下:x0dx0a#openssl//在終端中輸入openssl後回車。x0dx0aOpenSSL>md5//輸入md5後回車x0dx0a123456//接著輸入123456,不要輸入回車。然後按3次ctrl+d。x0dx0a123456//123456後面的就是密文了x0dx0a解釋:為何在輸入123456後不回車呢?x0dx0a是因為openssl默認會把回車符當做要加密的字元串中的一個字元,所以得到的結果不同。如果你輸入123456後回車,在按2次ctrl+d。得到的結果是:x0dx0aOpenSSL>md5x0dx0a123456x0d//因為openssl不忽略回車符導致的x0dx0ab.或者直接用管道命令x0dx0a#echo-n123456|opensslmd5//必須要有-n參數,否則就不是這個結果了。x0dx0ax0dx0a解釋:為何要加-n這個參數?x0dx0a-n就表示不輸入回車符,這樣才能得到正確的結果。如果你不加-n,那麼結果和前面說的一樣為:x0d//因為openssl不忽略回車符導致的x0dx0a2.用openssl加密文件。x0dx0a#opensslmd5-in1.txtx0dx0ax0dx0a##################################################3x0dx0aOpenssl其他相關加密的命令參數:引自:實用命令:利用openssl進行BASE64編碼解碼、md5/sha1摘要、AES/DES3加密解密收藏x0dx0a一.利用openssl命令進行BASE64編碼解碼(base64encode/decode)x0dx0a1.BASE64編碼命令x0dx0a對字元串『abc』進行base64編碼:x0dx0a#echoabc|opensslbase64x0dx0aYWJjCg==(編碼結果)x0dx0a如果對一個文件進行base64編碼(文件名t.txt):x0dx0a#opensslbase64-int.txtx0dx0a2.BASE64解碼命令x0dx0a求base64後的字元串『YWJjCg==』的原文:x0dx0a#echoYWJjCg==|opensslbase64-dx0dx0aabc(解碼結果)x0dx0a如果對一個文件進行base64解碼(文件名t.base64):x0dx0a#opensslbase64-d-int.base64x0dx0a二.利用openssl命令進行md5/sha1摘要(digest)x0dx0a1.對字元串『abc』進行md5摘要計算:echoabc|opensslmd5x0dx0a若對某文件進行md5摘要計算:opensslmd5-int.txtx0dx0a2.對字元串『abc』進行sha1摘要計算:echoabc|opensslsha1x0dx0a若對某文件進行sha1摘要計算:opensslsha1-int.txtx0dx0a三.利用openssl命令進行AES/DES3加密解密(AES/DES3encrypt/decrypt)x0dx0a對字元串『abc』進行aes加密,使用密鑰123,輸出結果以base64編碼格式給出:x0dx0a#echoabc|opensslaes-128-cbc-k123-/JA2dhN4mtiotwD7jt4g=(結果)x0dx0a對以上結果進行解密處理:x0dx0a#echoU2FsdGVkX18ynIbzARm15nG/JA2dhN4mtiotwD7jt4g=|opensslaes-128-cbc-d-k123-base64x0dx0aabc(結果)x0dx0a若要從文件里取原文(密文)進行加密(解密),只要指定-in參數指向文件名就可以了。x0dx0a進行des3加解密,只要把命令中的aes-128-cbc換成des3就可以了。x0dx0a註:只要利用opensslhelp就可以看到更多的安全演算法了。x0dx0a###############################################x0dx0ax0dx0a二、利用php的md5函數加密字元串x0dx0a#toucha.php//創建a.php文件x0dx0a#via.php//用vi編輯a.php文件x0dx0a將輸入進去後保存x0dx0a#phpa.php//運行a.php文件x0dx0a顯示:x0dx0a三、利用md5sum命令x0dx0aA.在linux或Unix上,md5sum是用來計算和校驗文件報文摘要的工具程序。一般來說,安裝了Linux後,就會有md5sum這個工具,直接在命令行終端直接運行。可以用下面的命令來獲取md5sum命令幫助manmd5sumx0dx0a#md5sum_helpx0dx0a有個提示:「WithnoFILE,orwhenFILEis-,readstandardinput.」翻譯過來就是「如果沒有輸入文件選項或者文件選項為-,則從標磚讀取輸入內容」,即可以直接從鍵盤讀取字元串來加密。x0dx0a利用md5sum加密字元串的方法x0dx0a#md5sum//然後回車x0dx0a123456//輸入123456.然後按兩次ctrl+d.x0dx0a顯示:x0dx0a123456紅色代表加密後的值x0dx0a還可以用管道命令:x0dx0a#echo-n'|md5sumx0dx0ax0dx0a或者寫成md5加密腳本,名字叫md5.sh,x0dx0a將以下內容復制進腳本里:x0dx0a#!/bin/bashx0dx0aecho-n$1|md5sum|awk'{print$1}'x0dx0ax0dx0a保存後,給腳本執行許可權。x0dx0a#shmd5.sh123456x0dx0a顯示:x0dx0aB.其實也可以將文本放入文本文件,然後用md5sum加密改文本,也可以得到字元串加密的值。過程如下:x0dx0a#toucha.txtx0dx0a#echo-n123456>a.txt//將123456寫進文本文件,不能丟了_n參數,避免回車符干擾x0dx0a#md5suma.txtx0dx0a顯示:a.txtx0dx0ax0dx0actrl+d有兩個含義:x0dx0a一是向程序發送文件輸入結束符EOF。x0dx0a二是向程序發送exit退出指令。程序收到信號後具體動作是結束輸入、然後等待,還是直接退出,那就要看該程序捕獲信號後是如何操作的了。x0dx0amd5sum屬於第一個含義。兩次strl+d了,第一次讀取EOF指令,再次捕獲就會當成exit指令。而shell一類的程序,會直接把ctrl+d解析為退出指令。
❼ linux下php文件操作許可權
什麼叫作B文件本身是不可寫的?
系統沒有給它寫許可權,但是它的許可權可以改專吧?
問題在於屬php文件所屬的用戶有沒有改許可權的的許可權
如果chmod()函數成功,返回true,那麼文件就可寫
如果沒有許可權改,那麼chmod失敗,返回false, 文件不可寫
❽ 求助;Linux下如何設置某個文件夾內的PHP文件為不可執行許可權
# chmod -R -x 目錄
❾ php flock 獨占鎖啥意思
於php中文件鎖函數flock函數用法簡介,希望通過本文的介紹大家對於Linux方面能夠更加的了解
flock
(PHP 4, PHP 5)
flock — 輕便的咨詢文件鎖定
說明
bool flock ( int $handle , int $operation [, int &$wouldblock ] )
PHP 支持以咨詢方式(也就是說所有訪問程序必須使用同一方式鎖定, 否則它不會工作)鎖定全部文件的一種輕便方法。
Note:
在 Windows 下 flock() 將會強制執行。
flock() 操作的 handle 必須是一個已經打開的文件指針。operation 可以是以下值之一:
要取得共享鎖定(讀取的程序),將 operation 設為 LOCK_SH(PHP 4.0.1 以前的版本設置為 1)。
要取得獨占鎖定(寫入的程序),將 operation 設為 LOCK_EX(PHP 4.0.1 以前的版本中設置為 2)。
要釋放鎖定(無論共享或獨占),將 operation 設為 LOCK_UN(PHP 4.0.1 以前的版本中設置為 3)。
如果不希望 flock() 在鎖定時堵塞,則給 operation 加上 LOCK_NB(PHP 4.0.1 以前的版本中設置為 4)。
flock() 允許執行一個簡單的可以在任何平台中使用的讀取/寫入模型(包括大部分的 Unix 派生版和甚至是 Windows)。如果鎖定會堵塞的話(EWOULDBLOCK 錯誤碼情況下),可選的第三個參數會被設置為 TRUE。鎖定操作也可以被 fclose() 釋放(代碼執行完畢時也會自動調用)。
成功時返回 TRUE, 或者在失敗時返回 FALSE.
Example #1 flock() 例子
復制代碼 代碼如下:
<?php
$fp = fopen("/tmp/lock.txt", "w+");
if (flock($fp, LOCK_EX)) { // 進行排它型鎖定
fwrite($fp, "Write something here ");
flock($fp, LOCK_UN); // 釋放鎖定
} else {
echo "Couldn't lock the file !";
}
fclose($fp);
?>
Note:
由於 flock() 需要一個文件指針, 因此可能不得不用一個特殊的鎖定文件來保護打算通過寫模式打開的文件的訪問(在 fopen() 函數中加入 "w" 或 "w+")。
Warning
flock() 不能用於 NFS 以及其它一些網路文件系統。詳細資料查看自己操作系統的文檔。
在部分操作系統中 flock() 以進程級實現。當用一個多線程伺服器 API(比如 ISAPI)時,可能不可以依靠 flock() 來保護文件,因為運行於同一伺服器實例中其它並行線程的 PHP 腳本可以對該文件進行處理。
flock() 不支持舊的文件系統,如 FAT 以及它的派生系統。因此,此環境下總是返回 FALSE(尤其是對 Windows 98 用戶來說)。
php中文件鎖函數flock函數用法簡介:
語法:
bool flock ( int $handle , int $operation [, int &$wouldblock ] )
flock() 操作的 handle 必須是一個已經打開的文件指針。operation 可以是以下值之一:
1. 要取得共享鎖定(讀取程序),將 operation 設為 LOCK_SH(PHP 4.0.1 以前的版本設置為 1)
2. 要取得獨占鎖定(寫入程序),將 operation 設為 LOCK_EX(PHP 4.0.1 以前的版本中設置為 2)
3. 要釋放鎖定(無論共享或獨占),將 operation 設為 LOCK_UN(PHP 4.0.1 以前的版本中設置為 3)
4. 如果你不希望 flock() 在鎖定時堵塞,則給 operation 加上 LOCK_NB(PHP 4.0.1 以前的版本中設置為 4)
看下面代碼:
a.php
復制代碼 代碼如下:
<?php
$file = 「temp.txt」;
$fp = fopen($file , 'w『);
if(flock($fp , LOCK_EX)){
fwrite($fp , 「abc」);
sleep(10);
fwrite($fp , 「123」);
flock($fp , LOCK_UN);
}
fclose($fp);
?>
b.php
復制代碼 代碼如下:
<?php
$file = 「temp.txt」;
$fp = fopen($file , 'r');
echo fread($fp , 100);
fclose($fp);
?>
運行 a.php 後,馬上運行 b.php ,可以看到輸出:
abc
等 a.php 運行完後運行 b.php ,可以看到輸出:
abc
123
顯然,當 a.php 寫文件時數據太大,導致時間比較長時,這時 b.php 讀取數據不完整,在對b.php做修改
修改 b.php 為:
復制代碼 代碼如下:
<?php
$file = 「temp.txt」;
$fp = fopen($file , 'r『);
if(flock($fp , LOCK_EX)){
echo fread($fp , 100);
flock($fp , LOCK_UN);
} else{
echo 「Lock file failed…」;
}
fclose($fp);
?>
運行 a.php 後,馬上運行 b.php ,可以發現 b.php 會等到 a.php 運行完成後(即 10 秒後)才顯示:
abc
123
讀取數據完整,但時間過長,他要等待寫鎖釋放,再對b.php做修改。
修改 b.php 為:
復制代碼 代碼如下:
<?php
$file = 「temp.txt」;
$fp = fopen($file , 'r');
if(flock($fp , LOCK_SH | LOCK_NB)){
echo fread($fp , 100);
flock($fp , LOCK_UN);
} else{
echo 「Lock file failed…」;
}
fclose($fp);
?>
運行 a.php 後,馬上運行 b.php ,可以看到輸出:
Lock file failed…
證明可以返回鎖文件失敗狀態,而不是向上面一樣要等很久。
腳本之家小編結論:
建議作文件緩存時,選好相關的鎖,不然可能導致讀取數據不完整,或重復寫入數據。
file_get_contents 好像選擇不了鎖,不知道他默認用的什麼鎖,反正和不鎖得到的輸出一樣,是不完整的數據。