2

Я сделал скрипт для автоматического выключения компьютера. Проблема в том, что он всегда спрашивает пароль. Как это должно быть изменено?

do shell script "shutdown -h now" with administrator privileges and password

4 ответа4

1

Несмотря на угрозу безопасности, один из способов сделать это - сменить владельца скрипта на root и затем изменить бит setuid.

  1. создайте скрипт apple, как вы описали, и сохраните его на рабочем столе как shut_me_down

  2. откройте терминал, перейдите в папку Desktop и запустите:

    chmod -R u+s shut_me_down.app/
    sudo chown -R root shut_me_down.app/
    
  3. Теперь, когда вы дважды щелкнете по значку shut_me_down на рабочем столе, он должен выключиться без каких-либо подсказок.

Если вы ищете способ командной строки сделать это (вместо того, чтобы нажимать на значок на рабочем столе), тогда вы можете пропустить команду setuid/chmod и вместо этого отредактировать файл sudoers, используя

sudo visudo

Добавьте свой идентификатор пользователя, который может запускать sudo без пароля, а затем попробуйте запустить скрипт с помощью "sudo scriptname"

Вот ссылка, которая также может помочь: каждый раз запускать исполняемый файл от имени пользователя root - MacOSX.com

1

Ну вот:

do shell script "shutdown -h now" user name "me" password "mypassword" with administrator privileges
1

сделать сценарий оболочки "shutdown -h сейчас", теоретически будет .... но это приводит к предупреждению "не суперпользователя".

Насколько я могу судить, и это имеет смысл, вы должны быть суперпользователем, чтобы перезагрузить систему из командной строки. Почему это имеет смысл? потому что вы не хотите, чтобы кто-то перезагружал компьютер из сеанса ssh, если у него нет прав суперпользователя / root-доступа ...

Мне было бы интересно, если бы кто-нибудь нашел способ сделать это ....

Скотт точен ...

Скажите приложению "поиск" для перезагрузки - перезагрузите систему Скажите приложению "поиск" для выключения - выключение системы

Но это побудит пользователя сохранить любые несохраненные файлы ... Так что, если вы пытаетесь обойти запросы, это не сработает.

0

Разве это не сработает?

tell application "Finder" to shut down

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .