Shell

在沒有重定向的情況下寫入文件?

  • March 26, 2020

我正在編寫一個正常編譯的應用程序,它需要創建一個特殊文件並將一個魔術 cookie 寫入其中。我不能直接從應用程序寫入文件,系統安全模型要求我啟動一個具有提升權限的幫助工具來完成這個技巧。我可以為輔助工具提供任意數量的參數。現在我想選擇一些非常簡單的系統命令作為輔助工具並為我創建文件。像這樣的東西:

/bin/sh -c "/bin/echo -n 'magic' > /some/where/file"

簡單touch並沒有削減它,因為我需要將 cookie 寫入文件,echo沒有 shell 包裝器的簡單不起作用,因為它需要重定向來寫入文件。我不喜歡用 root 權限呼叫 shell 來完成這樣一個微不足道的任務。是否有一些非常簡單、受約束的系統命令可以呼叫來為我編寫文件?

這個怎麼樣:

echo -n 'magic' | sudo tee /some/where/file > /dev/null

當然這裡有重定向,但只有 tee 以 root 而不是 shell 執行。也適用dd of=...

沒有輸出重定向,沒有管道,但有“這裡的字元串”:

dd of=/some/where/file <<<'magic'

引用自:https://unix.stackexchange.com/questions/7850