Process

是否可以從執行程序的位置解除安裝驅動器?

  • June 14, 2020

我想在雲伺服器上執行一些機密程序。為了保護它不被複製,我可以將它加密到驅動器中並安裝解密的驅動器來執行它。但是,一旦解密驅動器在記憶體中設置執行,我想解除安裝它以最小化解密的時間視窗。

有可能這樣做嗎?或者Linux鎖定這個驅動程序執行的程序?

類似的情況是在驅動器上執行程序,然後解除安裝該驅動器。

沒有乾淨。例如,您可以移除正在執行軟體的 USB。如果程序不需要那裡的任何資源,那麼什麼都不會發生,但它不會乾淨地退出。

$ sudo dd if=/dev/zero of=/tmp/disk bs=1M count=100
$ sudo mkfs -t ext4 /tmp/disk
$ sudo mount /tmp/disk /mnt
$ sudo cp -a /bin/bash /mnt/newbash
$ /mnt/newbash

如果您轉到另一個終端並嘗試umount /mnt系統會告訴您它很忙,並且fuser -m /mnt會將 newbash 列為使用它的程序,還有lsof.

COMMAND PID USER  FD   TYPE DEVICE SIZE/OFF NODE NAME
newbash 903 root txt    REG    7,0  1168776   12 /mnt/newbash

即使文件系統正在使用中,您也可以這樣做umount --lazy /mnt,但這可能會產生令人討厭的後果。您不知道整個執行檔是否在記憶體中,例如係統可能需要獲取其中的一部分。

那就自找麻煩了。該選項可以避免永遠等待您不再有權訪問的資源,例如在關機時。

如果您只想在記憶體上執行它,那麼您可以創建一個 ramdisk,將其複製到那裡並執行它。

你甚至可以設置像 encfs 這樣的東西來加密 ramdisk 中的文件夾。

引用自:https://serverfault.com/questions/1021364