2015-12-28 26 views
-2

在C中給出的主目錄快捷方式的檢查?我希望把在運行的ç程序作爲參數通過命令行輸入選擇主目錄快捷~檢查Linux如何把通過CLI在Linux上

在從main()函數參數中讀取快捷方式之前,該快捷方式會轉換爲完整路徑。

我在它上面添加了字面檢查,但它不起作用,因爲參數已被CLI替換爲主目錄完整路徑(如/home/myself)。

if ((strstr(pName, (const char *)"~/") != NULL) || (strcmp((const char *)pName, (const char *)"~") == 0)) 
{ 
    /* home directory shortcut is not allowed/; 
} 

我如何添加一個文字支票不允許用戶進入主目錄的快捷方式(不完整路徑),或如何確保CLI不會快捷轉換成路徑?

請注意,如果用戶顯式輸入主目錄路徑作爲輸入參數,那就沒問題。我只需要檢查快捷方式。

一些背景資料:

這僅僅是安全檢查中的一個,不允許用戶訪問特權的位置。用戶將通過Web界面訪問應用程序,並且應用程序將運行在除分配給用戶(/ home/user_1)以外的空間(/ home/main)中

+0

你要什麼做的呢? – fuz

+0

只是其中一項安全檢查,不允許用戶訪問特權位置。用戶將通過Web界面訪問應用程序,並且應用程序將在空間(/ home/main)中運行,而不是分配給用戶(/ home/user_1)的空間。 –

+0

那你爲什麼不用'/ home/main'來比較目錄而不是檢查代字號擴展? – fuz

回答

1

~擴展爲$HOME shell,而不是你的應用程序。你的應用程序沒有發現如果~擴張發生,即你不能區分的方式,如果用戶鍵入

application ~/foo 

application /home/me/foo 
+0

那麼,這個問題沒有解決方案? –

+0

@ZeeshanMahmood不,沒有。爲什麼這是一個問題?爲什麼你有興趣禁止用戶使用'〜'擴展? – fuz

+0

請參閱上面問題中的「一些背景」。我剛剛編輯它。 –

相關問題