[FreeBSD] 檔案系統架構

做個筆記

1407302518-928700446

解說一下幾個比較常用到的地方,裡面放了哪些東西

  1. /bin & /usr/bin : 系統內建指令
  2. /dev : 儲存裝置對映檔
  3. /etc : 系統用程式與設定檔
  4. /home : 使用者家目錄
  5. /mnt : 臨時掛載點
  6. /root : root帳號家目錄
  7. /tmp : 暫存區,編譯軟體所產生的暫存檔會放置在這裡
  8. /usr : 使用者所安裝的工具&應用程式存放區
  9. /usr/local : 額外安裝執行檔、函式庫會在這裡,也是Ports預設安裝目錄
  10. /var : log檔存放區或memory-based檔案系統的掛載點

切割過程:
http://www.freebsd.org/doc/en/books/handbook/install-steps.html 

發表留言

[Linux] 用 ln 建立檔案或目錄連結

使用方式為 ln [-hs] <來源> <目標>

EX: 在 /var/www 下建立一個名為 wpmu 的 Synbolic Link,來源端為 /home/wordpress

ln -s /home/wordpress /var/www/wpmu

 

這裡只說明參數 -h-s 的差異,詳細請見 官方文件

 

-h 為 Hard Link,讀取方式為一層一層取得檔案相關的關聯資料,再到對應的 inode 取得檔案的屬性,以及檔案內容資料所在的 block , 最後到 block area 取得檔案的資料。

不管在哪個目錄底下叫出檔案並修改,因為 Hard Link 只是在目錄下建立一個檔案關聯紀錄,因此修改檔案時皆會修改到同一個檔案,而刪除檔案時只是刪除一個檔案關聯紀錄,並不是刪除檔案本身,因此不會變動到檔案本身的 inode 與 block area,好處為較安全。

由於 Hard Link 是在同一個 partition 上建立檔案關聯,因此 Hard Link 有兩項限制:

  1. 不能跨 File System
  2. 不能對目錄做 link

 

 

而參數 -s 為 Synbolic Link,這就好理解多了,Synbolic Link 會建立一個新檔案,指向 link 到的檔案或目錄,所以原檔案或目錄被砍掉時,這個 link 就會失效。而因為 link 的建立方式是建立新檔案,因此會有獨立的 inode 與 block 佔用磁碟空間 (建立及運作方式雷同 Windows 的捷徑)。


Reference:宅男的電腦筆記

發表留言

[FreeBSD] Single user mode

人多少會有健忘的時候

有時候會不小心忘記root密碼

或是不小心把設定改爛進不去系統

這時候就可以利用single user mode去修復

重開機後選擇第四個開機選項進入single user mode

 

#進入single user mode後會詢問下面的東西,按Enter直接跳過
Enter full pathname of shell of RETURN for /bin/sh:
#檢查並修正檔案系統
> fsck -p
#載入所有
> mount -a
#修改密碼
> pwsswd root
#編輯改爛的設定 (example: /etc/rc.conf)
> vi /etc/rc.conf
發表留言

[FreeBSD] sudo command

要在 FreeBSD 下使用 sudo 這個指令要額外裝套件
安裝 sudo 套件

cd /usr/ports/security/sudo
make install clean

 

裝完,編輯 sudoers,給予指定使用者使用 sudo 指令的權限

vim /usr/local/etc/sudoers

 

找到並複製 root 這行,將 root 修改為指定使用者名稱,修改完後強制存檔!wq

root ALL=(ALL) ALL
calos ALL=(ALL) ALL #指定使用者

 

※強制存檔與 chmod 的差別
如果 sudoers 檔案權限屬性非 440 時( read-only )
基於安全性,系統會將 sudo 指令擋下
所以如果是先 chmod 變更過權限屬性再修改檔案的話
記得要將權限屬性修改回 440
才不會發生無法使用指令的情況

發表留言

[FreeBSD] Twiki Install note

version:4.2.4

必要套件:Apache22、Perl5.10

安裝
cd /usr/ports/www/twiki
make install clean

 

設定各目錄訪問權限(bin與pub的設定在twiki.conf內而不使用.htaccess)
cd /usr/local/www/twiki
cp root-htaccess.txt .htaccess
cp subdir-htaccess.txt data/.htaccess
cp subdir-htaccess.txt locale/.htaccess
cp subdir-htaccess.txt templates/.htaccess
cp subdir-htaccess.txt tools/.htaccess
cp subdir-htaccess.txt working/.htaccess

 

設定twikiLibPath
cd /usr/local/www/twiki/bin
cp LocalLib.cfg.txt LocalLib.cfg //先copy example config
vi LocalLib.cfg
找到$twikiLibPath,並修改成實際路徑
$twikiLibPath = “/usr/local/www/twiki/lib”

 

 

加入/usr/local/etc/apache22/twiki.conf
ScriptAlias /twiki/bin “/usr/local/www/twiki/bin”
Alias /twiki/pub “/usr/local/www/twiki/pub”

BrowserMatchNoCase ^$ blockAccess

<Directory “/usr/local/www/twiki/bin”>
AllowOverride None
Order Allow,Deny
Allow from all
Deny from env=blockAccess

Options ExecCGI FollowSymLinks
SetHandler cgi-script

Password file for TWiki users

AuthUserFile /usr/local/www/twiki/data/.htpasswd
AuthName ‘Enter your WikiName: (First name and last name, no space, no dots, capitalized, e.g. JohnSmith)’
AuthType Basic

<FilesMatch “^configure.*”>
SetHandler cgi-script
Order Deny,Allow
Deny from all
Allow from 127.0.0.1 192.168.1.10 <–在這裡加入自己的IP(不然進不去configure)
Require user JohnDoe
Satisfy Any
</FilesMatch>
</Directory>

<Directory “/usr/local/www/twiki/pub”>
Options None
AllowOverride Limit
Allow from all

AddType text/plain .shtml .php .php3 .phtml .phtm .pl .py .cgi
</Directory>

 

 

 

編輯http.conf,在最底下加入一行
include “etc/apache22/twiki.conf”

 

打開瀏覽器進入Configure
http://(hostname)/twiki/bin/configure

 

若噴出Error.pm,將p5-Error砍掉重裝
cd /usr/ports/lang/p5-Error
make deinstall clean
make install clean
※不知道為什麼reinstall系統會噴錯誤,所以才下兩行指令

 

這時候應該就沒有error了,可以點選next
然後設定密碼後保存
twiki/lib底下就會出現LocalSite.cfg(用來保存網站設定)

 

若{RCS}{EgrepCmd}與{RCS}{fgrepCmd}出現
Error:”/BIN/grep” does not meet the current Path.
因為FreeBSD的grep在/usr/bin底下
所以只要把/bin/grep改成/usr/bin/grep(後面的參數不動)即可

 

 

User Mapping的部分:
預射是Twiki::Users::TwikiUserMapping
如果想先試跑首頁就先改成Twiki::Users::BaseUserMapping
保存後就可進入WebHome了
網址 http://(hostname)/twiki/bin/view/Main/WebHome

 

 

 

認證:

CGI::Session Install
shell> perl -MCPAN -e shell
cpan> install CGI::Session
Reference:http://cpan.uwinnipeg.ca/htdocs/CGI-Session/INSTALL.html

 

發表留言