কীভাবে নির্দিষ্ট অ্যাপ্লিকেশনটির জন্য স্যান্ডবক্সের নিয়ম প্রয়োগ করা যায়?


9

আমি একজন স্যান্ডবক্স স্পেসিফিকেশন ফাইল (থেকে ফাইল দ্বারা অনুপ্রাণিত লিখেছিলেন /usr/share/sandboxমত ম্যানুয়াল এই ) এবং এখন আমি সঙ্গে স্যান্ডবক্স মধ্যে কিছু অ্যাপ্লিকেশান লঞ্চ করতে sandbox-exec $path_to_rules /Applications/$appname.app/Content/...। ফাইন।

অ্যাপটি নিয়মিত উপায়ে শুরু করা হলে (ফাইন্ডারের "ওপেন ..." ইত্যাদি ইত্যাদি) নিয়মগুলি প্রয়োগ করার কোনও উপায় আছে কি?

আমি বাইনারি ভিতরে র্যাপ স্ক্রিপ্ট দিয়ে ভিতরে অ্যাপ্লিকেশন প্রতিস্থাপন সম্পর্কে ভেবেছিলাম কিন্তু এটি অ্যাপ আপডেটের পরে ওভাররাইট করা হবে এবং প্রতিবার আমার এটি পুনরুদ্ধার করতে হবে।

উত্তর:


5

হ্যাঁ, আপনি বাইনারি পরিবর্তন করতে পারেন, বা এমনকি তথ্য.প্লেস্ট পরিবর্তন করতে পারেন, তবে আপনার তৈরি বাইনারি পরিবর্তনের মতো অ্যাপ্লিকেশনটি আপডেট হওয়ার সাথে সাথে আবার এটি করা দরকার। অ্যাপটি এমনভাবে পরিবর্তন না করে করার কোনও উপায় নেই যা আপডেট হওয়ার পরে ওভাররাইট হবে না।

লঞ্চ এজেন্টের সাহায্যে আপনি স্বয়ংক্রিয়ভাবে আপনার পরিবর্তনগুলি করতে পারেন।
নিম্নলিখিত ~/Library/LaunchAgentsহিসাবে সংরক্ষণ করুন com.yourname.youragent.plist, তারপর চালান launchctl load ~/Library/LaunchAgents/com.yourname.youragent.plist

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
        <key>Label</key>
        <string>com.yourname.youragent</string>
        <key>OnDemand</key>
        <true/>
        <key>Program</key>
        <string>cp</string>
        <key>ProgramArguments</key>
        <array>
            <string>/Users/grgarside/test/MyApp</string>
            <string>/Applications/MyApp.app/Contents/MacOS/</string>
        </array>
        <key>WatchPaths</key>
        <array>
            <string>/Applications/MyApp.app/Contents/MacOS/MyApp</string>
        </array>
    </dict>
</plist>

উপরের স্ক্রিপ্টটি WatchPathsকোনও পরিবর্তনের জন্য নজর রাখবে (এই ক্ষেত্রে এটি কোনও অ্যাপ্লিকেশনের জন্য বাইনারি দেখছে) এবং অ্যাপ্লিকেশনগুলিতে cpআপনার বাইনারি অনুলিপি করতে চালিত হবে run


আমি ইনস্টলড অ্যাপ্লিকেশনগুলিকে অটো-প্যাচিংয়ের কথা ভাবছি। প্রতিবার কিছু /Applicationsপরিবর্তন হলে স্বয়ংক্রিয়ভাবে আমার স্ক্রিপ্ট চালানোর কোনও উপায় আছে ? এবং কোনও অ্যাপ্লিকেশনকে নিজের মধ্যে পরিবর্তন করতে নিষেধ করতে হবে।
ইকুইডাময়েড

অ্যাকুইডাময়েড আপনি লঞ্চএজেন্টস ব্যবহার করতে পারেন; সম্পাদিত উত্তর
গ্রিগ

1
সুতরাং, আপনার উদাহরণে এটি cp /Users/.../MyApp /Applications...প্রতিবার মাই অ্যাপ্লিকেশন বাইনারি পরিবর্তন হওয়ার পরে চলবে ? ধন্যবাদ!
ইকুইডাময়েড

@ একুইডাময়েড হ্যাঁ, ঠিক!
grg
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.