@Artm показал технику, в которой вы дважды цитируете скрипт awk и избегаете различных символов. Вот 3 других техники
вырваться из единой цитаты, чтобы позволить оболочку расширить переменную
usrpid=$(awk '$1 == "'"$USR"'" {print $2}' file)
, передайте переменную оболочки в вариабельную переменную
usrpid=$(awk -v usr="$USR" '$1 == usr {print $2}' file)
, если переменная экспортируется, используйте AWK-ARTIOL ARRALY
usrpid=$(awk '$1 == ENVIRON["USR"] {print $2}' file)
, который последний Один должен быть предпочтительным.
В первом подходе, как для Artm's One, содержание переменных оболочки встроена внутри кода
, так что становится уязвимостью впрыска команд , если содержание Переменная не контролируется плотно контролируемым (например, с USR = «BLAH» || Система («Перезагрузка») || «
, что позвонит Reboot
).
Второй не вводит уязвимость команды впрыска, но если $ usr
содержит символы обратной косоты, USR
awk
переменная не будет содержать то же самое, что и $ Usr
Переменная оболочки как awk
расширяется C-похожими на эвакуаторные последовательности.
Использование среда
не имеет ни одного из этих вопросов.
Все в ~ / .bash_profile
будет выполняться, когда пользователь входит в систему, так что вы можете использовать это. Например, с этим кодом:
IP=`w | grep DarkGL | awk '{print $3}'`
if [ $IP = "192.168.10.10" ];
then echo "Monkey"
fi
Альтернатива использует SSH принудительные команды, но вы не можете настроить это на основе IP. Это означало бы, что пользователь может запускать только определенные двоичные и даже не список файлов в списке. Мы реализовали это с GIT, поэтому пользователь может запустить только двоичный джок.
Если вы можете объяснить, почему вы захотите это сделать, мы можем помочь вещам.
С момента публикации я продолжил копать и нашел несколько ресурсов, связанных с этим вопросом, и хотя я бы отметил их здесь.
на OSX, если у вас установлен Xcode, есть утилиты, которые полезны в каталоге /Dev*/App*/Util*/... в частности, USBProber.app и IORegistryExplorer.app. В USBProper есть флажок "Зонд подвешен". после проверки и запуска зонда мое устройство выскочило в DiskUtility. Через них я смог найти много информации о базовой структуре всей системы.
что касается восстановительной стороны вещей... клонируй сначала все, что тебя касается, а потом работай над клоном.
GNU ddrescue - отличный инструмент. http://www.gnu.org/software/ddrescue/ Ищите по кругу, и вы можете найти предварительно скомпилированные двоичные файлы
TestDisk и Photorec - отличные инструменты http://www.cgsecurity.org/wiki/PhotoRec