Сценарий оболочки для предотвращения выполнения конкретного приложения - PullRequest
0 голосов
/ 26 марта 2011

Я пытаюсь написать скрипт в Терминале, который не позволяет вам открывать определенное приложение.

Вот сценарий:

#!/bin/bash

while [ true ]; do

killall iChat

done

Когда я запускаю скрипт, я получаю сообщение «Не найдено подходящих процессов, принадлежащих вам». Что это значит и как мне это исправить?

Также я хотел бы запустить этот скрипт в bash, чтобы при killall Terminal он продолжал работать. В настоящее время, когда я killall Terminal, весь скрипт перестает работать.

Как это можно сделать?

Ответы [ 3 ]

4 голосов
/ 26 марта 2011

Это не способ предотвратить запуск процесса.Что вам нужно сделать, это chown root.root /path/to/iChat, поэтому процесс принадлежит root, а затем chmod a-x /path/to/iChat.Это не позволит процессу быть исполняемым, а права могут быть изменены только пользователем root.

1 голос
/ 26 марта 2011

Не ясно, зачем вам это нужно, и насколько решительны ваши нарушители.

Если вы работаете с неискушенными нарушителями, то что-то похожее на подход SiegeX (chmod 500 / chmod a-x) предотвратит запуск приложения.

Если вы должны выполнить уничтожение после факта, killall может сработать, но это рискованное касание (вы рискуете уничтожить процессы, которые вы не собирались уничтожать).

По сути, пользователь обычно может загрузить исходный код (или собственный двоичный файл) и скомпилировать и запустить программное обеспечение таким образом. Это очень сложное задание.

1 голос
/ 26 марта 2011

Процесс будет называться не iChat, а скорее как /Applications/iChat.app/Contents/MacOS/ichat. Используйте регулярное выражение с killall для уничтожения процессов с именами, которые содержат данную строку:

killall -m iChat

Теперь, что с "пока правда?" Этот цикл будет работать очень быстро, привязывая ваш процессор и ничего не делая. Может быть, вы хотите поспать, хотя бы?

Наконец, чтобы запустить цикл так, чтобы он убивал терминалы, не убивая терминал, на котором запущен скрипт, просто не запускайте его в терминале - запустите его в фоновом режиме. Поместите это в файл и скажите что-то вроде

убийца &

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...