Wednesday, June 30, 2010

哪些動作需要重啟sendmail

給未來的裕翔

make access.db之後

不需要重新啟動sendmail

新增/ettc/mail/relay-domains

需要重新啟動

修改/etc/local-host-names

需要重新啟動

Tuesday, June 29, 2010

gmail收到千封類似信件

給未來的裕翔

由於在/etc/hosts.allow裡面使用spawn

只要有人嘗試登入就寄警告信到我的gmail

也許是剛把本機MTA打開

導致一下寄一堆信到我的gmail裡面

4000封阿!!!

我不介意慢慢刪

但實在是太蠢了~

處理方式:

點選某一封目標信件

More actions -> Filter messages like this

就是這樣~

Thursday, June 24, 2010

vsftpd不能ls的暫時解決方案

給未來的裕翔

不知為啥

fedora 13的vsftpd不能work, 可以anonymous登入卻不能ls

以前可以的說~

後來發現, 原來以前iptables的INPUT policy是ACCEPT阿

哈哈哈哈哈~

暫時解決方案是sudo modprobe ip_conntrack_ftp

大爺要來去睡了~

後記: 就算POLICY都ACCEPT也不行耶

以前怎成功的^^" ?

如何使用chrome設proxy

給現在的軒哥^^

雖然這個我覺得很簡單

不過我的已知如果無法改變你的無知

那我這就是無恥的已知!!!

裕翔在實驗室已深受其害

因此對無恥的已知格外避免^^

Chrome -> Options -> Under the Hood -> Change proxy settings

-> Manual proxy configuration ->

HTTP proxy和對應的Port輸入你知道的proxy server:port

那為什麼我們需要proxy

代理伺服器阿^^

X的! 大家這樣講你就跟著這樣講喔~

好端端的直接連不行?

有些情況就是不行

比如說, 學網連大陸實在有夠慢

聽說有擋很兇

萬一校外有熱心的朋友架proxy server

我透過它連大陸網站, 學網照理說應該就不會擋啦^^

當然, 我沒真的試過, 因為找不到那位校外熱心的朋友

硬要舉個實例就是, 哪天如果我們離開學校

paper豈能說下就下, 認IP的耶!

這時如果校內有個熱心的朋友在實驗室架proxy server

我透過它去下載paper, IP就是被認可的校內阿!

報告完畢~


產生xorg.conf

給未來的裕翔

fedora 13裡預設似乎不存在xorg.conf

sudo Xorg -configure :1

這樣是在偵測硬體設備

不知道是不是因為我是以bob身份sudo

產生一個/home/bob/xorg.conf.new

mv xorg.conf.new /etc/X11/xorg.conf

要改什麼就可以對它改啦~

後記:

修正一下, 產生的檔案是/root/xorg.conf.new

Wednesday, June 23, 2010

yum的groupinstall再簡化

給未來的裕翔

一般都以sudo yum -y install xxx

xxx是package名稱

偶爾會需要

sudo yum -y groupinstall yyy

一次裝一堆相關的東東

簡化版本

sudo yum -y install @yyy

酷吧^^

Tuesday, June 22, 2010

如何快速知道自己使用的bash的pid

給未來的裕翔

ps?

top?

錯~~~

答案是

echo $$

ps的固定用法

給未來的裕翔

ps的用法為了符合不同版本

導致有點給它雜亂

根據鳥哥建議

背幾個常用的就好

ps -l: 查閱自己bash上的程序

ps -lA: 所有程序

ps aux: 所有程序, 但format不一樣

ps axjf: 還有樹狀圖阿, 帥呆了!

啟動JDownloader

給未來的裕翔

如果重新開機後

JDownloader沒有自動啟動的話

java -Xmx512m -jar JDownloader.jar -rfu  in /home/xxxxx/.jd

檢查cpu是否支援kvm

給未來的裕翔

如果要測試自己電腦cpu是否支援kvm

如果是intel的cpu

grep vmx /proc/cpuinfo

如果是amd的cpu

grep svm /proc/cpuinfo

如果cpu有支援, 記得要確認BIOS有開啟虛擬化支援

據說通常是預設不支援

然後, 我似乎不支援......

at的時間指定

給未來的裕翔

如果使用at時只有指定日期

沒講明幾點幾分

那就會變成當下設定at的時間

Monday, June 21, 2010

at指令的抉擇

給未來的裕翔

at -l相當於atq

at -d相當於atrm

基於追求極致的考量

讓我統一使用atq和atrm吧!!!!!!

把訊息印到/dev/tty#

給未來的裕翔

當以at進行類似echo的動作時

會失敗, 因為at沒有所謂的標準輸入輸出

不過可以改用echo "test-string" > /dev/tty#

不過有很多情況會失敗:

像是, 如果我(normal-user)在桌面那個tty, ex: tty1

echo hello > /dev/tty1      桌面傳給桌面會失敗

登入別的tty然後, echo hello > /dev/tty1      也會失敗, 應該還是因為桌面的關係

如果我在tty2以normal user登入

在tty1以同一位normal user執行echo hello > /dev/tty2

可以成功

如果在tty2以root登入

在tty1以normal user執行echo hello > /dev/tty2

會失敗

算了, 不想講了, 講結論: 好像就是~

從哪傳給桌面就是都會失敗

root傳給root和user可以成功

user只能傳給自己才會成功

不同user之間沒試過

Sunday, June 20, 2010

jdk安裝

給未來的裕翔

去官網下載jdk, 注意, 不是jre

下載xxx.rpm.bin

然後sudo sh xxx.rpm.bin

就裝好啦 哈哈哈

ssh server改port也沒用?

給未來的裕翔

那天看人家部落格

寫說可以在/etc/ssh/sshd_config改變連接port

結果改成別的port之後

拿別台機器當ssh client

不指明新port的情況下連到ssh server

可以成功耶!!!

經我多番測試

似乎被自動以新port連結

這樣的話, 改port有什麼用阿......

後記:

喔!!! 不!!! 是我笨了!!!

是我自己設定過~/.ssh/config的!!!

改port~? 有效的!!!

Thursday, June 17, 2010

在x86-64上面安裝flash-plugin看youtube

給未來的裕翔
su
yum erase flash-plugin nspluginwrapper*
cd /etc/yum.repos.d/
curl -O http://www.dfm.uninsubria.it/compiz/fusion-testing/flashplayer.x86_64/flash.repo
rpm --import http://www.dfm.uninsubria.it/compiz/fusion-testing/flashplayer.x86_64/RPM-GPG-KEY-leigh123linux
yum install flash-plugin

把套件降級

給未來的裕翔

如果某套件太新版導致其它相依性套件出錯

可以把它降級

ex:
yum downgrade nss-softokn-freebl

gnome-panel有openoffice殘影?

給未來的裕翔

本來看人家的openoffice教學再練習

沒想到居然有殘影留在gnome-panel上

先init 3再init 5沒用!

重開機也沒用!

移除gnome-panel再安裝也沒用!

我真沒用!

突發奇想, 去看同主機別的帳號會不會這樣

居然沒有!

那很明顯就是我家目錄裡面的設定害的!

有救啦^^

一個個去找後

目前確定把/home/xxxxx/.gconf/apps/panel刪掉就可以了

並沒仔細去研究是裡面哪個檔案造成

爽啦!

改變Socks host的port

給未來的裕翔

之前因為宿舍網路沒實驗室快

所以建一條ssh: local的80連到實驗室的22

sudo ssh -D 80 xxxxx@yyy.yyy.yyy.yyy -p 22

然後再設定瀏覽器的Socks host為自己

127.0.0.1:80

這樣會有個問題, 我local的web server勢必要關掉

那我的筆記部落格就不能用啦

雖然之前都以gmail客難, 先把筆記寫在信裡

再從信裡貼上

可是呢, 就在剛剛, 出了點問題導致瀏覽器關掉

gmail幫我自動存的草稿部份居然只有最最前面!

那我後面的筆記都白打啦~

忍無可忍, 決定嘗試更改local的Socks host的port

ex: 瀏覽器的Socks host設為127.0.0.1:aaaa

於是嘗試sudo ssh -D aaaa xxxxx@yyy.yyy.yyy -p 22

居然就成功了!!!

之前的被我學習的部落格

可否一開始別以port 80為範例呢......

我還以為因為跟網路相關所以必須要設80呢!

終於, 不死的筆記部落格重現!!! ^^

超雜亂且重要筆記2

給未來的裕翔

如果要建置一個不存在的網路印表機

雖然可以用網頁來做

個人偏好使用system-config-printer^^

在protocol那裡記得要選ipp

建置好後, 如果printer名稱是test-printer

lp -d test-printer printed-file

(-d是指destination)

就可以了

因為還沒印出來, 也印不出來

所以可以用lpq -a來看該job是否存在

或是lpstat -t看訊息

或是lpstat -o看queue, 不知是否和lpq -a一樣

如果要把NIS client搭配automount

真是太丟臉了, 一開始不會, 現在也不熟^^"

system-config-authentication

輸入domain name和NIS Server IP(永久的)

接著進行automount設定

如果知道NFS(非NIS)的IP是xxx.xxx.xxx.xxx

可以showmount -e xxx.xxx.xxx.xxx看它分享哪個資料夾

假設是/home/guests/nisuser好了

/etc/auto.master:

/home/guests      /etc/whatever

/etc/whatever:

nisuser      192.168.0.254:/home/guests/nisuser

如果想要general一點

*      192.168.0.254:/home/guests/&

要注意的是, guests和nisuser資料夾都不用事先建立

service autofs start

如果要檔ssh的話

-A INPUT -s xxx.xxx.xxx.0/24 -p tcp --dport 22 -j DROP

如果想要建一個ftp

normal user上下傳檔案

anonymous下載檔案

裝好vsftpd後, setsebool -P ftp_home_dir on

就可以哩~, 存取控管也靠iptables吧

如果想見一台mail server(暫定sendmail)

要記得裝sendmail-cf, 其它應該都預設有了

進/etc/mail/sendmail.mc

DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl

把上面那行註解掉就可以收信了

(收發信別使用IP, 不然還是會失敗)

而發信則是預設就可以

然後m4 sendmail.mc > sendmail.cf

要幫人家relay的話

修改/etc/mail/access, 改完後make access.db

可以拿別台測試, 別台連到我這台

寄給他自己, 成功就表示relay成功

要alias的話

修改/etc/aliases, 改完後newaliases

如果現在要建一個MRA

安裝dovecot後修改/etc/dovecot.conf

把protocols = imap imaps pop3 pop3s反註解

那client就可以mutt -f pop://john@IP

那如果要自己建立憑證

make -C /etc/pki/tls/certs dovecot.pem

然後修改/etc/dovecot.conf

#ssl_cert_file = /etc/pki/dovecot/certs/dovecot.pem
#ssl_key_file = /etc/pki/dovecot/private/dovecot.pem

指向剛建立的那個dovecot.pem即可

如果要檔別人存取我的pop3, pop3s, imap, imaps

不是擋25喔~

那是MTA, 而dovecot是MRA(或MAA)

所以要去/etc/services一個個去找它們的port出來加以擋掉

如果要建一台web proxy server

並且使用port 8080

只允許某個網段使用的話

請參考我的proxy雜亂筆記^^

如果要建virtual host

也請參考我筆記^^

如果要建samba, 我現在來不及打

不過注意一下smb.conf裡面的allow和deny

然後smbpasswd的用法也記一下

writeable, write list, read list也注意一下

還有那個samba_share_t也要注意

samba路徑掛載也要注意一下, 它是//開頭的

nfs建立, 相對簡單, 不過我現在也來不及打, 喵的

建立一塊partition, 開機自動掛載, 簡單啦~

接著是建立RAID1

最難的的地方是, RAID1是備份,這個要知道^^"

fdisk兩塊等大的partition出來

mdadm -C /dev/md0 -a yes -l 1 -n 2 /dev/hda10 /dev/hda11

mkfs -j /dev/md0

就可以mount啦

注意: 如果是RAID0的話, 就是切兩個一半大即可

要為某個使用者進行排程的話

crontab -u xxx -e

然後就開始進行編輯, 時間位置要記清楚

如果要建quota的話

先修改/etc/fstab

在指定的partition上的 defaults後加上usrquota和或grpquota

然後mount -o remount target-partition

接著quotacheck -a

edquota -u target-user

quotaon -auv

搞定, 可先變成該使用者後, 以dd測試

關於LVM, 要會lvm的increase和reduce

如果要開啟ip forwared(對單張網卡來說沒什麼意義)

修改/etc/sysctl.conf

如果改完要馬上生效的話, sysctl -p

對一個644的root的檔案

讓a可讀寫, 讓b都不行

setfacl -m u:a:rw-

setfacl -m u:b:---

Wednesday, June 16, 2010

impress母片

給未來的裕翔

如果想要修改投影片一勞永逸的話

要修改母片

選上側的View -> Master -> Slide Master就可以了

點下去後會多一個視窗, Master View

如果要離開就點該視窗的Close Master View按鈕

Tuesday, June 15, 2010

超雜亂且重要小筆記

給未來的裕翔

如果要自己建repo的話

要編這幾個設定

[repo-name]

baseurl=ftp://host/pub(如果對方把rpm檔放在host:/var/ftp/pub裡面, /var/ftp別寫在baseurl裡面)

enabled=1(這也許可以省略)

gpgcheck=0(因為我不知道gpg key在哪)

這樣即可使用yum

如果root密碼忘記, 記得要進single user mode修改

如果/etc/fstab編錯導致無法開機

也是進single user mode

不過此時是read only

所以要重新掛載/

mount -o remount /

然後把/etc/fstab修正即可

如果想要dig/host某台主機, 因為它們是直接參考/etc/resolv.conf

所以要確定/etc/resolv.conf是對的

如果要ping某台主機

請先確定網路有通, 如果沒通請確認ifcfg-eth0有無正確設定

/etc/sysconfig/network-scripts/ifcfg-eth0

如果要分享出某個資料夾, 那就是使用nfs

portmap記得要service start和chkconfig on

nfs也是, 前提是有裝nfs-utils套件

在/etc/exports設定要分享出去的資料夾

網段寫法千萬別忘記

比single user mode情況更糟的是, rescue mode

如果/etc/grub/grub.conf編錯就會進入

幾個的地方記一下

/boot底下放initrd和vmlinuz還有grub資料夾

grub資料夾裡面有grub.conf檔案

重要內容如下

#boot=/dev/hda
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title Red Hat Enterprise Linux Server (2.6.18-164.el5)
root (hd0,0)
kernel /vmlinuz-2.6.18-164.el5 ro root=LABEL=/ rhgb quiet
initrd /initrd-2.6.18-164.el5.img

其中, root=LAVEL=/可以寫成root=/dev/hda1, 也就是boot所在分割

關於帳號和群組建置

useradd, passwd, groupadd

要讓user加速第二群組

可以usermod -aG group-name user-name

-a可以不要, 反正本來也沒其他第二群組

主要群組不會因為沒有加-a而被抹掉的

因為只有-g才會改到主要群組

另一個加入第二群組的方法是直接去改/etc/group

如果想讓一個使用者無法登入, 但是可以收信

修改/etc/passwd的login shell欄位

/sbin/nologin: 不能telnet, 不能ssh, 可以ftp, 可以收信

/bin/false: 不能telnet, 不能ssh, 不能ftp, 可以收信

依情況選擇吧~

如果要對資料夾簡單設定權限, chmod即可, 適時搭配chown

要設定ugid, sgid, sticky bit, 也是chmod囉~

關於kernel的套件, 看是要yum install(避免蓋掉舊的)

或是rpm -ivh都可以, 千萬不要rpm -Fvh或是-Uvh

不然原本舊的kernel會被砍掉

裝好之後, /boot/grub/grub.conf會被自動設定新裝的為預設啟動

不需特別去設定

Thursday, June 10, 2010

mail server雜亂小筆記2

給未來的裕翔

postfix自己有自己的控管

/etc/postfix/access

裡面的網段是192.168.0不同於samba的192.168.0.

OK表示接受收信, 但不RELAY

RELAY表示接受收信, 也幫RELAY

修改後要以postmap /etc/postfix/access使其生效

再來是/etc/aliases

我可以設定人頭戶, 寄給他們的統統寄給我指定的存在帳戶

修改後要newaliases來生效(好像postaliases也可以?)

另外

sendmail和postfix的log都是/var/log/mail

要使用sendmail的話, 除了senmail套件

sendmail-cf也要記得安裝

通常我們都是修改sendmail.mc

然後m4 sendmail.mc > sendmail.cf

在sendmail.mc裡面, 註解是dnl加一個空白鍵, #只是對齊好看罷了

另外, 在/etc/mail/local-host-named寫的是幫誰收信

如果寫AAA,BBB,CCC

那就是寄給AAA,BBB,CCC的我都收

編完立即生效

/etc/mail/access跟/etc/postfix/access很像, 也是存取控管

不過/etc/mail/access裡面會需要tag: connect, from, to

connect就是包含from, to

編完後, 要make access.db

關於那個RELAY, 什麼叫RELAY

如果我在host-252

我用telnet連到host-250

在裡面寄信, rcpt to: xxx@host-3

那這就需要RELAY

每個使用者自己的~/.forward就像是/etc/aliases一樣

簡單比較一下

postfix的postqueue -p就是sendmail的mailq

postfix的postqueue -f就是sendmail -q

至於為什麼每次寄失敗就要等一小時

那是設定在/etc/sysconfig/sendmail

最後最後, 當我們以mail看信時

r是reply

z+是下一頁, z-是上一頁

d#是刪信件

d#1-#2是連刪

q刪檔有效的離開

x是刪檔無效的離開

mail server雜亂小筆記

給未來的裕翔

預設sendmail只收localhost的信

telnet localhost 25

注意, 要把sendmail加入/etc/hosts.allow

否則在mail from:xxx@yyy就會access denied了

以telnet進入後(能進入就表示sendmail或postfix有開)

mail from:bob@yahoo.com.tw

(上面寄件者是假冒用, 可以隨便打, 別被目標mail server擋下即可)

(那個冒號前後要不要空格皆可)

rcpt to:yushiangfu@gmail.com

(上面收件者別亂打, 不然怎知有沒成功)

data

subject:test-test-test

test-content

.

quit

寄信完成!

預設是sendmail

如果要改postfix, 安裝好後

alternatives --config mta, 選postfix

chkconfig sendmail off

service sendmail stop

在alternatives裡面

*是預設, +是目前使用

postfix會用到的port不只一個

要擋的話, 針對port 25/tcp即可

/etc/mail裡面都是sendmail的東西

/etc/postfix裡面都是postfix的東西

因為/etc/mail/sendmail.cf語法太難懂

所以有了postfix, 設定檔在

/etc/postfix/main.cf

在main.cf裡面, 有幾個設定要設定

myhostname = stationX.example.com

mydomain = example.com

myorigin = $myhostname

對方收我信就是bob@stationX.example.com

如果是myorigin = $mydomain

對方收我信就是bob@example.com

如此一來, 對方回信不會直接到我電腦

MTA必須加設/etc/aliases讓收到的信自動轉給我

mydestination, 替誰收信, 預設即可

inet_interfaces = all (關鍵步驟)

原本的inet_interfaces = localhost

所以我必須也跟著telnet localhost 25

就算telnet自己public IP也不行, 現在改成all就可以了

mynetwork_style = host

上面設定是, 一堆把我(MTA)設定為smtp server的人

我只幫誰寄(relay)

還有一個設定預設不存在

smtp_hostlookup = native,dns

先看/etc/hosts再看DNS

只有postfix需要這樣設定, 因為sendmail預設會看/etc/hosts

最後最後

head_check和body_check可作可不作,過濾用

現在不作也可以後面的procmail補作

如果對方的MTA沒開導致我的信寄不出去

可以用postqueue -p查看寄不出去的信

萬一對方MTA打開了, 剛失敗的信預設一小時候才會再寄

想要馬上寄出的話, postqueue -f

Wednesday, June 9, 2010

備份光碟

給未來的裕翔

如果想要備份某個關於聲音的光碟

sudo mkdir /media/cdrom

sudo mount -t iso9660 /dev/cdrom /media/cdrom

mkisofs -v -o /xxx.img /media/cdrom

把這樣得到的xxx.img燒錄

完全只是檔案罷了!

為了測試到底可否備份光碟

先暫時放棄文字指令嘗試^^"

使用每次燒錄DVD都會當掉的Brasero!!!

可以耶!

那完全沒什麼筆記好寫了~哈哈

ssh佔用httpd的port

給未來的裕翔

當在host-a時, 為了加速網頁瀏覽

sudo ssh -D 80 xxx@host-b -p 22

然後設定瀏覽器的SOCKS

為此, 必須把httpd服務先關掉, 因為port 80衝到

之後如果不用, 就算terminal關掉, 瀏覽器關掉

ssh的process還是在的

此時無論怎麼sudo service httpd start都不會成功

必須先把ssh那個process關掉

Tuesday, June 8, 2010

iptables在redhat預設不存在

給未來的裕翔

iptables在redhat預設不存在

如果想要把現有的iptables寫出

iptables-save > /etc/sysconfig/iptables

不過老師建議先統統flush調

再一個個建

老師說, 預設的RULE應該是內建在kernel裡面

如果/etc/sysconfig/iptables存在就不會讀kernel預設RULE

老師也說考試建議預設都ACCEPT

實務上建議預設DROP

samba雜亂小筆記

給未來的裕翔

首先安裝三個套件

samba, samba-common, samba-client

注意以下四個port

137/udp, 138/udp, 139/tcp, 445/tcp

雖然daemon有nmbd和smbd兩個

用service smb start就會自動連nmbd一起帶起來

若在client端想看server端開放哪些資料夾

smbclient -L 192.168.0.254

輸入密碼的地方直接按Enter就可以看了

另外要注意的是

samba有自己的密碼, 跟/etc/shadow無關

不過帳號必須已經存在/etc/passwd裡面

那samba建立的密碼會存在/etc/samba/passdb.tdb

因為不是一般文字檔

如果想看passdb.tdb內容的話

tdbdump /etc/samba/passdb.tdb

想要使用samba服務有兩種方式

一個是像ftp一樣的方式

smbclient //server/share-name -U user-name

然後輸入密碼

不然就是用mount(個人偏向這個)

mount -t cifs -o username=user-name //192.168.0.254/homes /mount-dir

cifs是common internet file system的縮寫

要注意那個homes是share-name不是dir

不過這樣mount會失敗

因為selinux的關係

setsebool -P samba_enable_home_dirs=1

另外補充, 星星如果要出現, setroublesootd要先啟動

如果要自行增加分享的資料夾

(預設只有home和printer)

在/etc/samba/smb.conf最下面增加幾行

[share-name]

path = blabla

browseable = yes

valid users = user1, user2

writeable = yes

read list = user2

以上表示, 開放write,除了user2不能write

但是, 光這樣還是會failed

必須給那個share出去的資料夾改變context

chcon -t samba_share_t /blabla

注意, 裡面的檔案也都必需要是samba_share_t

如果希望開機自動掛載

在/etc/fstab裡面

//server/share-name   /mount-point   cifs   username=john   0   0

不過這樣也挺麻煩的, 每次開機都要輸入密碼

所以可以改成

//server/share-name   /mount-point   cifs   credentials=/etc/xyz   0   0

然後建立/etc/xyz

username=user-name

password=user-password

安全起見chmod 600 /etc/xyz

最後, 關於存取控管

可以考慮直接用smb.conf裡面的[global]的

host deny, host allow, 依題目決定

比iptables方便許多

nfs雜亂筆記2

給未來的裕翔

當有用/etc/exports分享資源時

可用showmount -e來看分享哪些資源

或是用exportfs

接下來介紹一些exportfs的其他功能

每當修改過/etc/exports後, 都需要重新啟動nfs

或是簡單一點, export -r,

r就是refresh的意思

如果不只想看自己分享哪些資源

還想看選項, exportfs -v

統統不想分享的話, exportfs -ua

統統都分享, exportfs -a

針對細部的不分享? ex:

exportfs -u 192.168.0.0/255.255.255.0:/home

另外

portmap可以用TCPWRAPPER檔

還有就是

如果在/etc/exports的某一行

對某個網段root_squash

卻允許該往段某個IP no_root_squash

那寫的順序有先後影響, 先符合的生效

如果想要固定port

可以去/etc/sysconfig/nfs裡面設定

想看rpcinfo已經紀錄哪些port的話

rpcinfo -p

最後最後, nfs在某些OS有固定port, 2049

某些則是隨機, 由rpcbind決定

Monday, June 7, 2010

mysql重設root密碼

給未來的裕翔

剛在IT Ranger的網誌上看到關於

mysql重設root密碼的教學

曾經因為不會這個, 有心痛到~

所以現在把它寫入我的筆記

在此先謝過IT Ranger一番, 叩首...

先把mysqld服務停止

sudo service mysqld stop

然後

sudo mysqld_safe --skip-grant-tables &

IT Ranger說這步驟是啟動mysqld且設為"無登入控制模式"

帥的來了

現在直接mysql就進入mysql啦^^

在mysql裡面改密碼, 假設我要改成ohyes

update mysql.user set password=PASSWORD('ohyes') where user='root';

光這樣不會馬上生效, 就算此時離開mysql也不會自動生效

要再一個指令, flush privileges;

之後離開mysql後, 就可以用新密碼登入了^^

帥啦! 感謝IT Ranger!

Sunday, June 6, 2010

wordpress張貼程式碼注意事項

給未來的裕翔

如果在wordpress裡面要張貼程式碼之類的東

是用<pre></pre>這兩個標籤夾住

要注意的是

為了產生白色的方框括住程式碼

<pre lang="xxx">

xxx可以隨便寫, 但不能是空白

雙引號一定要有

啟動phpMyAdmin

給未來的裕翔

先安裝套件phpMyAdmin

(從這篇開始, 實際上要sudo的我都會如實寫出來, 不再假設自己是root)

sudo yum -y install phpMyAdmin

然後在/etc/httpd/conf/httpd.conf增加幾行
    Options FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all

這樣就可以使用以下方法啟動

http://localhost/phpMyAdmin/

注意, 使用yum安裝的phpMyAdmin預設裝在/usr/share底下

不需要特地移到/var/www/html

還有就是

也不需要改/usr/share/phpMyAdmin的context

預設就可以了

不需要改成一般網頁所需要的httpd_user_content_t:s0

mysql刪除database

給未來的裕翔

想刪除mysql裡面的database, ex: wordpress3, 的話

drop database wordpress3;

mysql備份and權限

未來的裕翔

mysql的資料庫都放在/var/lib/mysql

所以備份直接複製即可

都要給予某位使用者權限時

在mysql裡面

grant all privileges on wordpress.* on bob identified by 'password';

注意, password一定要有單引號括起來

不能不括, 不然語法會錯

wordpress資料夾others不需要r

給未來的裕翔

~/public_html/wordpress

不需要把read權限給others耶!

因為只要讓httpd經過即可

所以x就夠了

httpd寫檔

給未來的裕翔

預設selinux會擋httpd寫檔

所以設定要開

setsebool -P httpd_unified 1

Saturday, June 5, 2010

alternatives --install --config --display --remove

給未來的裕翔

跟alternatives是在練習架mail server的時候

原本以為只有那次會碰到

沒想到又碰到啦! 這就是緣份~!

逃不了的東西, 就趕快面對吧!

當我想新增一個path當alternatives的某一name時

alternatives --install pathA name pathB priority

pathA, name, 和pathB的關係是

pathA -> /etc/alternatives/name -> pathB

priority決定alternatives的*位置

如果我要改變alternatives的+位置

alternatives --config name

選喜歡的號碼按Enter

想看某一name的某個path的priority時

alternatives --display name

也是有其它資訊啦, 不過我看不懂

要移除某一name的某個path時

alternatives --remove pathB

用cat寫檔

給未來的裕翔

如果想用cat寫檔, 內容只有一行時

直接echo aaa bbb ccc > file-name

注意, aaa bbb ccc那一行可以含空白喔^^

也不需要雙引號

如果是要多行, 又不想vim的話, 可以用cat

cat << key-word > file-name

cat << key-word >> file-name

建新檔就用>

append就用>>

那個key-word是說當某一行我輸入key-word時

就結束cat的寫檔

注意, key-word左邊一定要是<<喔

只有<會錯誤

不過, 也是可以無視自己訂的key-word啦

Ctrl + d取代之

sh指令

給未來的裕翔

對於沒有執行權限的檔案

與其chmod a+x filename.sh

./filename.sh

直接sh filename.sh更為帥氣!

su --login

給未來的裕翔

su --login可以簡化為su -l

su -l可以簡化為su -

結論, 直接用su -吧!

測試jre有沒裝好的網站

給未來的裕翔

如果想測試jre有沒裝好

可以到http://www.java.com/en/download/help/testvm.xml

中間物件出現一小段動畫就表示成功

zotero, firefox, openoffice-writer出錯!

給未來的裕翔

為了方便論文的reference產生

研究了網路美女yimi的網誌後

決定使用firefox的外掛, zotero來完成這件事情

出師超順, 接下來極其不順

一開始實驗室的電腦可以成功

另外兩處的電腦則不行, 想說ㄍ一ㄥ著用就好

終於, 連實驗室那台也不能用了!!!

那這問題就一定要解決了!

去網路上查了一下, 大部分的解法我用都沒效

有的說要自己裝sun的jre然後alternatives --config java

有的說要選writer使用的java

oowriter -> Tools -> Options -> java, 然後選sun的java

有的說要移除openjdk

有的說要安裝sun-java6-jre和sun-java6-plugin

有的說某幾步要變成root, sudo或su不行

我也不知道誰對誰錯, 總之最後我照一篇操作後就搞定啦!

1. 去sun的網站下載最新的jre, ex: jre-6u20-linux-i586-rpm.bin

http://java.sun.com/javase/downloads/index.jsp

平台依自己的情況選擇Linux或是Linux x64

2. 執行下載的rpm.bin, ex:

sudo sh jre-6u20-linux-i586-rpm.bin

結束時, 雖然會產生一個rpm

不過其實已經安裝好了

3. 使用java指令時, 預設會執行到openjdk的東西

所以要用alternatives來改

sudo alternatives --install /usr/bin/java java /usr/java/default/bin/java 20000

白話意思就是, 使用alternatives指令來install一個/usr/bin/java連結

指向/etc/alternatives/java, 再指向/usr/java/default/bin/java

至於那個20000, 則是priority, 數字越大則priority越高, 幹嘛用我不清楚

當使用alternatives --config java時, *會出現在priority最高的左邊

我們只能改+而已, 一樣, 到底*+是幹嘛用我不清楚

注意喔, 這裡我們只有alternatives --install而已, 並沒alternatives --install

意思是, 只有改變*號位置, 沒有改變+位置

4. 接著再用alternatives安裝libjavaplugin.so

如果是32 bit

sudo alternatives --install /usr/lib/mozilla/plugins/libjavaplugin.so \
libjavaplugin.so /usr/java/default/lib/i386/libnpjp2.so 20000

如果是64 bit

sudo alternatives --install /usr/lib64/mozilla/plugins/libjavaplugin.so \
libjavaplugin.so.x86_64 /usr/java/default/lib/amd64/libnpjp2.so 20000

操作到此, 一開始可以成功, 但是之後firefox都會crash

要再restorecon /opt/jre1.6.0_20/lib/i386/client/libjvm.so

然後就大功告成~

重開firefox和oowriter就可以了^^

爽~

reference:

http://www.mjmwired.net/resources/mjm-fedora-f12.html

http://kiddingthecity.org/blog/?p=1131

Thursday, June 3, 2010

nfs雜亂小筆記

給未來的裕翔

如果想要啟動nfs服務

編輯/etc/exports, ex:

/var/ftp   192.168.0.0/255.255.255.0(rw)

netmask不可以用24

如果要街多個網段, 彼此空格相隔即可

service portmap start

service nfs start

注意: /etc/hosts.allow裡面要加

portmap:ALL

mountd:ALL

然後在client端

showmount -e 192.168.0.X

mkdir /nfsdir

mount 192.168.0.X:/var/ftp /nfsdir

報告完畢

vsftpd雜亂小筆記

未來的裕翔

要開啟vsftpd服務, 要先安裝vsftpd套件

port 21/tcp, ftp command

port 20/tcp, ftp data

/etc/vsftpusers, 黑白名單

vsftpd可用TCPWRAPPER控管

預設是:

normal user可以上傳下載, 登入預設進入家目錄

不過selinux要開, setsebool -P ftp_home_dir=1

帳密就是/etc/passwd

如果是anonymous user登入, 就只能下載, 登入預設是/var/ftp

如果想讓anonymous user可以上傳

vsftpd.conf要先設定

anon_upload_enable=YES

建議修改上傳的檔案屬性和權限

chown_uploads=YES

chown_username=XXX, /etc/passwd要存在此使用者

anon_umask=077, 上傳後的檔案就會變成600

這樣除了XXX誰都不能讀anonymous user的檔案了

所以也就不能下載

通常會另外建一個資料夾以供上傳

mkdir incoming

chown root.ftp incoming, w和x要一組才能寫入

chmod 730 incoming, 這樣大家就看不到別人上傳的檔案

到此, 還要修改incoming資料夾的context

不然selinux預設(public_content_t)無法寫入

chcon -t public_content_rw_t incoming

最後最後, selinux還有擋一個^^

setsebool -P allow_ftpd_anon_write on

補充:

pc連到unix預設是ascii mode

可輸入bin切換到binary mode

想換到ascii mode就輸入ascii

ACTIVE MODE(server主動SYN client):

1. 當client向server的port 21送出SYN

2. client再跟server的port 21說client自己要開哪個port(隨機, >1024)

3. server用port 20跟client的那個隨機port聯絡, 用SYN

4. 然後client的那個隨機port回一個ACK給server的port 20

就可以開始傳了

不過在3可能會被client的防火牆擋住

所以需要PASSIVE MODE:

1. client SYN server的port 21

2. client跟server的port 21說client要進行PASSIVE MODE

3. server的port 21跟client說, 請聯絡server的隨機port(>1024)

4. 於是由client SYN server的隨機port

5. 然後server回一個ack給client

不過如果server也檔那個隨機port就不用玩了

所以iptables才會有那個RELATED,ESTABLISHED blabla

Tuesday, June 1, 2010

DNS雜亂小筆記

給未來的裕翔

domain name轉ip叫做名稱解析

注意, ip轉mac也叫名稱解析 => ARP

gethostip指令會參考/etc/nsswitch.conf

host和dig則是直接去找DNS, 不參考nsswitch.conf

nslookup是第三方軟體, 似乎比較少用

接著講另一個東東

今天我請我朋友A當我的DNS

我要找其他人時, 請A幫我找

A就跑去問他朋友B認不認識我要找的

B說"那個C可能知道 你去問它"

於是A又跑去問C

C說"那個D可能知道 你去問它"

假設最後找到我要找的朋友了

那A這種辛苦幫我搞定的行為

稱之為recursive query

A的朋友都指給方向, 像我實驗室博班學長一樣

那A的朋友對A來說就是忙只幫一半

non-recursive query或iterative query

ref: http://ithelp.ithome.com.tw/question/10040649

再來講另外一件事

每次查詢總是麻煩, 因此永cache server的產生

如果我要查的IP, 由cache解析給我

那就是non-authorized answer

如果是真的去外部查

那就是authorized answer

最後講指令部份

想要反解查詢的話

dig -x 12.34.56.7

這樣可以查PTR資訊

關於CNAME資訊, 想像一下

如果我有三台電腦

一台叫ftp.bob, 一台叫www.bob, 一台叫mail.bob

萬一不幸我只有一台電腦提供三個服務

(像健達出奇蛋一樣)

那就可以在DNS裡面寫下

www.bob IN CNAME real.machine

ftp.bob IN CNAME real.machine

mail.bob IN CNAME real.machine

再話一個話題

dig -t mx redhat.com

可以看那個domain裡面的mail server

squid雜亂小筆記

給未來的裕翔

如果要架proxy, 要先安裝squid套件

然後開放port 3128

主要設定檔是/etc/squid/squid.conf

如果要允許某個網域跟我要求proxy服務

在squid.conf新增

acl xxname src 192.168.0.0/24

http_access allow xxname

記得要寫在http_access deny all之前

此外, 如果不喜歡port 3128

也可以修改http_port的預設3128為別的port

http檔案條列

給未來的裕翔

如果希望連到某個網址

只想看到檔案條列

必須滿足以下三點

一. 那個資料夾不能有index.html

二. 把/etc/httpd/conf.d/welcome.conf裡面註解

三. 在httpd.conf裡面, 關於該資料夾的設定

<Directory "/var/www/html">

Options Indexes

</Directory>

那個Indexes要存在

順便講一下, Options後面接的FollowSymLinks

就是說該資料夾可以放連結檔

使用者用網頁看時

如果點該檔案, 會連出去

http啟動CA憑證但不想輸入passphrase

給未來的裕翔

如果想要開放https連線實啟動CA

但又不想之後開機也得輸入啟動httpd所需要的passphrase

可以如下操作

openssl rsa -in newkey.pem -out newkey.pem.tmp

mv newkey.pem newkey.pem.bak

mv newkey.pem.tmp newkey.pem

這樣就可以了