[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
才不會發生無法使用指令的情況

[Apache] .htaccess 失效

今天發現自己的apache根目錄會顯示出來
基於安全的問題所以在根目錄丟一個.htaccess去檔顯示目錄

Options -Indexes

丟進去後
卻發現目錄依然會顯示
檢查一下http.conf
原來是AllowOverride的設定是None
改成 AllowOverride All 重新啟動Apache即可

<Directory "/usr/local/www">
    Options Indexes FollowSymLinks
    # 這裡改成All
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

[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

 

[Git] Basic Command

 "># 設定個人資訊 (這些資訊會顯示在commit log上)
git config --global username "your name"
git config --global email "your E-mail"

#------------------------------[init]-----------------------------------
# 切換到自己的專案目錄
cd my_project

# 管理初始化
git init


#------------------------------[add]----------------------------------
# 新增檔案
git add (file name)

# 將當前目錄下的所有檔案及目錄加入管理
git add .

# 將指定子目錄下的指定檔案加入管理
git add dir_name/file_name

# 將指定子目錄下的所有檔案加入管理
git add dir_name/.

# 新增修改過的檔案 (兩者皆可)
git add -u
git add modifyfile


#-------------------------------[commit]----------------------------------
# commit並添加註解
git commit -m "commit message"

# 自動add修改過的檔案(不包含未納管的檔案)並commit (會開啟editor,需要寫commit massage)
git commit -a

# 同上,差異在於commit massage直接寫在-m後面,並不會開啟editor
git commit -a -m "commit message"

# -v 可以看到檔案哪些內容有被更改
git commit -a -v


#-------------------------------[branch]----------------------------------
# 列出現有branch
git branch

# 列出所有branch
git branch -a

# 新增branch
git branch (branch name)

# 從master新增branch
git branch test-branch master

# 刪除branch
git branch -d (branch name)

# 強制刪除branch
git branch -D (branch name)

# 重新命名branch (當前branch為old branch時可忽略參數old branch name)
git branch -m (old branch name) (new branch name)

# 切換至指定branch
git checkout (branch name)

# 將指定的branch與當前branch合併
git merge (branch name)

#-------------[push、pull、clone、remote(以girhub為例)]-------------
# 提交變更至git server
git push git@github.com:(user name)/(project name).git

# 提交指定branch的變更
git push git@github.com:(user name)/(project name).git (branch name)

# 刪除git server上的branch(下列兩種方式皆可)
git push git@github.com:(user name)/(project name) .git :(branch name)
git push origin --delete (branch name)

# 檢查git server有無較新的變更,並拉下來更新本機的檔案(未指定remote+branch name則對目前branch進行作業)
git pull (remote) (branch name)

# 將該專案資料夾從git server拉下來
git clone git@github.com:(user name)/(project name).git

# 新增遠端名稱
git remote (remote name) git@github.com:(user name)/(project name).git

# 顯示現有remote清單
git remote -v

# 將project上傳到指定的remote
git push (remote name)

# 將project裡指定branch的上傳到指定的remote
git push (remote name) (branch name)
example:
git remote origin git@github.com:athlon20147/myproject.git //remote name : origin
新增好remote後,以下兩行功能相等
git push git@github.com:athlon20147/myproject.git
git push origin

-------------------------------[other]----------------------------------
# 檢視變更紀錄
git log

# 還原已經commit刪除的檔案
git checkout <deleteing_commit>^ -- <file_path>
ex: git checkout b05128e3ebd4f38c317f066d679aee21c7d3af65^ -- config/ldap-sample.php

[Git] Github、Bitbucket綁定ssh-key

若環境是Windows,請先安裝Git 


產生一組新的SSH Key(如果已經有現成的,可跳過這步驟)

 "># 切換到使用者家目錄
cd ~

# 產生ssh key
ssh-keygen -t rsa -C "你的E-mail"

# 這裡是指定key的擺放位置,直接Enter下去使用預設值就好
Generating public/private rsa key pair.
Enter file in  which to have the key
(/Users/your_user_directory/.ssh/id_rsa):

# key的驗證密碼,在進行驗證時使用者端需要額外輸入密碼做驗證,也可以留空 (建議不要在公用電腦使用空密碼)
Enter passphrase (Empty for nopassphrase):

# 再次輸入
Enter same passphrase again:

# 完成後會看到家目錄多了一個.ssh的目錄,裡面有 id_rsa (Private-Key) 與 id_rsa.pub (Public-Key) 兩個檔案
# 使用 cat 指令顯示自己的public-key (要加入到git server用)
cat ~/.ssh/id_rsa.pub

 

 


將Key加入至 Github 帳號

git-hub-add-public-key


將Key加入至 Bitbucket 帳號

bitbucket-add-public-key