這是一個蠻實用的技巧,當外面的用戶將信件寄到伺服器時,如果寫錯了收件者,或收信的用戶不存在,該信件就會被退回,寄件者會收到一封「查無此人」的信件。
以下這個技巧,就是為了把伺服器上「查無此人」的信件,改由特定的「用戶」或其它的「電子信箱」接收,修改步驟:
編輯 /etc/mail/sendmail.mc,搜尋有關 “LUSER_RELAY” 的設定(如果沒有搜尋到,也可以新增下面的設定),改成:
define(`LUSER_RELAY',`local:catchall')dnl
(表示將「查無此人」的信件由本機上的 “catchall” 用戶接收)
或者改成:
define(`LUSER_RELAY',`smtp:catchall@example.com')dnl
(表示將「查無此人」的信件轉寄給 “catchall@example.com” 這個電子信箱)
重新製作 /etc/sendmail.cf,並重新啟動 sendmail:
m4 /etc/mail/sendmail.mc > /etc/sendmail.cf
這樣就完成了。
轉載自: Sam Tang @ Blog
在檔案內搜尋指定文字,search_key 是搜尋字串,/path/to/filename 是檔案名稱:
grep search_key /path/to/filename
功能同上,但不分大小寫:
grep -i search_key /path/to/filename
搜尋檔案:在指定目錄中搜尋檔案,以下是在 /var/www/ 目錄下搜尋 upload.php 的檔案:
find /var/www/ -name upload.php
功能同上,但目標不是檔案,而是目錄:
find /var/www/ -name uploads -type d
還有更多有用的功能,以上只列出較常用的用法。
tomcat 可讓 Linux 支援 JSP 的環境,系統必須先安裝 Sun 的 J2SDK 之後,再安裝 tomcat。而 tomcat 已是一個可獨立執行的網頁伺服器,也可以跟 apache 相結合。
繼續閱讀 »
常用參數
-c 打包一個 tar 檔案
-x 解開一個 tar 檔案
-t 檢視 tar 檔案的內容
-z 使用 gzip 壓縮
-v 顯示建立 tar 檔案的過程
-P 使用絕對路徑
-f 指定 tar 檔案的檔案名稱(此參數的後面必須接目標檔名)
常用語法
建立壓縮檔
tar -czvf target.tgz /directory
將 /directory 下的所有檔案及目錄打包成一個名稱為 target.tgz 的壓縮檔
檢視壓縮檔的內容
解開壓縮檔的檔案到現行目錄
複製目錄
tar -cvf - /directory | tar -xvf -
將 /directory 目錄下的檔案及次目錄複製到現行目錄,這樣做的好處是可以保留原來的檔案屬性
我的伺服器的時區設為「Asia/Taipei」(/etc/sysconfig/clock),但我用 ftp 登入伺服器時,裡面所顯示的時間,卻慢了 8 個小時,今天找了一下原因,原來是 ProFTP 的問題。ProFTP 預設使用 GMT 時間,把這個設定關掉即可。
請編輯「/etc/proftpd.conf」,加入
TimesGMT off
再重新啟動 ProFTP 即可。
在 Linux 下執行 nslookup 指令都會出現下列訊息:
Note: nslookup is deprecated and may be removed from future releases.
Consider using the `dig' or `host' programs instead. Run nslookup with
the `-sil[ent]' option to prevent this message from appearing.
告訴你使用 dig 或 host 指令來取代 nslookup。
以下是 dig 及 host 的查詢語法(順便附上 nslookup 的語法):
- dig:
dig @[NameServer] [網域名稱] [Type]
- host:
host -t [Type] [網域名稱] [NameServer]
- nslookup:
nslookup -type=[Type] [網域名稱] [NameServer]
其中 Type 的參數有
- any
- a: 查 IP Address
- mx: 查郵件伺服器
- ns: 查名稱伺服器
- cname: 查別名
- ptr: 由 IP Address 反查網域名稱
- hinfo: 查伺服器的系統資訊
為什麼要將 Samba 昇級成 3.0.13 呢? 唉…還不是為了 Unicode。原本的 2.2.7 版本,我再怎麼設定,都無法顯示 Unicode 字元。所以本來在 Windows 裡顯示得好好的 Unicode 檔名,放到 Samba 裡就破功了! 我想,這個問題應該是很難讓人接受的吧?!
而最後結論就是,昇級成 3.0.13 就搞定了。
繼續閱讀 »
Samba 這個套件的功用,可以讓你把 Linux 伺服器變成 Windows 裡的「網路上的芳鄰」中的一台電腦,提供檔案伺服器的服務,即使在沒有網域管理(Domain)的區域網路環境中,也可以提供比 Windows 網路上的芳鄰更多的權限控管。
本教學只介紹兩種常用的配置方式:
開放式的設定
需要身份驗證的設定
安裝好 Samba 套件之後,就可以開始進行設定了。
安裝 Samba
使用 Apt 安裝 Samba 套件:
啟用 Samba 服務:
爾後如果有修改 Samba 的設定,只要輸入下列指令重新載入即可:
開放式的設定
開放式的意思,就是不用任何身份驗證,就可以存取提供 Samba 服務的伺服器。以下的範例,是設定區域網路裡的任何用戶都可存取伺服器,並分享 [/tmp] 裡的檔案:
編輯 /etc/samba/smb.conf,設定如下:
[global]
#欲加入的群組名稱
workgroup = WORKGROUP
#在「網路上的芳鄰」顯示的電腦名稱,如果不設定,就會以目前的 HostName 去掉網域名稱顯示。
netbios name = FileServer
#伺服器的註解
server string = Samba 檔案伺服器
#設定哪些電腦可以存取伺服器(以空白隔開)
hosts allow = 192.168.1.0/255.255.255.0 127.0.0.1
#顯示繁體中文
client code page = 950
#身份驗證的方式
security = share
#分享 [/tmp]
[tmp]
path = /tmp
comment = 檔案暫存區
public = yes
writable = yes
create mode = 0666
directory mode = 0777
重新啟動 Samba 服務:
需要身份驗證的設定
如果你希望用戶要連到伺服器時,必須先輸入帳號、密碼才可以進入,並且可以存取自己的家目錄及 [/tmp],請依照下列設定:
編輯 /etc/samba/smb.conf,設定如下:
[global]
#欲加入的群組名稱
workgroup = WORKGROUP
#在「網路上的芳鄰」顯示的電腦名稱,如果不設定,就會以目前的 HostName 去掉網域名稱顯示。
netbios name = FileServer
#伺服器的註解
server string = Samba 檔案伺服器
#設定哪些電腦可以存取伺服器(以空白隔開)
hosts allow = 192.168.1.0/255.255.255.0 127.0.0.1
#顯示繁體中文
client code page = 950
#身份驗證的方式
security = user
#將密碼加密傳輸
encrypt passwords = yes
#指定密碼檔位置
smb passwd file = /etc/samba/smbpasswd
#讓用戶可以存取自己的家目錄
[homes]
comment = 個人資料夾
public = no
browseable = no
valid users = %S
writable = yes
create mode = 0600
directory mode = 0700
#分享 [/tmp]
[tmp]
path = /tmp
comment = 檔案暫存區
public = no
writable = yes
create mode = 0666
directory mode = 0777
建立 Samba 的密碼檔,並轉換用戶到這個密碼檔:
cat /etc/passwd | mksmbpasswd.sh > /etc/samba/smbpasswd
chmod 600 /etc/samba/smbpasswd
chown root.root /etc/samba/smbpasswd
重新啟動 Samba 服務:
你必須要再設定用戶的密碼才可以存取:
其它有用的參數
以下介紹其它有用的參數,這些參數必須放在宣告的分享資源的區段下:
public = yes|no
設定針對 Guest 是否「顯示」該分享項目。
browseable = yes|no
設定是否「顯示」分享項目。
valid users = 用戶列表
允許「檢視」該分享項目的用戶,可輸入「用戶名稱」或「@群組名稱」,如有多個項目,請用「,」分隔。
invalid users = 用戶列表
不允許「檢視」該分享項目的用戶,可輸入「用戶名稱」或「@群組名稱」,如有多個項目,請用「,」分隔。
read only = yes|no
是否唯讀。
writable = yes|no
是否可以寫入。
write list = 用戶列表
允許「寫入」該分享項目的用戶,可輸入「用戶名稱」或「@群組名稱」,如有多個項目,請用「,」分隔。
create mode = 權限
建立檔案時預設的權限。
directory mode = 權限
建立目錄時預設的權限。
Samba 的變數
%S: 取代目前的「資源名稱」,所謂的「資源名稱」就是在 [ ] 裡面的內容。
ex: valid users = %S
%U: 代表目前登入的使用者的使用者名稱。
%m: 代表 Client 端的 NetBIOS 名稱。
%g: 代表登入的使用者的群組名稱。
%M: 代表 Client 端的 Internet 主機名稱,就是 HOSTNAME。
%L: 代表 SAMBA 主機的 NetBIOS 名稱。
%h: 代表目前這部 SAMBA 主機的 HOSTNAME。
%H: 代表使用者的家目錄。
%I: 代表 Client 端的 IP。
%T: 代表目前的日期與時間。
新增 Samba 用戶
關於 Samba 上的用戶帳號,有一些規則要說明:
Samba 上的用戶帳號必須是已存在於 Linux 系統的帳號。
Linux 系統與 Samba 用戶的密碼是不同的,它們有各自的密碼檔。
Samba 的密碼檔位於 /etc/samba/smbpasswd。
因此,如果你要新增 Samba 用戶,你就必須先在 Linux 系統增加一個本機用戶,新增本機用戶之後,再輸入下列指令將用戶的帳號及密碼加入至 Samba 的密碼檔:
smbpasswd -a UserName
以後如果只是要變更該用戶的密碼,只要輸入:
smbpasswd UserName
用戶自行變更密碼
原本 Samba 有提供一個 Swat 套件,就是 Samba 的網頁管理介面,不過,我覺得似乎不太夠用(給管理者用還可以)。如果我希望用戶可以自行變更 Linux 系統的密碼,並同步變更 Samba 的密碼,那就要試試 ChangePassword 套件:
從本站下載 ChangePassword 套件至 [/tmp]
cd /tmp
wget http://www.vixual.net/download/source/ChangePassword/changepassword-0.9.tar.gz
tar -xzvf changepassword-0.9.tar.gz
cd changepassword-0.9
./configure --enable-cgidir=/var/www/cgi-bin --enable-smbpasswd=/etc/samba/smbpasswd --disable-squidpasswd
請注意,上面(第 5 行)的 “/var/www/cgi-bin” 請改為你的網站的 cgi-bin 路徑。
然後繼續下列步驟:
這樣就安裝完成了,以後你就可以到 “http://host.example.com/cgi-bin/changepassword.cgi” 同步變更 Linux 系統及 Samba 的密碼。
網頁管理介面
這個套件(Swat)其實不是那麼必要(尤其是有了上面的 ChangePassword 套件之後),但仍然列出安裝步驟給大家參考:
安裝 Samba-Swat 套件:
apt-get install samba-swat
編輯 /etc/xinetd.d/swat,搜尋:
改成:
繼續搜尋:
改成允許連線的位址:
only_from = 192.168.1.0/24
重新啟動 Xinetd:
從瀏覽器輸入連線位址:
http://host.example.com:901/
參考網頁
Samba Documentation
鳥哥的 Linux 私房菜
網管專區
Samba 設定
今天有一位朋友問我「幫人家架設 Linux 伺服器,以及轉移電子信箱該如何收費」相關的問題,我上網去找了一下,從 Google 的討論群組看到這一則討論: 架設 linux 網站,如何收費?,裡面有一段話,讓我深感認同,這段話就是…
奉勸各位,千萬別給公眾如下的印像:
- Linux 很容易 (no! 它比許多人想像的專業多了!)
- Linux 很便宜 (no! 專業服務是一分錢一分活的!)
- Posted by citypig at 04:31 pm (131 views)
- No comments published
- Filed under: linux
粉久之前寫了一支 Log 分析的程式,可以統計、分析前一天系統的 Log,在這一份報表裡面,總是會看到有一些人使用「暴力法」,嘗試以各種帳號、密碼,藉由 SSH 或 FTP 入侵伺服器! 而我只能看著「前一天」的報表,分析他們用過哪些帳號、統計他們嘗試了幾次…實在有點不是滋味。
繼續閱讀 »