lsof
192.168.1.1 (or 192.168.2.1 or whatever the router's IP really is)
, чтобы перечислить открытые файлы процесса оболочки. Используйте [1127269]-a -p $$[1127270] для ограничения вывода в оболочку процесса ([1127271]$$[1127272]), [1127273]-d 1[1127274] для ограничения вывода в дескриптор файла 1 (например), и [1127275]-F n[1127276] для распечатки вывода в разобранном виде. Вот фрагмент оболочки, который справляется с произвольными символами в именах файлов:
ph.cox.net (again, except matching your own ISP's domain as was already showing)
Если имя файла не содержит новой строки, то можно обойтись без [1127277]output_file=$(lsof -a -p $$ -d 1 -F pn | sed -n '2s/. //p')[1127278].
local
Обратите внимание, что имя файла может не всегда существовать, в частности, если файл был удален.Под Linux другой способ доступа к именам файлов - [1127279]/proc/$$/fd[1127280]: [1127281]/proc/$$/fd/1[1127282] - это слегка магическая символическая ссылка на файл, открытый оболочкой на файловом дескрипторе 1 (ссылка работает, даже если имя файла, возвращенное по [1127283]readlink[1127284], не существует, например, в случае удаленного файла).
Обычно очень плохая идея использовать полученную таким образом информацию. Если кто-то вызовет ваш скрипт с перенаправленным в файл выводом, ему не понравится, если вы будете вести себя по-другому из-за расположения файла, или повлияете на файл другими способами, нежели добавление к нему. Есть одно исключение: вы можете захотеть реагировать по-разному в зависимости от того, пишите ли вы на терминал или на что-то другое (труба, сокет, файл), например, для отображения цветов или индикаторов прогресса на терминале. Есть специальный тест, чтобы определить, подключен ли файловый дескриптор к терминалу:
DNS Servers:
192.168.1.1
Search Domains:
local
ph.cox.net
На самом деле это невозможно. Вы просто не можете запретить кому-либо включать / выключать компьютер или делать с ним все, что они хотят, когда у них есть доступ.
Я сделал нечто подобное для сервера. Он использует полное шифрование диска и создает свой ключ на основе данных оборудования, таких как тип процессора, Mac-адрес, объем установленной памяти и т. Д. Если кто-то просто вынул диск и поместил его на другой компьютер, был бы создан другой ключ и как в таком случае система не будет раскрывать свои данные. Это означает защиту, когда кто-то меняет диск в центре обработки данных и помещает его на чужой сервер, не стирая его предварительно.
Тем не менее, вы должны знать, что на самом деле это не защищает от тех, кто хочет испортить ваши вещи.
Используйте sudo. (Но нельзя предотвращать отключение питания, иначе люди выдернут вилку из розетки.)
Некоторые файлы конфигурации могут быть сжаты до такой степени, что их нельзя будет просмотреть; однако другие (особенно конфигурация DNS) не работают, если не доступны для чтения всем. Для каждого файла вы должны прочитать руководство, чтобы узнать.
Если полное шифрование диска + загрузочный пароль, предоставленный TPM, не помогает, вам потребуется специальное оборудование, которое в силу того, что оно является настраиваемым, останавливает большинство попыток.