這篇其實是上禮拜的內容
我竟然拖超過一個星期,看來我也越來越懶了啊...
不過再怎麼樣,也比某位只寫到Lesson 4的帥哥好多了XD


‧find可以找各種不同類型的檔案,而且包括檔案大小日期等等
詳細內容請看man findLinuxSir.Org的介紹

《sticky》

cd /sbin
ll -d /tmp

發現tmp這個目錄底色不太一樣
而且權限最後顯示t不是x
這是因為他是sticky
sticky簡單來說,只有root權限才能將他刪除

find /sbin -perm -4000
看到這個檔案的權限也不太一樣
一般可以執行應該叫x,他卻叫做s
這個意思是說,當other執行該程式的時候
other會變成該檔案擁有者的權限

檔案跟目錄的set sticky代表的角色是不一樣的
詳細請看鳥哥的私房菜關於sticky的介紹

 

‧關於set userid,回去找他的定義吧

‧user.c
先來修改一下程式內容,增加顯示euid的部分
先定義uid_t euid;,其他依樣畫葫蘆即可
修改完編譯後,用root跟自己的帳號執行,發現uid跟gid會不同



再來輸入sudo chmod 4755 user改變這個程式的屬性
任何人來執行的那一剎那就能提升到擁有的權限
重新執行會發現euid不同了

電腦內部使用一個數字稱為userid來記錄登入者的ID
而且只認數字不認人



cd /etc
etc底下有兩個檔案:passwd、shadow
輸入tail -2 passwd
會出現joe:x:1000:1000:joe,,,:/home/joe:/bin/bash
分別代表帳號、密碼、gid、uid、des、home、login、shell
密碼部分Linux使用x幫你隱藏了
實際資料藏在shadow中
但我們使用tail -2 shadow時會發現權限不夠
換成root權限就可以看到結果了...?



cd - - 跳回上一個目錄,再輸入一次跳回來

‧接下來上課老師修改了simple_read的部分
不過老師打太快,我沒有抄到

ll /usr/sbin/ppp*
看到pppd這個檔案屬性就有set userid
這好像是撥接上網需要用到的東西...



‧要產生暫存檔最好用tmpnam
1.不會跟別人撞名
2.同時產生檔案並open給你

ll -d /tmp
前面提過,權限為drwxrwxrw"t"
這代表雖然每個人都可以刪掉東西,但只能刪掉自己的東西
進去刪他的暫存檔,就會被說權限不夠(上圖)

《ch05》
要執行第五章的範例,請先用root權限安裝libncurses
ins libncurses5-dev
安裝完才能正常編譯



執行menu1
明明還沒選擇錯誤就叫我再選擇一次,為什麼?
因為他把enter鍵也一起吃進去了



◎為什麼中斷程式要按ctrl+c
原來這些都寫在stty -a
ctrl+u就是一次刪除整行



輸入以下指令
bash - 進入sub shell
stty raw - 進入到raw mode
./menu1 - 發現字都亂掉了,不用按enter就可以輸入
stty cooked - 回到原本操作方式



可以輸入man stty看一下關於stty的介紹
有參數可以把設定儲存起來,以便下次復原

 

◎早期bit會亂砍,中文會變成亂碼
所以要自己進入/etc/inputrc這個檔案增加指令讓他不要亂砍,像
stty cs 8 -istrip
stty pass8

(但是一般人根本不知道這些東西啊...怎麼去改他?)

現在來惡搞menu1
./menu1 >aa
畫面沒有東西,因為輸出導向到aa去了
要是助教這樣惡搞說沒畫面算你錯,就欲哭無淚了

diff menu1.c menu2.c觀看兩者不同
menu2.c增加了輸出導向這一段
如果導向到其他地方就輸出錯誤不讓程式執行



輸入diff menu2.c menu3.c看兩者不同
不過由於內容太多,可以改輸入diff menu2.c menu3.c >aa
將結果導向到aa慢慢看

menu2只能防輸出導向,不能防輸入導向
./menu2 <aa
輸入導向被導向到檔案了,導致無法輸入



所以menu3.c增加/dev/tty這一段
不管是輸出或輸入,永遠是terminal,不怕助教亂搞



menu4改用fgetc,免按enter

menu5則是互動式,請自行觀看

sizeterm可判斷視窗大小



最後下課前講了系統變數TERM
輸入echo $TERM觀看
功用是模擬終端機的效果,顯示方式會改變
比方說輸入TERM=vt100
/usr/share/terminfo這個目錄中有所有表現方式

 

arrow
arrow
    全站熱搜

    蕭雲 發表在 痞客邦 留言(1) 人氣()