2007年10月31日 星期三

如何setuid

使用passwd來改變密碼很平常的事,但是passwd是

-r-sr-xr-x 2 root wheel 5.7K 10 27 14:42 /usr/bin/passwd*

假設我們的使用者為clockwork執行此程式沒有問題算是other group的,所以一執行下去此行程會有UID和EUID而如果是一般的行程會把UID和EUID設成clockwork表示只有clockwork可以對此行程做任何事,而對clockwork為所有人的資源做任何事

那為什麼要setuid呢?因為我們的clockwork沒有辦法改變master.passwd這檔案阿

-rw------- 1 root wheel 1.6K 10 29 20:19 master.passwd

上面清楚的寫到,只有root才可以動這個檔案,所以setuid主要就是把EUID設為root而本來的UID還是一樣是clockwork,這樣我們就可以去存取master.passwd資源了,而此時執行passwd這程式的行程它的UID為clockwork而EUID為root。

建立使用者直接安裝設定檔

把要讓使用者做成預設的設定檔改名為dot.xxxx
如.screenrc .vimrc改成dot.screenrc dot.vimrc
複製到/usr/share/skel
這樣建立使用者的時候,它的家目錄下面就會有這些預設的設定檔了

sshd 開443port

改/etc/rc.conf 設inetd_enable="YES"
改/etc/inetd.conf
加入
#ssh stream tcp nowait root /usr/sbin/sshd sshd -i -4
ssh2 stream tcp nowait root /usr/sbin/sshd sshd -i -4
#ssh stream tcp6 nowait root /usr/sbin/sshd sshd -i -6
ssh2 stream tcp6 nowait root /usr/sbin/sshd sshd -i -6
改/etc/service
加入
ssh 22/tcp #Secure Shell Login
ssh 22/udp #Secure Shell Login
ssh2 443/tcp
ssh2 443/udp
重啟動inetd
/etc/rc.d/inetd restart

以上讓本來的ssh跑22用standalone的方法,而443使用inetd來跑

2007年10月30日 星期二

目錄說明

/bin & /sbin
在『單使用者 (Single User)』與『多使用者 (Multi-User)』模式下,都會用得到的一般使用者指令,這些指令都是開機時必備的。它們將被安置於 root 分割區。/bin 與 /sbin 的差別在於 /bin 存放著一般操作性的指令;而 /sbin 則存放著與系統管理有關的操作指令。

/usr/bin & /usr/sbin
存放一般的使用者指令、程式編輯器、應用軟體、系統服務程式 (daemon)、系統工具等等。與 /bin & /sbin 相同,/bin 存放一般操作產的指令,而 /sbin 存放與系統管理或服務程式有關的指令

2007年10月29日 星期一

教學文章

http://ohaha.ks.edu.tw/

http://www.twbsd.org

portupgrade使用

http://ohaha.ks.edu.tw/portupgrade.htm

更新軟體
portupgrade -an
portupgrade -RrCc vim

移除軟體
pkg_deinstall -Rrn vim
pkg_deinstall -Rri vim

安裝軟體

下載make.conf
cd /etc
fetch http://cse.tw/make.conf

更新所有資料
cd /usr/src
make update
(來去睡一下)

安裝軟體(尋找)
cd /usr/ports/
make search name=xxx grep Port:
make search name=xxxx
cd到目錄所在位子後
make install clean

如:
screen /usr/ports/sysutils/screen make install clean
vim /usr/ports/editor/vim make -DNO_GUI install clean
portupgrade /usr/ports/ports-mgmt/portupgrade make install clean
(會裝一堆東西)

移除下載檔
下載目錄 /usr/ports/distfiles
cd /usr/ports/distfiles
rm -rf *

使用者管理

adduser 加入新使用者
rmuser 移除使用者
chfn 改變使用者的資訊
vipw 改變master.passwd檔