сделайте сценарий оболочки "завершает работу-h теперь", в теории был бы...., но это приводит к предупреждающему сообщению "несуперпользователя".
Насколько я могу сказать, и это имеет смысл, необходимо быть суперпользователем для перезагрузки системы из командной строки. Почему это имеет смысл? потому что Вы не хотите кого-то перезагружающего компьютер от ssh сессии, если у них нет Суперпользователя / корневой доступ...
Мне было бы интересно, если бы кто-либо нашел способ сделать это....
Scott точен...
Скажите приложению "средство поиска" для перезапуска - система Перезапуска Говорит приложению "средство поиска" для завершения работу - система Завершения работы
Но это предложит пользователю сохранить любые несохраненные файлы... Таким образом, если Ваша попытка обойти подсказки, это не будет работать.
Хотя угроза безопасности, один способ сделать это должно было бы изменить владельца Вашего сценария, чтобы базироваться и затем измениться, setuid укусил.
создайте сценарий яблока, как Вы описали, и сохраните его на свой Рабочий стол как shut_me_down
откройте терминал, CD к Вашей папке Desktop и работайте:
chmod -R u+s shut_me_down.app/
sudo chown -R root shut_me_down.app/
Теперь, когда Вы дважды щелкаете по shut_me_down значку на своем рабочем столе, он должен завершить работу без любых подсказок.
При поиске командной строки способ сделать это (вместо того, чтобы нажать на значок на рабочем столе) затем, Вы могли пропустить setuid/chmod вещь и вместо этого отредактировать Ваше sudoers использование файла
sudo visudo
Добавьте свой идентификатор пользователя как кого-то, который может выполнить sudo без пароля и затем попытаться запустить Ваш скрипт с помощью "sudo scriptname"
Вот ссылка, которая может помочь также: Создание исполняемого файла, выполненного как корень каждый раз - MacOSX.com