launchd 无法访问外部驱动器

launchd 无法访问外部驱动器

我正在尝试自动执行一个脚本来备份我的 Mac mini(macOS 11.4)上的几个目录。我想要备份的一些文件存储在安装到 /Volumes/SHASTA 的外部驱动器上。我编写了一个快速启动脚本,只是为了看看它是否可以访问该目录,但它似乎出错了。以下是我写的内容:

<?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>local.resticd</string>
        <key>StandardOutPath</key>
        <string>/Users/myname/test.txt</string>
        <key>StandardErrorPath</key>
        <string>/Users/myname/test2.txt</string>
        <key>ProgramArguments</key>
        <array>
            <string>/usr/bin/caffeinate</string>
            <string>/bin/ls</string>
            <string>/Volumes/SHASTA</string>
        </array>
        <key>WorkingDirectory</key>
        <string>/Users/myname/restic</string>
        <key>StartCalendarInterval</key>
        <dict>
            <key>Weekday</key>
            <integer>0</integer>
            <key>Hour</key>
            <integer>23</integer>
            <key>Minute</key>
            <integer>0</integer>
        </dict>
    </dict>
</plist>

不幸的是,我从该脚本获得的唯一输出是:

ls: SHASTA: Operation not permitted

在标准错误输出中。我甚至不确定要尝试获取 launchd 权限来访问此驱动器,因为它已经在 root 权限下运行。

答案1

我解决了这个问题。问题最终是 caffeinate 可执行文件(我之所以使用它,是因为当我稍后添加备份脚本时,我想让机器不进入睡眠状态)没有完整的磁盘权限。这阻止了它访问外部驱动器。在设置中将 caffeinate 添加到完整磁盘权限列表中解决了这个问题。

相关内容