跳到主要內容

發表文章

目前顯示的是 3月, 2017的文章

Linux操作不求人 - 伍章之肆 - 正規表示式(Regular Expression, RE)

     很多直譯式的程式語言皆有支援正規表示式(R.E.,  Regex)(https://en.wikipedia.org/wiki/Regular_expression),如Perl,PHP,Shell Scripting 而 Linux 下的shell 操作環境更是可以利用 sed,grep 加上正規表示式來置換或是找尋想要的資料,表示的範圍可用 / Regrex  / 或 "Regex " 或 ' Regex ' 來給定。正規表示式大概遵從以下幾種規範: 1.  ^ 符號代表比對字串之起頭位置,而 $ 符號代表比對字串結束位置,假設有檔案內容如 圖5-4-1,我們利用指令 grep -n  來搜尋並印出有吻合字串的行數。每一行為算一組字串。 (圖5-4-1) 如圖5-4-1 可知道有6 (行) 組字串,第一個比對 ' se'(空格加上se),找到第一組。接著找起頭含M的,就找到第三組字串。接著找含 t 結尾之字串,便找到了第一,二,四組。最後找由數字結尾的字串,便出現第六組。以上皆為比對有列出的單一字串。 2. 若要比對可能有重複的字串,就需使用重複次數符號,如 * 與 ?,+為重複一次以上,或列舉次數{n}與{n,m},其中n為最少重複次數,m為最多重複次數,如圖5-4-2,此時要用 egrep 指令來操作才能看出,man egrep可查閱 egrep 操作。 (圖5-4-2) 圖5-4-2找出RegEx.txt 內容包含字串 s 的任意重複字數,s?代表s無重複或重複一次該字元的字串為吻合。接著指定找 s 最多出現兩次的字串 s{2},僅找到第三組與第五組,有僅包含 ss。 再來找數字978的任意重複數字,與最少重複一次的結果,才有出現第六組的字串,但當最少重複設定兩次,卻是無吻合,所以亦可將條件設定 [0-9]+ ,表示任意數字的集合重複最多三次。 * 與 ? 等特殊字元,若是為欲搜尋之標的物,請用符號 \ 來保留,如 \*。 3. 除此之外,亦可用 [ ] 內來列舉欲比對的字元,如 [ x | y | z ] 或 [0-9 | a-z | A-Z ]。如圖5-4-3 利用條件 [^0-9]* 來找出不含數字

Linux操作不求人 - 伍章之參 - SELinux 管理操作工具

     SELinux (Secure-Enhance Linux,https://en.wikipedia.org/wiki/Security-Enhanced_Linux),為 Linux 核心內的強制存取控制(MSA)的實現,已最小權限原則為基礎的安全模組,CentOS4版本便已經預設內建。SELinux主要為美國國安局(NSA)所開發,詳細資訊可參考https://www.nsa.gov/what-we-do/research/selinux/,就不再各位高手高手高高手面前贅述。我們主要直接進入SELinux的操作設定,而非不想面對的如其他說法:先  關 閉 它 ,如此反而造成系統的安全性疏漏。 首先,我們必須先利用 yum 下載 SELinux的 管理工具 policycoreutils,與錯誤紀錄工具 setromubleshooting,如圖5-3-1,使用 yum install policycoreutils-* : (圖5-3-1)      因SELinux管理工具為 Python 所撰寫,在使用之前,先檢視是否有更改系統預設 Python版本有改變 ( 如CentOS6預設為Python2.6,有些操作者可能自行換了 Python2.7,故要修改python  路徑),若改變Python 預設環境,會造成管理工具的執行錯誤,故需逐一變更管理工具所引用的 Python環境,或修改 /bin/python 或 /usr/bin/python 之版本。在 CentOS6下,SELinux 的設定檔置於 /etc/selinux/config。我們先用指令 getsebool,來獲得 SELinux 現有的預設設定。亦可以用 semanage boolean -l ,來看到每個boolean的說明,如圖5-3-2 至 圖5-3-6。semodule -l 可查看各政策模組的版本。以下條件都是由不同模組來提供他們是否開啟的boolean參數,若要更改永久設定,可使用指令 setsebool -P,如更改可開放個人home資料夾下作為httpd網站,則除設定網站 httpd 伺服器的 config外,還要注意設定selinux policy 為  setsebool -P  httpd_home