2009年7月13日星期一

更改Linux用戶的home

很簡單,只需修改 /etc/passwd。找到自己想要改的用戶,直接把他的home改成想要的目錄就可以。
antony:x:1234:1234:Antony Ho,,,:/home/antony:/bin/bash
antony:x:1234:1234:Antony Ho,,,:/home/newdirectory:/bin/bash

存檔。

這樣我的Home就被轉成/home/newdirectory了。

封鎖某用戶或用戶組的SSH登入

很簡單,只需修改 /etc/ssh/sshd_config 檔案。

在裡內加上
DenyUsers someone #用戶名
DenyGroups some_people #群組

儲存,並重啟SSHD
sudo /etc/init.d/ssh restart

2009年7月11日星期六

在一台Linux上設virtual host跑數個網站

這個記錄是以Apache2作為HTTP daemon,在Apache2上設定數個網站。因為Apache2本來就在設計上支援這個目的。

Apache2在預設安裝後, 一般使用/var/www/作為網站的資夾料,看一下裡面會發現一個index.html檔案。

但我們既然要在這台伺服器上跑幾個網站,就得用一個資料夾有系統地存放。

我選擇在/home下建立一個叫www的資料夾,然後再在上面因應不同網站建不同的資料夾。

sudo mkdir /home/www
設定這個資料夾所屬的群組和擁有者

sudo chown www-data /home/www
sudo chgrp www-data /home/www
為新的網站建立資料夾

sudo mkdir /home/www/notes.antonyho.net
這些資料夾是用作存放CGI或者log的

sudo mkdir /home/www/notes.antonyho.net/cgi-bin
sudo mkdir /home/www/notes.antonyho.net/logs
sudo mkdir /home/www/notes.antonyho.net/htdocs

設定這個網站的擁有者為owner,設定www-data為資料夾的群組以方便儲取。

sudo chown antony -R /home/www/notes.antonyho.net
sudo chgrp www-data -R /home/www/notes.antonyho.net

好,到戲肉了。
Apache2建立virtual host的方式是在 /etc/apache2/sites-available/ 這個資料夾裡建一個設定檔,在裡面把您網站的資料夾,存取限制設定好。

假設我的網站是notes.antonyho.net,我就在 /etc/apache2/sites-available/ 裡建一個以網址命名的設定檔。

sudo touch /etc/apache2/sites-available/notes.antonyho.net


又或者利用預設的設定檔再作修改


sudo cp /etc/apache2/sites-available/default
/etc/apache2/sites-available/notes.antonyho.net

修改這個檔案

sudo nano /etc/apache2/sites-available/notes.antonyho.net
以下是一個可供設考的設定檔

<virtualhost>
ServerAdmin admin@notes.antonyho.net #網站負責人的電郵
ServerName notes.antonyho.net #網址
ServerAlias notes.antonyho.net #如果網站有縮寫網址可在這裡設定

DocumentRoot /home/www/notes.antonyho.net #改為你網站用的資料夾
<directory /home/www/notes.antonyho.net/ > #這裡記得在資料夾尾加/
Options Indexes FollowSymLinks MultiViews
#上面是設定資料夾的一些屬性
#Indexes,訪客可以要求資料夾的檔案清單,這個要小心設定使用與否。
AllowOverride None
Order allow,deny
allow from all
</directory>

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ #設了這個就可以使用CGI
<directory>
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</directory>

ErrorLog /home/www/notes.antonyho.net/logs/error.log #error log的位置

# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn

CustomLog /var/log/apache2/access.log combined #access log的位置

Alias /htdocs/ "/home/www/notes.antonyho.net/htdocs/"
<directory>
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</directory>

</virtualhost>


設定好後儲存。
然後啟用這個網站。

sudo a2ensite hkuoshard.com
重載Apache2的設定

sudo /etc/init.d/apache2 reload


提DNS設定指向到這個伺服器後,並把網站的檔案存到/home/www/notes.antonyho.net,訪問notes.antonyho.net該會正常顯示到網站囉。


我在設定時也是主要參考下面這個英文的Debian管理教學,而我使用的是Ubuntu Server。
http://www.debian-administration.org/articles/412