Process
是否可以從執行程序的位置解除安裝驅動器?
我想在雲伺服器上執行一些機密程序。為了保護它不被複製,我可以將它加密到驅動器中並安裝解密的驅動器來執行它。但是,一旦解密驅動器在記憶體中設置執行,我想解除安裝它以最小化解密的時間視窗。
有可能這樣做嗎?或者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 中的文件夾。