如何改變帳號的群組為wheel

在FreeBSD裡,具有最高操作權限除了root之外,群組wheel也能做root身分的事。
如果帳號原身分不是wheel群組,那麼就不可以用su來改原身分為root,並且它會跟你say sorry。
一般說來在新增使用者時:adduser ,在選擇要加入哪些群組時,就可以在那邊做加入wheel的動作,若是已存在的帳號,改變群組時,可以下這個指令:

[cc lang=”bash”]
$ pw groupmod wheel -m username
[/cc]

然後讓該帳號重新登入,就可以用su來改變為root身份了。
當然也可以直接修改 /etc/group 檔案找到該後改成:
[cc lang=”bash”]
wheel:*:0:root,username
[/cc]

username就是要加入wheel群組的帳號名稱。

PF 的傳輸埠導向

如果你的NAT需要開放一些SSH或是一些服務的埠號導向後方的電腦們,這時你就需要設定一些導埠的的語法將所需的服務開通並導向正確的電腦們。
檔案設定在 /etc/pf.conf
[cc lang=”bash”]
if_ext=”vtnet0″
if_int=”vtnet1″

#用兩台mysql的原因是需要靠外部的SSH連進去管理。因此請照你目前NAT的後方的電腦的服務狀況來設定。
mysqla01=”192.168.101.141″
mysqla02=”192.168.101.142″

net_lan=”192.168.101.0/24″

set skip on lo0

nat on $if_ext from $net_lan -> ($if_ext:0)
no nat on $if_ext from !$net_lan to any

#導向ssh的通訊埠
rdr pass on $if_ext proto tcp from any to any port 22141 -> $mysqla01 port 22
rdr pass on $if_ext proto tcp from any to any port 22142 -> $mysqla02 port 22
rdr pass on $if_ext proto tcp from any to any port 22 -> 192.168.101.254 port 22

#原本要阻擋所有導進來的通訊,為了能測試通過導向,先開啟所有通訊埠。未來再找資料做個比較好的設定。
#block in on $if_ext
pass in on $if_ext

pass out
[/cc]

其設定的重點就是在rdr的部份,照以上的格式,可以將NAT對外的網卡以any to any的方式將來自於埠號22141連進第一台mysql的SSH之22埠。
然後用pfctl -nf /etc/pf.conf 來測試是否有正確,然後再下pfctl -f /etc/pf.conf 載入變更後的設定檔。
因此下了指令 pfctl -ns
[cc lang=”bash”]
$ pfctl -sn
No ALTQ support in kernel
ALTQ related functions disabled
nat on vtnet0 inet from 192.168.101.0/24 to any -> (vtnet0:0)
no nat on vtnet0 inet from ! 192.168.101.0/24 to any
rdr pass on vtnet0 inet proto tcp from any to any port = 22141 -> 192.168.101.141 port 22
rdr pass on vtnet0 inet proto tcp from any to any port = 22142 -> 192.168.101.142 port 22
rdr pass on vtnet0 inet proto tcp from any to any port = ssh -> 192.168.101.254 port 22
[/cc]
只要看到上述的內容有正確,就可以方便進入管理NAT後方的電腦了。

apr_sockaddr_info_get() failed for HOSTNAME

剛開始在FreeBSD安裝完Apache之後啟動沒成功訊息為 apr_sockaddr_info_get() 的錯誤,相關修正的方法就是去 /etc/hosts 裡變更您的 hostname ,起碼要改的一樣才會正常。

查詢機器自已的hostname
[cc lang=”bash”]
$ hostname
brabra.domain.com
[/cc]
然後編輯hots檔
[cc lang=”bash”]
$ vi /etc/hosts
[/cc]
然後變更相關的字樣要跟查詢到的hostname一樣
[cc lang=”bash”]
::1 localhost brabra.domain.com
127.0.0.1 localhost brabra.domain.com
[/cc]
然後重啟apache
[cc lang=”bash”]
$ apachectl start
Performing sanity check on apache22 configuration:
Syntax OK
Starting apache22.
$_
[/cc]

然後去Browser測試..

It works!

apache 設定手札

今天送來的server 是 freebsd 但是apache仍有些地方尚未設定,應該是當初安裝時沒設定到,另外加上的參數有

AddType application/x-httpd-php .php
AddType application/x-httpd-php .cgi
AddType application/x-httpd-php-source .phps

DirectoryIndex 加上 index.php

NameVirtualHost 給註解掉,因為在<VirtualHost >的標籤中設定成為<VirtualHost _default_> 所以apache就不會再靠北了!

而且用virtualhost也能正常顯示另一個網站。

另外php5中預設定安裝的php extension沒有安裝mbstring所以打下指令安裝:

# cd /usr/ports/lang/php5-extensions

進入ports的目錄中

# make config

freebsd將顯示這多選項以供選裝

# make WITHOUT_X11=yes install

則重新啟動apache即把mbstring給成功載入

安裝ImageMagick

# cd /usr/ports/graphics/ImageMagick
# make config

還未完成,還需要能讓php支援imagemagick

# cd /usr/ports/graphics/php-magickwand
# make install

安裝完成之後重新啟apache即可戴入完成。

chown 改變檔案擁有者

語法 : chmod [-cfhvR] [–help] [–version] user[:group] file…

user : 新的檔案擁有者的使用者 ID
group : 新的檔案擁有者的使用者群體(group)

-c : 若該檔案擁有者確實已經更改,才顯示其更改動作-f : 若該檔案擁有者無法被更改也不要顯示錯誤訊息
-h : 只對於連結 (link) 進行變更,而非該 link 真正指向的檔案
-v : 顯示擁有者變更的詳細資料
-R : 對目前目錄下的所有檔案與子目錄進行相同的擁有者變更(即以遞回的方式逐個變更)

若將所有目錄下的檔案與子目錄一起更改則指令語法如下:

chmod -R myname *

其中「*」字號為萬用字元,表示全部都處理。