Chris 的个人资料小斯照片日志列表 工具 帮助

小斯

The Power of now.

Yang Chris

linux  
第 1 张,共 2 张
2009/7/29

new blog

越來越覺的這邊的 blog 實在不是很好使用
所以我又申請了一個新的  不過主要是在寫一些技術文章的心得
這邊可能慢慢會荒廢了 -_-
http://sakbk.pixnet.net/blog
2009/6/18

fuse

- 什麼是 fuse ?
   - Filesystem in user space.
 
Linux 在後來有 build in ntfs 的 module 不過這只能讓 user 做 read 而不能 write
如果要 write 就要透過 kernel fuse 的 support, 在搭配 ntfs-3g 來做 write 的動作.

這樣提供了很多好處,因為如果因為要增加某個 feature 就不需要重新 build kernel, build kernel 是一件耗大的工程

稍微 看了一下 fuse 其實 透過 udev listens to netlink socket to create /dev/fuse node. 這個 kernel module 主要是將底層的
api 實作出來,讓 userspace 透過 systemcall 來呼叫.

<待續>

2009/6/16

謝謝管老師


今天是一個感傷的日子 ...
很多話不知該怎麼說 一切都發生的很快

來不急 處理的情緒
來不急 說聲謝謝

在工作上 老師給我的幫忙很多
在生活上 老師也給我不少的想法和啟發

人生有時就是這樣 當你想要幫忙 可是又好像幫不上什麼忙
只能靜靜等待

好無奈 真的好無奈


管老師 謝謝你 ...

我會永遠記得老師對我們家的幫助

希望老師 安心 快樂 


2009/6/12

什麼是 S U I D

什麼是 S U I D ?

 執行檔案時,在當下能獲得該檔案使用者(owner)的執行權限。

有什麼功能和限制 ?

 1 - SUID 只對執行檔有效 (x)
 2 - 執行者對於該程式需要有執行的權限.
 3 - 在 run-time 會 "暫時" 獲得檔案擁有者的權限.

舉個例:
 
  在 linux 下都會有 passwd 這個檔案,我以這個檔案來做個小實驗.
 
  chris@chris-x60:/tmp$ cp /usr/bin/passwd  .
  chris@chris-x60:/tmp$ ls -l passwd
  -rwxr-xr-x 1 chris chris 37084 2009-06-12 22:23 passwd
  
  chris@chris-x60:/tmp$ sudo chown root.root passwd 
  chris@chris-x60:/tmp$ ls -l passwd
  -rwxr-xr-x 1 root root 37084 2009-06-12 22:23 passwd
 
  chris@chris-x60:/tmp$ sudo chmod 700 passwd
  chris@chris-x60:/tmp$ ls -l passwd
  -rwx------ 1 root root 37084 2009-06-12 22:23 passwd
  
  這個檔案目前只有 root 能開啟 其它人是沒有任何權限的...
 
  編輯如下程式
  #include <stdio.h>

  int main() {
       FILE *fp;
       fp=fopen("passwd", "rb");

       if(fp!=NULL) {
          printf("Open Success ...\n");
       } else {
          printf("Open Fail ...\n");
       }

  return 0;
}

 gcc -o test.c test
 
 <沒有設 SUID 時執行時>
 chris@chris-x60:/tmp$ ls -l test
 -rwxr-xr-x 1 root root 9185 2009-06-12 22:00 test

 chris@chris-x60:/tmp$ ./test
 Open Fail ...

 <設 SUID 時>
 chris@chris-x60:/tmp$ chmod 4755 test
 chris@chris-x60:/tmp$ ls -l test
 -rwsr-xr-x 1 root root 9185 2009-06-12 22:00 test

 chris@chris-x60:/tmp$ ./test
 Open Success ...
2009/6/11

usb mount fail

今天發現機器上的 USB 無法自動 mount 起來,所以觀察了一下 發現了原來是 kernel 少 build in utf-8 語系。
在console 下,觀察 dmesg 的輸出 

while true; do dmesg -c; done



於是檢查了一下 kernel 的 config
發現 CONFIG_NLS_UTF8=n
所以我們只要把它build in 就不會再出現這樣的問題囉!




要檢查是不是有勾選 kernel 某個選項除了從 /boot/config-$(uname -r) 外還可以從 /proc/config.gz 去判斷
zless /proc/config.gz

不過當然要有這個 node 也是要把 kernel 的選項勾起來才有 support

General setup
  -> [ * ] kernel .config support
  -> [ * ] Enable access .config through /proc/config.gz