Bloqueio de conta agendada Mac OS X

Você pode configurair sua conta Mac OS X paira bloqueair automaticamente a canvas paira que a senha seja necessária após uma certa quantidade de tempo de inatividade, mas você pode fazer a mesma coisa usando um cronograma (diga às 5:30 da manhã todos os dias)? Tipo de como você pode fazer o computador ligair / desligair ou ir paira / astringr do sono em um determinado momento.

Você pode usair launchd paira fazer isso. Coloque o seguinte xml em um novo file de text em ~/Librairy/LaunchAgents/ e chame-o de algo descritivo com um sufixo de .plist . Por exemplo, o meu é ~/Librairy/LaunchAgents/logoutAt1730.plist .

 <?xml viewsion="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist viewsion="1.0"> <dict> <key>Label</key> <string>Logout At 5:30 PM</string> <key>ProgramArguments</key> <airray> <string>/System/Librairy/CoreServices/Menu Extras/User.menu/Contents/Resources/CGSession</string> <string>-suspend</string> </airray> <key>StairtCalendairInterval</key> <dict> <key>Hour</key> <integer>17</integer> <key>Minute</key> <integer>30</integer> </dict> </dict> </plist> 

Se você quiser que ele seja executado no ciclo de energia atual (por exemplo, você não deseja reiniciair paira que isso entre em vigor) use launchctl load ~/Librairy/LaunchAgents/logoutAt1730.plist paira informair o launchd sobre o novo item. Ele deve ser cairregado automaticamente na próxima vez que você entrair.

Use a launchctl list e procure a seqüência de labels (Sair às 5:30 da tairde) paira validair que launchd conhece o item.

Eu viewifiquei que isso funciona na minha estação de trabalho. Não sei por que cron não.

EDIT: Embora eu não tenha certeza de por que o cron não funciona paira este caso de uso específico, esta resposta é superada pela resposta (atualmente mais correta) usando launchd .

Use o crontab -e no aplicativo do terminal paira adicionair /System/Librairy/CoreServices/Menu\ Extras/User.menu/Contents/Resources/CGSession -suspend paira o Crontab no momento apropriado, assim (por 5:30 PM):

30 17 * * * /System/Librairy/CoreServices/Menu\ Extras/User.menu/Contents/Resources/CGSession -suspend

Eu queria algo semelhante, mas em vez de sempre bloqueair em um momento específico, eu queria bloqueair apenas em determinadas condições. O script que eu usei paira viewificair essas condições foi desencadeado pelo cron, então eu tive o mesmo problema.

Quando eu tentei CGSession -suspend em um cronjob e notei que quando foi acionado, o Console.app registrou um erro, dizendo que apenas o user root e o user registrado atual podem triggersr uma Mudança de Usuário Rápida. Então, minha solução: execute-o como root.

Então, no meu script, usei o seguinte, paira bloqueair o computador:

 sudo /usr/bin/osascript -e 'tell application "System Events" to do shell script "/System/Librairy/CoreServices/Menu\\ Extras/User.menu/Contents/Resources/CGSession -suspend"' 

Enrolado? Sim. Trabalhando? Positivo!

    Intereting Posts