我需要有關加載具有內置 platform_check 腳本的軟體的幫助。我的計劃是創建一個名為 uname 的腳本,在執行時將列印一個可接受的平臺。該腳本按我的需要作業,但我不知道如何讓 uname 命令搜索我的自定義 uname 腳本而不是 /bin/uname 默認值。我曾嘗試使用 PATH 之類的東西 PATH=~/.../path_to_uname:$PATH 這不起作用。我沒有 root 訪問權限,所以我不能在其默認位置編輯/創建 uname。
當我像這樣執行腳本時: exec /directory_to_uname/uname 和 /directory_to_uname/uname -r 都按照我的意圖作業,我只需要欺騙 shell 來查找我的自定義 uname。
uj5u.com熱心網友回復:
您可以嘗試對trickshell使用別名。例如(使用 bash)編輯 ~/.bashrc 并添加alias uname='path/to/uname uname'. 執行source ~/.bashrc,命令 uname 將從別名中獲取一個。如果alias uname='ls -lha'在執行時更改它并加載(源命令)uname,它將列出檔案/目錄。
uj5u.com熱心網友回復:
假設您有一個呼叫 uname 的平臺檢查腳本,我們將其命名為 test.sh:
#!/bin/bash
uname
初始運行按預期顯示 uname:
user@computer:~$ ./test.sh
Linux
將 uname 作為 bash 函式匯出到echo您要用于欺騙的內容:
user@computer:~$ function uname {
> echo "hello"
> }
user@computer:~$ export -f uname
user@computer:~$ ./test.sh
hello
uj5u.com熱心網友回復:
為了知道在命令期間訪問/使用了哪些檔案,您可以使用以下strace命令:
strace -y uname
您將獲得大量使用的檔案和流程,您可能會看到是否有任何可以適應您的需求。
然而,這是非常危險的(誰知道可能有什么副作用?)因此我建議您創建和alias用于uname命令。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/391308.html
