স্ক্রিপ্ট ব্যবহার করে এটি সম্ভব।
প্রথমত, আপনার ওএস এক্স মেনু বারে স্ক্রিপ্ট মেনু সক্ষম করা উচিত। "স্ক্রিপ্ট মেনু" বিভাগটি এখানে পড়ুন: স্ক্রিপ্ট মেনু সক্ষম করুন
এখন আপনার লাইব্রেরি / স্ক্রিপ্টস ফোল্ডারটি খুলুন এবং এই বিষয়বস্তুগুলির সাথে "রান_উইথ_পাসওয়ার্ড.আরবি" নামে একটি ফাইল তৈরি করুন (আপনার ব্যবহারকারীর নাম "জোন্ডো" পরিবর্তন করুন):
#!/usr/bin/env ruby
# run an app at lower privilege
require 'etc'
require 'find'
# Note: anyone with sudo access will be able to run as this user. But they could do that anyway.
# run 'id' at the terminal to find out what your username is.
RUN_USER = 'johndoe'
def get_root_info
root_entry = Etc.getpwnam('root')
return root_entry.uid, root_entry.gid
end
ROOT_UID, ROOT_GID = get_root_info
def ensure_root
Process.uid = ROOT_UID
Process.gid = ROOT_GID
end
def print_user_info
[
[:uid, Process.uid],
[:gid, Process.gid],
[:euid, Process.euid],
[:egid, Process.egid],
].each do |arr|
$stderr.puts arr.inspect
end
end
def set_effective(euid, egid)
$stderr.puts "setting effective to #{[euid, egid].inspect}" if $DEBUG
# must set group first
Process.egid = egid
Process.euid = euid
end
def do_privileged(&block)
orig_euid = Process.euid
orig_egid = Process.egid
begin
$stderr.puts "raising privileges" if $DEBUG
set_effective(ROOT_UID, ROOT_GID)
yield orig_euid, orig_egid
ensure
$stderr.puts "lowering privileges" if $DEBUG
set_effective(orig_euid, orig_egid)
end
end
# must be called after ROOT_UID, ROOT_GID are set
def chmod_files_in_dir(mode, dir)
mode_str = nil
case mode
when Integer
mode_str = '%o' % mode
when String
mode_str = mode
else
raise TypeError
end
chmod_proc = proc do
Find.find(dir) {|entry|
if File.directory?(entry) and entry != dir
Find.prune # don't recurse into subdirs
elsif File.file?(entry)
$stderr.puts "chmod #{mode_str} #{entry}" if $DEBUG
system 'chmod', mode_str, entry
end
}
end
# assume that if dir is owned by root, the executables are also.
if File.stat(dir).uid == ROOT_UID
do_privileged(&chmod_proc)
else
chmod_proc.call
end
end
def main(argv)
# Important: this is to abort if we're not running as root.
ensure_root
app_path = argv.shift or raise "Need path to .app file, e.g. /Applications/Mail.app"
app_macos_dir = File.join(app_path, 'Contents/MacOS')
File.directory?(app_path) or raise "#{app_path} is not an app bundle"
File.directory?(app_macos_dir) or raise "#{app_path} bundle doesn't have expected MacOS structure"
pw_entry = Etc.getpwnam(RUN_USER)
run_uid = pw_entry.uid
run_gid = pw_entry.gid
if $DEBUG
$stderr.puts [:run_uid, run_uid].inspect
$stderr.puts [:run_gid, run_gid].inspect
print_user_info
end
# Effectively become RUN_USER
set_effective(run_uid, run_gid)
if $DEBUG
print_user_info
end
begin
chmod_files_in_dir('+x', app_macos_dir)
# 'open' is asynchronous, so the ensure will run immediately after, and before the app exits.
$stderr.puts "Running app: #{app_path}" if $DEBUG
system 'open', app_path
ensure
chmod_files_in_dir('-x', app_macos_dir)
end
end
if __FILE__ == $0
$DEBUG = false
main(ARGV)
end
এরপরে, স্ক্রিপ্ট সম্পাদকটি শুরু করুন এবং এই কোডটিতে পেস্ট করুন (আবার আপনার ব্যবহারকারীর নামতে জয়ন্দো পরিবর্তন হচ্ছে):
do shell script "ruby /Users/johndoe/Library/Scripts/run_with_password.rb /Applications/Mail.app" with administrator privileges
লাইব্রেরী / স্ক্রিপ্টগুলিতে ফাইলটিকে "মেল_উইথ_প্যাসওয়ার্ড" হিসাবে সংরক্ষণ করুন, ফাইল ফর্ম্যাটটি "স্ক্রিপ্ট" কিনা তা নিশ্চিত করে।
এখন আপনার "স্ক্রিপ্ট মেনুতে" মেইল_পথ_পাসওয়ার্ড "উপস্থিত হবে। যতবার আপনি এটি চালান, এটি আপনাকে আপনার পাসওয়ার্ডের জন্য জিজ্ঞাসা করবে (ঠিক কিছু ইনস্টলারের মতো)। এটি চলমান হয়ে যাওয়ার পরে এটি নিয়মিত মেল অ্যাপ্লিকেশনটিতে অ্যাক্সেস অক্ষম করে। সুতরাং স্ক্রিপ্টটি একবার চালান, তারপরে মেল অ্যাপটি চালানোর চেষ্টা করুন। এটি চলবে না। মনে রাখবেন এর অর্থ আপনার মেশিনে থাকা সমস্ত ব্যবহারকারীকে কেবল আপনার ব্যবহারকারী নয়, সরাসরি মেল চালানো থেকে বিরত রাখা হবে।
আপনি যদি কখনও মেলকে আবার স্বাভাবিকভাবে চলার অনুমতি দিতে চান তবে টার্মিনালে এই কমান্ডটি চালান:
sudo chmod +x /Applications/Mail.app/Contents/MacOS/Mail
আপনি "sudo" বাদ দিতে সক্ষম হতে পারে। আপনি "অপারেশন অনুমোদিত নয়" পেলে sudo ব্যবহার করুন। নোট করুন যে সুডো আপনাকে সুবিধাপ্রাপ্ত অপারেশনের অনুমতি দেওয়ার জন্য আপনার পাসওয়ার্ডের জন্য জিজ্ঞাসা করবে।
আদেশ সহকারে
- Chmod করার জন্য যদি আপনার উপরে "sudo" কমান্ডের প্রয়োজন না হয়, তার অর্থ একজন সচেতন ব্যবহারকারী কীভাবে আবার মেল অ্যাপটিকে সক্ষম করতে পারেন তা নির্ধারণ করতে সক্ষম হতে পারেন। আপনি ম্যাকওএস / মেল ফাইলের মালিককে রুটে পরিবর্তন করে সুরক্ষা জোরদার করতে পারেন। এটি পাঠকের অনুশীলন হিসাবে ছেড়ে গেছে।
- যদি কেউ আপনার কম্পিউটারে মেল অ্যাপ্লিকেশনটি অনুলিপি করতে সক্ষম হয় (যেমন ইউএসবি ড্রাইভের মাধ্যমে) তবে তারা আপনার মেইলে অ্যাক্সেস পেতে পারে।
- রুবি স্ক্রিপ্টটি বেশিরভাগ ওএস এক্স অ্যাপ্লিকেশন বান্ডিলের জন্য কাজ করে। আমি রুবি স্ক্রিপ্টটি টুইট করার প্রস্তাব দিই না যতক্ষণ না আপনি সত্যিই জানেন যে আপনি কী করছেন কারণ এটি রুট হিসাবে কিছু নির্দিষ্ট কাজ করছে (অধিকারী ব্যবহারকারী)। আপেলসক্রিপ্ট কোডটি টিকিয়ে রাখা নিরীহ হতে হবে; তবে আপনার অ্যাপ্লিকেশনটি সরাসরি চালানোর যোগ্য করতে chmod কমান্ডটি কীভাবে সামঞ্জস্য করবেন তা আপনার জানা উচিত।
- অ্যাপলসক্রিপ্ট ফাইলের অ্যাপ্লিকেশন পাথটিতে ফাঁকা জায়গা বা অন্যান্য বিশেষ অক্ষর থাকলে আপনার পুরো পথটির চারপাশে একক উদ্ধৃতি দেওয়ার মতো কিছু করতে হবে।
- সম্পাদনা: ব্যবহারকারী অস্টিন পরামর্শ দিয়েছিলেন যে এই পদ্ধতিটি। এমএলএক্স ফাইলগুলি রক্ষা করে না। আমি আসলে মেল অ্যাপ ব্যবহার করি না তাই আমি ডেটা স্টোরেজটির সাথে পরিচিত নই। অনুরূপ সমস্যাগুলি সমস্ত অ্যাপ্লিকেশনগুলিতে প্রযোজ্য - কারণ এই সমাধানটি ব্যবহারকারী ডেটা গোপন করে না।
প্যারানয়া
রুবি জানেন এমন কেউ যদি আপনার লগইন করা ব্যবহারকারীর অ্যাক্সেস পান তবে তারা রুবি স্ক্রিপ্টটি এমনভাবে সংশোধন করতে পারে যা আপনি স্ক্রিপ্টটি চালানোর সময় সমস্ত ধরণের ধ্বংসযজ্ঞকে ধ্বংস করে দেয়, কারণ এটি সময়ের অংশ হিসাবে মূল হিসাবে চালিত হয়। যদি আপনি মনে করেন এটি ঘটতে পারে তবে আপনার স্ক্রিপ্টটি কেবল রুট দ্বারা লিখনযোগ্য করা উচিত। আপনাকে অবশ্যই নিশ্চিত করতে হবে যে কেউ স্ক্রিপ্টটি তাদের নিজের সাথে প্রতিস্থাপন করবেন না - ফোল্ডারটি যদি আপনার দ্বারা লিখিত হয় তবে তারা এটি করতে পারে। আপনি যদি এই সতর্কতাগুলি দেখে ভয় পেতে শুরু করেন এবং কীভাবে নিজেকে রক্ষা করতে জানেন না, আপনার সম্ভবত এই সমাধানটি ভুলে যাওয়া উচিত এবং কম্পিউটারটি ছেড়ে যাওয়ার সময় আপনার পর্দা লক করা উচিত।
What's the best way to protect my email from snooping?
এবং এর উত্তরটি হ'ল আপনার অ্যাকাউন্টটি অননুমোদিত ব্যবহারকারীদের সম্পূর্ণরূপে রোধ করা ভাল - উদাহরণস্বরূপ, স্ক্রিনসেভারটি নিষ্ক্রিয় করার জন্য পাসওয়ার্ডের প্রয়োজন হয় বা ঘুম থেকে সিস্টেম জাগ্রত করার পরে।