請問關於chroot和tab自動完成的問題 - Linux

Table of Contents

各位前輩大家好, 最近寫Linux C遇到一些問題, 來請問一下....

1.
為了保護系統的安全性, 所以在程式開頭便用了chroot限制user可視的File System
但我的程式本身又必須去執行(execv)其他程式A..而程式A的位置不在chroot的目錄中
這樣該怎麼解決呢??

ex.
File System: /bin/testprogram (為一個執行檔)
/tmp/home/ (為new root)

chroot("/tmp/home");
....
execv(“/bin/testprogram”,argv);

因為root已經被改變了, 所以會找不到testprogram這個檔案
可是也不能把testprogram移到/tmp/home中..因為這也是保護的對象之一
請問這個問題應該怎麼辦??..
有任何方法可以偷偷把root換回"/" 執行完後再回到"/tmp/home"嗎
( chroot("/tmp/home"); 後面用 chroot("/"); 不會回去XD )

2.
這個問題的目的也是限制使用者的可以看到的東西...
想請問一下linux中的Tab 自動完成功能要如何取消??
我查詢過相關資料, 似乎跟GNU readline()實作shell有關..
已經試過更改readline.h source再重新編譯shell了..但是沒辦法解決
也試過用flex做input parser的時候濾掉\t..可是也失敗了Orz
所以想請問一下要如何取消tab自動完成功能..(可以從shell著手??)
( 不想讓使用者藉由按兩下Tab亂看.... )

以上 麻煩了~~~想了整晚Orz...

--

All Comments

Oscar avatarOscar2008-12-26
1. chroot常配合hardlink使用
Kelly avatarKelly2008-12-30
還有就是"man complete" <- 我沒找還不知道這個... :P