顯示具有 Linux 標籤的文章。 顯示所有文章
顯示具有 Linux 標籤的文章。 顯示所有文章

星期三, 12月 19, 2012

yum update 出現error was 14: PYCURL ERROR 6


剛裝完centos6後,使用yum 出現了以下的錯誤訊息

[root@centos6test ~]# yum update
Loaded plugins: fastestmirror, refresh-packagekit
Determining fastest mirrors
Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=6&arch=i386&repo=os
error was 14: PYCURL ERROR 6 - "" Error: Cannot find a valid baseurl for repo: base


這個原因是沒有設name server
所以解決的方式是

到 /etc/resolv.conf
加入dns server就可以囉!

nameserver 8.8.8.8
nameserver 8.8.4.4

星期三, 10月 10, 2012

安裝CentOS6安裝openldap記要



裝完後

cd /etc/yum.repos.d
cp CentOS-Base.repo CentOS-Base.repo.default
wget ftp://ftp.kh.edu.tw/pub/APPL/yum/CentOS6/fix-yum-CentOS6.sh

chmod 755 fix-yum-CentOS6.sh
./fix-yum-CentOS6.sh

一、安裝openldap server
yum -y install openldap openldap-devel openldap-servers  openldap-clients
cp /usr/share/openldap-servers/slapd.conf.obsolete /etc/openldap/slapd.conf


編輯or產生/etc/openldap/ldap.conf
vi /etc/openldap/ldap.conf
URI ldap://127.0.0.1
BASE dc=my-domain,dc=com


二、ldap server log記錄檔
修改/etc/openldap/slapd.conf
增加loglevel 296
修改/etc/rsyslog.conf
加入

local4.*        /var/log/ldap.log
將rsyslog.conf存檔後,
touch /var/log/ldap.log 以建立ldap.log檔
重新啟動syslog server
/etc/rc.d/init.d/rsyslog restart

三、建立管理者密碼
slappasswd -s 管理者密碼
slappasswd -s 預設為SSHA編碼會產生如下的資料

{SSHA}9ZQwqVoS6oZDuHnbs6f63A571lZf+67Hg

這將行複製,打開/etc/openldap/slapd.conf,增加
rootpw {SSHA}9ZQwqVoS6oZDuHnbs6f63A571lZf+67Hg

若要改為別的編碼設定,則下
slappasswd -h {MD5}則是以MD5編碼,其他可參考man slappasswd


四、啟用openldap後,在/var/log/ldap.log顯示
myldap slapd[2061]: bdb_db_open: warning - no DB_CONFIG file found in directory /var/lib/ldap: (2).#012Expect poor performance for suffix "dc=my-domain,dc=com".

則需要到 /usr/share/openldap-servers/將DB_CONFIG.example複製到/var/lib/ldap
cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
再重新啟動slapd,再觀看log檔,可發現這樣訊息不見了!

五、



參考:

  1. http://ha.shsps.kh.edu.tw/web/centos/ldap.html
  2. http://blog.jangmt.com/2012/08/centos-6-ldap-server-ldap.html
  3. http://www.server-world.info/en/note?os=CentOS_6&p=ldap&f=1
  4. http://farwill-linux.blogspot.tw/2012/06/install-openldap-on-centos6.html
  5. http://ha.shsps.kh.edu.tw/98lifetype/index.php?op=Default&postCategoryId=38&blogId=1
  6. http://jamyy.dyndns.org/blog/2012/01/3506.html
  7. http://www.weithenn.org/cgi-bin/wiki.pl?OpenLDAP-LDAP_Server_%E5%9F%BA%E7%A4%8E%E8%A8%AD%E5%AE%9A
  8. http://blog.deadcode.net/2009/05/23/setup-openldap-on-ds207/2/
  9. http://sealmemory.blogspot.tw/2012/01/ubuntu-ldap-server.html
  10. http://iori.tw/ldap%E5%9F%BA%E6%9C%AC%E5%AE%89%E8%A3%9D%E5%8F%8A%E6%95%B4%E5%90%88%E7%99%BB%E5%85%A5%E8%AA%8D%E8%AD%89%E6%A9%9F%E5%88%B6%E7%9A%84%E6%9E%B6%E8%A8%AD-on-centos-6-2_x64/
  11. 新版的ldap2.3修改設定http://phorum.study-area.org/index.php?topic=61059.0
  12. ldap基本安裝及整合登入認證機制的架設http://iori.tw/ldap%E5%9F%BA%E6%9C%AC%E5%AE%89%E8%A3%9D%E5%8F%8A%E6%95%B4%E5%90%88%E7%99%BB%E5%85%A5%E8%AA%8D%E8%AD%89%E6%A9%9F%E5%88%B6%E7%9A%84%E6%9E%B6%E8%A8%AD-on-centos-6-2_x64/
  13. openldap2.3 QuickStart Guidehttp://www.openldap.org/doc/admin23/quickstart.html
  14. http://farwill-linux.blogspot.tw/2012/06/install-openldap-on-centos6.html
  15. http://jamyy.dyndns.org/blog/2012/01/3506.html


星期日, 9月 23, 2012

linux下觀看哪個port被程式佔用

一般而言, 在linux下可以使用netstat -an 可以列出目前所有網路連線狀況,包含ip 和port,而下netstat -l 則可列出有在Listen(監聽)的服務之網路狀態。
也可以使用isof來觀看某個port被哪個程式佔用,例如要看port53,就下isof -i:53
要如何列出系統已開放的port呢?使用nmap

星期五, 9月 21, 2012

在硬碟上一次安裝ezgo、win7、conezilla live及一鍵還原備份功能選單

我的電腦教室系統主要是利用phantosys來管理,phantosys的好處是支援win xp ,win 7 32bits 、win7 64 bits及Linux,因為我們的電腦教室授權是phantosys lite版,只能支援2個主要的root 映像檔,每個root可以分4層分支系統,所以我們的電腦教室一個root映像檔是win7,一個root 映像是ezgo9,phantosys的server用的等級不用太高,像我們是server是用core 2 duo,硬碟也是一般的硬碟,網卡也是內建的Giga,交換器是全giga,線是用cate6,這樣環境下,跑得還變順的。
client可以無硬碟方式執行,或是利用硬碟建cache,不過有建cache的話開機速度會比較快。

雖然這樣的系統好管理,但是很怕哪一天server掛點或交換器出包,那電腦課就準備開天窗了,所以我一直在想硬碟的系統要如何建置,除了方便我派送外也要方便我管理,那clonezilla和DRBL當然是不二人選。

首先,我規畫至少要安裝二個作業系統,一個是linux,一個是windows,另外也要在硬碟安裝clonezilla live,這樣我就不需要用光碟或usb開機載入clonezilla live,最好開機選單也做個即時還原功能,若系統亂了就請學生選還原,就可以將系統還原。

所以,我的硬碟規畫是:
sda1:win7
sda2:win7的儲存空間
sda3:linux的 /
sda5:linux的/home
sda6:linux的swap
sda7:clonezilla live安裝區

另外,也要留至少30GB的未配置區給phantosys作cache用

安裝順序是:
  1. 先用Gparted Live分割磁區,但要注意先不要留未配置區,因為win7安裝時會在未配置區安裝100MB的資料,這對於到時要建立還原映像檔時會很麻煩,所以我會只建二個partition,第一個是給win7
  2. 安裝win7到第一個分割區
  3. 然後,會再用Gparted Live 將第二分割區拿掉,再建立主分割區[sda2,sda3],延伸分割區[sda5,sda6,sda7]
  4. 將sda2格式化為ntfs
  5. 安裝ezgo9,sda3為/,sda5為/home,sda6為swap,sda7格式化ext3並留待安裝clonezilla live
  6. 安裝ezgo9後,系統就會建立一份多重開機選單
  7. 進入ezgo9後:修改root密碼,並設定開機預設項目,參考 http://kuotzurung.blogspot.tw/2012/03/ezgo9clonezilla-live.html
  8. 安裝clonezilla live 到sda7, mount /dev/sda7 /mnt , 下載Clonezilla live的zip檔,將所有檔案解開到/mnt, 將/mnt/下的目錄"live"改成"live-hd"
  9. 修改 /etc/grub.d/40_custom,將clonezilla live加到開機選單
    ================================================menuentry "Clonezilla" {set root=(hd0,7)linux /live-hd/vmlinuz boot=live live-config noswap nolocales edd=on nomodeset
    ocs_live_run=\"ocs-live-general\" ocs_live_extra_param=\"\" ocs_live_keymap=\"\"
    ocs_live_batch=\"no\" ocs_lang=\"\" vga=788 ip=frommedia nosplash 
    live-media-path=/live-hd bootfrom=/dev/sda7 toram=filesystem.squashfsinitrd /live-hd/initrd.img}================================================注意: 這邊grub 2的開機參數,為了要顯示雙引號"在/proc/cmdline 中,雙引號"前面都要加上\。接著重跑update-grub2,不過我在執行上遇到要先執行update-grub2再執行update-grub 
  10. 重開機後,就可以在選單選clonezilla live開機,建立win7的映像檔到/sda2,映像檔我命名為win7-backup,同樣的方式再建立ezgo9的映像檔到/sda2,映像檔我命名為linux-backup
  11. 準備修改  /etc/grub.d/40_custom 並建立win7還原指令選單,我參考了新莊中信國小蔡明貴主任的文件 http://auto.ezschool.tw/ ,及 http://jainan.blogspot.tw/2011/09/196-for-acer-veriton-m490.html 可是因為他們的還原映像檔是和clonezilla live放在同一個磁區,所以在還原上不會有問題,但我的映像檔是放在/sda2,而clonezilla live是放在/sda7,所以原本我的  /etc/grub.d/40_custom是修改成這樣,修改完後執行update-grub2及update-grub------------------------------------------------------------------------------------------------------
    #!/bin/sh
    exec tail -n +3 $0
    # This file provides an easy way to add custom menu entries.  Simply type the
    # menu entries you want to add after this comment.  Be careful not to change
    # the 'exec tail' line above.
    menuentry "Clonezilla" {
    set root=(hd0,7)
    linux /live-hd/vmlinuz boot=live live-config noswap nolocales edd=on nomodeset ocs_live_run=\"ocs-live-general\" ocs_live_extra_param=\"\" ocs_live_keymap=\"\" ocs_live_batch=\"no\" ocs_lang=\"\" vga=788 ip=frommedia nosplash live-media-path=/live-hd bootfrom=/dev/sda7 toram=filesystem.squashfs
    initrd /live-hd/initrd.img
    }
    menuentry "Recovery Win7" {
    set root=(hd0,7)
    linux /live-hd/vmlinuz boot=live live-config noswap nolocales edd=on nomodeset  ocs_live_run=\"ocs-live-restore\" ocs_live_extra_param=\"-g auto -e1 auto -e2 -c -r -j2 -k -p true restoreparts win7-backup sda1\" ocs_live_keymap=\"NONE\" ocs_live_batch=\"yes\" ocs_lang=\"\" vga=788 ip=frommedia nolocales live-media-path=/live-hd bootfrom=/dev/sda7
    initrd /live-hd/initrd.img
    }
    -------------------------------------------------------------------------------------------------
  12. 但是開機後,選 Recovery Win7 執行後會出現 The directory /home/partimag/win7-backup for the inputed name does NOT exist!
  13. 後來找到clonezilla live的開機參數說明http://clonezilla.nchc.org.tw/clonezilla-live/doc/fine-print.php?path=./99_Misc/00_live-initramfs-manual.doc提到ocs_prerun, ocs_prerun1, ocs_prerun2... 等參數讓你可以在Clonezilla主程式被執行前,執行相關指令,例如ocs_prerun="/live/image/myscript.sh"
  14. 因此加入了ocs_prerun=\"sudo mount /dev/sda2 /live/image/home/partimag\" 這行,所以再重新修改了/etc/grub.d/40_custom
    ------------------------------------------------------------------------------------------------------
    #!/bin/sh
    exec tail -n +3 $0
    # This file provides an easy way to add custom menu entries.  Simply type the
    # menu entries you want to add after this comment.  Be careful not to change
    # the 'exec tail' line above.
    menuentry "Clonezilla" {
    set root=(hd0,7)
    linux /live-hd/vmlinuz boot=live live-config noswap nolocales edd=on nomodeset ocs_live_run=\"ocs-live-general\" ocs_live_extra_param=\"\" ocs_live_keymap=\"\" ocs_live_batch=\"no\" ocs_lang=\"\" vga=788 ip=frommedia nosplash live-media-path=/live-hd bootfrom=/dev/sda7 toram=filesystem.squashfs
    initrd /live-hd/initrd.img
    }
    menuentry "Recovery Win7" {
    set root=(hd0,7)
    linux /live-hd/vmlinuz boot=live live-config noswap nolocales edd=on nomodeset   ocs_prerun=\"sudo mount /dev/sda2 /live/image/home/partimag\" ocs_live_run=\"ocs-live-restore\" ocs_live_extra_param=\"-g auto -e1 auto -e2 -c -r -j2 -k -p true restoreparts win7-backup sda1\" ocs_live_keymap=\"NONE\" ocs_live_batch=\"yes\" ocs_lang=\"\" vga=788 ip=frommedia nolocales live-media-path=/live-hd bootfrom=/dev/sda7
    initrd /live-hd/initrd.img
    }
    -------------------------------------------------------------------------------------------------
    再重新執行
    update-grub2及update-grub
  15. 終於…可以直接在選單上執行還原功能了


  16. 之後再找時間安裝winroll,再用DRBL派送系統,我理想中的電腦教室系統就可以大功告成了!
為什麼我要這麼麻煩做這個還原功能呢,直接用DRBL派就好了呀,其實這是為了配合phantosys的cache,因為只要重派送,動到未配置區,phantosys就需要在學生機一台一台重建cache,那可真是煩人的事呀,而且之後要還原,就可以請學生直接按選單上的還原,再教他們按y就可以囉!
--------------------------------------------------------------------------------------------------

加入一鍵備份功能:
修改/etc/grub.d/40_custom
加入

menuentry "Backup Win7" {
set root=(hd0,7)
linux /live-hd/vmlinuz boot=live live-config noswap nolocales edd=on nomodeset   ocs_prerun=\"sudo mount /dev/sda2 /live/image/home/partimag\" ocs_live_run=\"ocs-live-restore\" ocs_live_extra_param=\"-q2 -c -j2 -z1p -i 2000 -p true saveparts win7-backup sda1\" ocs_live_keymap=\"NONE\" ocs_live_batch=\"yes\" ocs_lang=\"\" vga=788 ip=frommedia nolocales live-media-path=/live-hd bootfrom=/dev/sda7
initrd /live-hd/initrd.img
}
主要就是修改ocs_live_extra_param這個參數,變成
ocs_live_extra_param=\"-q2 -c -j2 -z1p -i 2000 -p true saveparts win7-backup sda1\"

意思就是將sda1分割區存成名稱為win7-backup的映像檔

------------------------------------------------------------------------------------------------------
安裝winroll
若啟用sshd服務,服務所用的帳號為cyg_server,密碼存放在c:\cygwin\drbl_winroll-config\SSHD_SERVER_PW.txt


星期六, 3月 31, 2012

ezgo9及clonezilla live安裝記要

修改ezgo9 root密碼
$sudo passwd root

修改開機順序
$sudo vi /etc/default/grub
GRUB_DEFAULT=0
將0改為預設的開機選單選項的順序,例如第一個就設0,以此類推
$sudo update-grub2

ezgo9安裝clonezilla live 到硬碟
先割一塊空間給clonezilla live
例如sda7 格式為ext2



  1. 用硬碟中的作業系統來開機,例如用GNU/Linux來開機。
  2. 將/dev/sda7掛載成/mnt,你可以用這個指令做到: mount /dev/sda7 /mnt
  3. 下載Clonezilla live的zip檔,將所有檔案解開到/mnt,確認檔案是放在目錄/mnt/下,並且維持原來的4.目錄架構。例如COPYING是在/mnt/目錄下,不在/mnt/下的任何一個子目錄中。你可以用這個指令做到: "unzip clonezilla-live-*.zip -d /mnt" (將clonezilla-live-*.zip取代成你下載的檔案名稱).
  4. 將/mnt/下的目錄"live"改成其他目錄名稱,例如"live-hd"。你可以用這個指令做到: "cd /mnt; mv live live-hd"
  5. ezgo9的開機管理程式是grub版本2.x (grub-pc),所以修改 /etc/grub.d/40_custom,加上類似這樣的部份:
    ================================================
    menuentry "Clonezilla" {
    set root=(hd0,7)
    linux /live-hd/vmlinuz boot=live live-config noswap nolocales edd=on nomodeset ocs_live_run=\"ocs-live-general\" ocs_live_extra_param=\"\" ocs_live_keymap=\"\" ocs_live_batch=\"no\" ocs_lang=\"\" vga=788 ip=frommedia nosplash live-media-path=/live-hd bootfrom=/dev/sda7 toram=filesystem.squashfs
    initrd /live-hd/initrd.img
    }
    ================================================
    注意: 這邊grub 2的開機參數,為了要顯示雙引號"在/proc/cmdline 中,雙引號"前面都要加上\。
    接著重跑update-grub2。
    不過我在執行上遇到要先執行update-grub2再執行update-grub





我的 /etc/grub.d/40_custom設定
----------------------------------------------------------------------------------------------------------
#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.
menuentry "Clonezilla" {
set root=(hd0,7)
linux /live-hd/vmlinuz boot=live live-config noswap nolocales edd=on nomodeset ocs_live_run=\"ocs-live-general\" ocs_live_extra_param=\"\" ocs_live_keymap=\"\" ocs_live_batch=\"no\" ocs_lang=\"\" vga=788 ip=frommedia nosplash live-media-path=/live-hd bootfrom=/dev/sda7 toram=filesystem.squashfs
initrd /live-hd/initrd.img
}
menuentry "Recovery Win7" {
set root=(hd0,7)
linux /live-hd/vmlinuz boot=live live-config noswap nolocales edd=on nomodeset ocs_prerun=\"sudo mount /dev/sda2 /live/image/home/partimag\"  ocs_live_run=\"ocs-live-restore\" ocs_live_extra_param=\"-g auto -e1 auto -e2 -c -r -j2 -k -p true restoreparts win7-backup sda1\" ocs_live_keymap=\"NONE\" ocs_live_batch=\"yes\" ocs_lang=\"\" vga=788 ip=frommedia nolocales live-media-path=/live-hd bootfrom=/dev/sda7
initrd /live-hd/initrd.img
}
-------------------------------------------------------------------------------------------------

星期日, 9月 27, 2009

重新安裝新的學生作業伺服器

因為學生作業伺服器已用了3年多了,而且硬碟空間有點不足,最近又得機瘟,因為就想說重新安裝,順便記錄一下心得

新的samba預設 帳號管理並是以前熟悉的smbpasswd,而是預設為passdb backend = tdbsam,修改就必須使用pdbedit這個指令來新增和修改,若要用舊的方式以smbpasswd管理,則要改為

passdb backend = smbpasswd
encrypt passwords = yes
smb passwd file = /etc/samba/smbpasswd

其他的的smb.conf的設定大概就照舊的。

另外也用到設定特殊權限的資料夾,如drwxrwxrwt 則相關知識如下:

s 或 S(SUID,Set UID):
可執行的文件搭配這個權限,便能得到特權,任意存取該文件的所有者能使用的全部系統資源。請注意具備 SUID 權限的文件,黑客經常利用這種權限,以 SUID 配上 root 帳號擁有者,無聲無息的在系統中開啟後門,供日後進出使用。

s 或 S(SGID,Set GID):
設置在文件上面,其效果與 SUID 相同,只不過將文件所有者換成群組,該文件就可以任意存取整個群組所能使用的系統資源。

t 或 T(Sticky):
/tmp 和   /var/tmp 目錄供所有用戶暫時存取檔案,亦即每個用戶皆擁有完整的權限進入該目錄,瀏覽、刪除和移動檔案。

因為 SUID、SGID、Sticky 佔用 x 的位置來表示,所以在表示上會有大小寫之分。同時加入開啟執行權限和 SUID、SGID、Sticky,則權限表示符號是小寫的:
[code]-rwsr-sr-t 1 root root 4096 6月 23 08:17 conf[/code]
如果關閉執行權限,則權限表示符號是大寫的:
[code]-rwSr-Sr-T 1 root root 4096 6月 23 08:17 conf[/code]

如果要加上特殊權限,就必需使用 4 位數字才能表示。特殊權限的對應數值為:
[code]s 或 S(SUID):對應數值 4。
s 或 S(SGID):對應數值 2。
t 或 T:對應數值 1。

用同樣的方法修改文件權限就可以了
例如:
[root@localhost ~]# chmod 7600 conkyrc.sample
[root@localhost ~]# ls -l
總用量 368
-rwS--S--T 1 root root 12172 8月 15 23:18 conkyrc.sample
drwxr-xr-x 2 root root 48 9月 4 16:32 Desktop
-r--r--r-- 1 root root 331844 10月 22 21:08 libfreetype.so.6
drwxr-xr-x 2 root root 48 8月 12 22:25 MyMusic
-rwxr-xr-x 1 root root 9776 11月 5 08:08 net.eth0
-rwxr-xr-x 1 root root 9776 11月 5 08:08 net.eth1[/code]

星期一, 8月 24, 2009

Linux 主機改名稱和IP後 Apache無法啟動

如題,目前學校主機舊有的是163.23.80.180 www.cses.chc.edu.tw

新的主機名稱及ip是w3.cses.chc.edu.tw 163.23.80.178

但是現在178這台要取代180,也就180這台要除役了,但是178這台要將之改為180,名稱也要改為www.cses.chc.edu.tw,則除了DNS的正反解要重設外,178這台主機要改那些資料呢?

  1. /etc/host

  2. /etc/sysconfig/network

  3. /etc/sysconfig/network-script/ifcfg-eth0


當初改完相關的資料後,發現啟動APACHE時,一直無法啟動,看log檔的error_log,發現有一行unable to fine ipv4 address of "w3.cses.chc.edu.tw",後來才發現/etc/sysconfig/network這個檔沒有改到

星期日, 8月 23, 2009

mysql如何開放遠端連線

情況:

主機A 有mysql資料庫 ,資料庫名稱為:第一資料庫,主機ip為192.168.1.1
主機B 有php程式,想要連到主機A的mysql server中的第一資料庫抓資料,IP為10.1.1.1

主機A的設定

1.編輯/etc/my.cnf
將skip-networking註解掉
(註:MandrivaLinux2009應該只要修改這一行,不同的發行套件,修改的地方可能不同)

2.進入mysql server
#mysql mysql -u root -p
mysql >GRANT ALL PRIVILEGES ON 第一資料庫.* TO 'john'@'10.1.1.%' IDENTIFIED BY 'john的密碼' WITH GRANT OPTION;
mysql>FLUSH PRIVILEGES;

註:上面'使用者名稱'@'10.1.1.%' 是指10.1.1.xxx均可以連線至主機A的mysql,若只想要指定某一個IP如10.1.1.2連線的話,就改為GRANT ALL PRIVILEGES ON 第一資料庫.* TO 'john'@'10.1.1.2' IDENTIFIED BY 'john的密碼' WITH GRANT OPTION;
上面的意思就是,准許10.1.1.xxx的資料庫使用者john,可以連線到192.168.1.1的第一資料庫拿資料

主機B:
php的mysql呼叫方式

<?php
$mysql_host="192.168.1.1:3306";
$mysql_user="john";//這個要和主機A的mysql設定一致
$mysql_pass="john的密碼"//這個要和主機A的mysql設定一致
$mysql_DB="第一資料庫";
$link=mysql_connect($mysql_host,$mysql_user,$mysql_pass);

?>

這樣主機B的PHP想要連接主機A的MYSQL第一資料庫,就可以連線了!