执行.plist文件时出错路径具有错误的所有权/权限

viv*_*vek 46 terminal plist

在执行plist文件时出错terminal

错误: Path had bad ownership/permissions

1)我创建了一个plist文件xcode 6,并将plist文件保存在路径中library/launchdaemons/myfile.plist

myfile.plist

<?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>myfile</string>
    <key>ProgramArguments</key>
    <array>
        <string>/Desktop/myscript.sh</string>
    </array>
    <key>StartCalendarInterval</key>
    <array>
        <dict>
            <key>Hour</key>
            <integer>14</integer>
            <key>Minute</key>
            <integer>35</integer>
        </dict>
    </array>
</dict>
</plist>
Run Code Online (Sandbox Code Playgroud)

2)在终端i中使用sudo launchctl load命令加载plist文件

sudo launchctl load /library/launchdaemons/myfile.plist
Run Code Online (Sandbox Code Playgroud)

3)之后我得到这个错误

/Library/LaunchDaemons/myfile.plist: Path had bad ownership/permissions
Run Code Online (Sandbox Code Playgroud)

我哪里错了?

fiv*_*ubs 73

尝试改变的.plist文件的所有权,注意到这里.

sudo chown root /Library/LaunchDaemons/myfile.plist
sudo chgrp wheel /Library/LaunchDaemons/myfile.plist
Run Code Online (Sandbox Code Playgroud)

或者更简单地说,在一个命令中更改用户和组:

sudo chown root:wheel /Library/LaunchDaemons/myfile.plist
Run Code Online (Sandbox Code Playgroud)

值得注意的是LaunchDaemons,出于安全原因,这些根不能是世界可写的:

sudo chmod o-w /Library/LaunchDaemons/*
Run Code Online (Sandbox Code Playgroud)


Lia*_*ond 7

除了上述之外

sudo chmod 600 /directoryToFile/filename.plist
Run Code Online (Sandbox Code Playgroud)

例如:

sudo chmod 600 com.backup.plist
Run Code Online (Sandbox Code Playgroud)

或者

sudo chmod 600 /Library/LaunchDaemons/myfile.plist
Run Code Online (Sandbox Code Playgroud)

  • 640 也可以(即 g+r) (2认同)

Luc*_*ier 6

plist文件必须由root和group wheel拥有,仅为rw所有者.所以root:wheel 600

  • 这对于解决问题至关重要 (2认同)