使用launchd激活文件所有者更改时的守护程序

时间:2019-03-07 13:16:42

标签: macos macos-mojave launchd

我试图获得一个“守护程序”(实际上只是一个脚本,而不是一个后台进程),以便在文件(特别是/dev/console)更改所有者(即,当另一个用户控制了)时激活控制台)在MacOS Mojave上。

我正在尝试通过运行launchd并使其监视该文件的更改来做到这一点。我尝试使用WatchPaths来执行此操作,如下面的脚本所示,但是显然,它仅注意到“创建,删除和写入此文件”,而不是chown。下面是脚本,以及更多的背景故事。有关如何执行此操作的任何想法?

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>LoginScripts.blockyoutube.sh</string>
    <key>ProgramArguments</key>
    <array>
        <string>/Users/Shared/blockyoutube.sh</string>
    </array>
    <key>WatchPaths</key>
    <array>
        <string>/dev/console</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
    <key>StandardOutPath</key>
        <string>/var/log/blockyoutube.log</string>
    <key>StandardErrorPath</key>
        <string>/var/log/blockyoutube.log</string>
</dict>
</plist>

背景故事

我真正想做的是阻止我的孩子的帐户进入YouTube ...而不是我妻子的帐户在同一台​​计算机上。从理论上讲,系统偏好设置->家长控制应该可以做到这一点-直到有人启动Chrome并将DNS查找回传到8.8.8.8为止。

我想解决此问题的唯一方法是不让OS DNS查询失败,因此Chrome不会尝试这样做,因此我正在更新/ etc / hosts以指向localhost并刷新控制台所有者更改时的DNS。也欢迎使用其他解决方案来解决此背景问题,但是似乎确实应该有一种方法可以使launchd监视文件所有者的更改。

0 个答案:

没有答案