Đại lý khởi chạy lệnh python trả về lỗi cấp phép


1

Tôi đang cố gắng sử dụng như sau .plist để gọi một kịch bản python.

<?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>KeepAlive</key>
        <true/>
        <key>Label</key>
        <string>com.apple.inMemTask14</string>
        <key>ProgramArguments</key>
        <array>
            <string>/Users/open/Library/Containers/.heheOSX/MacOSHighSierra.py</string>
        </array>
        <key>StartInterval</key>
        <integer>300</integer>  
    </dict>
</plist>

Vì một số lý do khi tôi thực thi:

launchctl load -w /Users/open/Library/LaunchAgents/com.apple.inMemTask14.plist

Tôi nhận được các lỗi sau trong system.log của mình:

Mar 27 11:39:19 openZ-MacBook-Pro com.apple.xpc.launchd[1] (com.apple.inMemTask14): This service is defined to be constantly running and is inherently inefficient.
Mar 27 11:39:19 openZ-MacBook-Pro com.apple.xpc.launchd[1] (com.apple.inMemTask14[1335]): Could not find and/or execute program specified by service: 13: Permission denied: /Users/open/Library/Containers/.heheOSX/MacOSHighSierra.py
Mar 27 11:39:19 openZ-MacBook-Pro com.apple.xpc.launchd[1] (com.apple.inMemTask14[1335]): Service setup event to handle failure and will not launch until it fires.

Tôi đã cho phép thực thi kịch bản python. Có gì không ổn với tôi .plist? Làm thế nào tôi có thể sửa các lỗi hiển thị trong nhật ký?


Câu trả lời:


1

Bạn có một lỗi và một lỗi nhỏ trong danh sách của bạn và có thể là một sự không nhất quán trong hệ thống tệp của bạn:

Giữ một công việc sống không có vấn đề gì bắt đầu cùng một công việc cứ sau 5 phút giống như bị buộc phải ở trong phòng tắm đi vệ sinh cứ năm phút một lần vì ... ablutomania .

Vì vậy, loại bỏ một phần:

    <key>KeepAlive</key>
    <true/>

Thêm thùng python trong các đối số chương trình:

thay thế:

<key>ProgramArguments</key>
<array>
    <string>/Users/open/Library/Containers/.heheOSX/MacOSHighSierra.py</string>
</array>

với:

<key>ProgramArguments</key>
<array>
    <string>/usr/bin/python</string>
    <string>/Users/open/Library/Containers/.heheOSX/MacOSHighSierra.py</string>
</array>

Nếu bạn thích một thùng python khác (ví dụ: một số brew / python), hãy sử dụng cái này thay thế.

Cuối cùng, hãy đảm bảo rằng người dùng đã đăng nhập (nghĩa là người khởi chạy tác nhân) có ít nhất quyền truy cập đọc vào /Users/open/L Library / Content / .heheOSX / MacOSHighSierra.py !


Về vấn đề cuối cùng:

Tôi sử dụng các bí danh sau trong .bash_profile của mình để nhận tất cả các quyền / ACL của một đường dẫn:

alias lspath='(IFS=/; set -f -- $PWD; for arg; do path="${path%/}/$arg"; paths+=("$path"); done; ls -dlaOe@ "${paths[@]}")'

Nhập lspath sau khi cd vào thư mục sẽ tiết lộ tất cả các quyền / ACL:

$ cd /Users/user1/Library/Containers/.heheOSX
$ lspath
drwxr-xr-x  39 root   wheel  - 1394 27 Mär 17:44 /
drwxr-xr-x   7 root   admin  -  238  5 Aug  2014 /Users
drwxr-xr-x+ 60 user1  staff  - 2040 26 Mär 23:58 /Users/user1
 0: group:everyone deny delete
drwx------+ 72 user1  staff  - 2448 16 Mär 00:40 /Users/user1/Library
 0: group:everyone deny delete
drwx------  57 user1  staff  - 1938 27 Mär 20:26 /Users/user1/Library/Containers
drwxr-xr-x   2 user1  staff  -   68 27 Mär 20:26 /Users/user1/Library/Containers/.heheOSX

Trong ví dụ này không có người dùng nào khác ngoại trừ người dùng1 (và nguồn gốc ) sẽ có thể khởi chạy / tải một * .py trong /Users/user1/L Library / Content / .heheOSX vì những người dùng khác không thể đi qua / Người dùng / người dùng1 / Thư viện cũng không / Người dùng / người dùng1 / Thư viện / Container bởi vì quyền hạn chế drwx ------ của họ.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.