আমি কি আসলে ব্যবহারকারীদের স্যুইচ না করে অন্য ব্যবহারকারী হিসাবে অ্যাপ্লিকেশন শুরু করতে পারি?


17

অন্য ব্যবহারকারী হিসাবে কোনও অ্যাপ্লিকেশন শুরু করার কোনও উপায় কি যাতে শুরু করা অ্যাপ্লিকেশনটি অন্য ব্যবহারকারীর পছন্দ / ইতিহাস / সংস্থান এবং অন্যান্য ব্যবহার করতে পারে?

উদাহরণস্বরূপ: আমি এলিস হিসাবে লগ ইন করেছি এবং আমি ফায়ারফক্সকে বব হিসাবে শুরু করতে চাই, সুতরাং ফায়ারফক্স অ্যালিসের পরিবর্তে ববের ব্রাউজিংয়ের ইতিহাস প্রদর্শন করবে।

আমি চেষ্টা করেছিলাম

$ su Bob
$ open -a Firefox

কিন্তু কোন আপাত প্রভাব সঙ্গে; ক্রিয়াকলাপের মনিটরের সত্যতা হিসাবে দেখা যায় যে ফায়ারফক্স প্রক্রিয়াটি অ্যালিস দ্বারা পরিচালিত হচ্ছে - বব নয়।

আমি বুঝতে পারি আমার বব এর লগইন শংসাপত্রের প্রয়োজন হবে, তবে এটি কোনও সমস্যা নয়।

উত্তর:


16

কমান্ড লাইন থেকে আপনাকে ইউনিক্স এক্সিকিউটেবলের সন্ধান করতে হবে এবং এটি সুডো ব্যবহার করে চালাতে হবে :

$ sudo -u Bob /Applications/Firefox.app/Contents/MacOS/Firefox 

… বা একই সাথে: (তবে এটির জন্য আপনাকেও মূলের জন্য একটি পাসওয়ার্ড সেট আপ করতে হবে - যা আমি প্রস্তাব করি না)

$ su Bob
$ /Applications/Firefox.app/Contents/MacOS/Firefox

(… বা উপরের এক লাইনে :)

$ su Bob -c /Applications/Firefox.app/Contents/MacOS/Firefox

অতীতে, পিপিসি ম্যাকের সবচেয়ে সহজ উপায় ছিল সিউডো ব্যবহার করা , তবে এটি দীর্ঘকাল বন্ধ ছিল । এটি সিউডোর আইকন বা উইন্ডোটিতে অ্যাপ্লিকেশন আইকনটি ফেলে দেওয়া হয়।


আহ, কীটি ছিল ইউনিক্স এক্সিকিউটেবলের সন্ধান করতে। এটি suযদি না চায় তবে এটিও কাজ করে sudo। ধন্যবাদ!
জারি কেইনেনেন

হুম, গুগল ক্রোম চালানোর চেষ্টা করার সময় আমি এটি পেয়েছি:Trace/BPT trap: 5
ভোজসিচ বেদনারস্কি

sudoপদ্ধতির ব্যবহার করার সময় আমি লগইন ব্যর্থতাগুলি পাই যদিও আমি অন্য ব্যবহারকারীর জন্য সঠিক পাসওয়ার্ড ব্যবহার করি। suঅন্যদিকে কাজ করে (রুট সেটের জন্য কোনও পাসওয়ার্ড নেই)
ল্যাপল্যান্ডসকোহান

@ ল্যাপল্যান্ডস্কোহান সুডো বর্তমান ব্যবহারকারীর পাসওয়ার্ড
নিয়েছেন

1
@ evan.bovie YTes দেখায় তারা সুরক্ষার কথা ভেবেছে
user151019

4

সমস্ত অ্যাপ্লিকেশনের জন্য কেন কাজ করে না তার জন্য /apple//a/102105/1860 দেখুন su

প্রবর্তিত এর bsexec

সাম্প্রতিক সংস্করণগুলির launchdঅন্য ব্যবহারকারীর সেশনের মধ্যে লঞ্চ অ্যাপ্লিকেশনগুলির ক্ষমতা রয়েছে; যদিও অ্যাপল ইঞ্জিনিয়াররা এর সাধারণ ব্যবহারের সুপারিশ করেনি।

যথাযথ ব্যবহারকারীর সেশনটি লক্ষ্যবস্তু করার জন্য লঞ্চকটিতেbsexec বিকল্পটি ব্যবহার করুন :

 bslist [PID | ..] [-j]
          This prints out Mach bootstrap services and their respective states. While the namespace
          appears flat, it is in fact hierarchical, thus allowing for certain services to be only avail-
          able to a subset of processes. The three states a service can be in are active ("A"), inactive
          ("I") and on-demand ("D").

          If [PID] is specified, print the Mach bootstrap services available to that PID. If [..] is
          specified, print the Mach bootstrap services available in the parent of the current bootstrap.
          Note that in Mac OS X v10.6, the per-user Mach bootstrap namespace is flat, so you will only
          see a different set of services in a per-user bootstrap if you are in an explicitly-created
          bootstrap subset.

          If [-j] is specified, each service name will be followed by the name of the job which regis-
          tered it.

 bsexec PID command [args]
          This executes the given command in the same Mach bootstrap namespace hierachy as the given
          PID.

 bstree [-j]
          This prints a hierarchical view of the entire Mach bootstrap tree. If [-j] is specified, each
          service name will be followed by the name of the job which registered it.  Requires root priv-
          ileges.

প্রস্তাবিত পন্থাটি হ'ল একটি লঞ্চযুক্ত কাজের টিকিট লিখুন এবং ম্যাকটি পুনরায় চালু করুন - বা ব্যবহারকারীকে লগ-আউট করতে এবং আবার ফিরে আসতে বলুন।


1

আরও একটি পদ্ধতি:

# chown someuser command
# chmod u+s command
$ ./command

উইসোটাকে ধন্যবাদ: http://www.qtcentre.org/threads/4730-Linux-Bash-Run-a-command-as-another-user

(আমার বিশেষ পরিস্থিতিতে কাজ করে এমন কোনও কিছুর জন্য প্রচুর সময় ব্যয় করেছেন, আমি মনে করি যে আমি সম্পদ ছড়িয়ে দেব)


0

আপনি ssh প্রয়োজন। অর্থাৎ ssh username@123.456.00। যেমনটি আপনি বলেছেন, আপনার ব্যবহারকারীর জন্য পাসওয়ার্ড প্রয়োজন। তারপরে আপনি যা চাইছেন তা করতে পারেন। আপনাকে সিস্টেম প্রেফস> ভাগ করে নেওয়া: এর অধীনে দূরবর্তী লগইন সক্ষম করতে হবে:
রিমোট লগইন পছন্দ
তারপরে, আপনি ঠিক করতে পারেন open -a Firefoxএবং ফায়ারফক্স আপনার হিসাবে নয়, অন্য ব্যবহারকারী হিসাবে খুলবে।


দুর্ভাগ্যক্রমে আমি পেয়েছি: LSOpenURLsWithRole() failed for the application /Applications/Firefox.app with error -10810.চেষ্টা করার সময় open -a Firefox: - |
জারি কেইনেনেন

@ কোইইউ চেষ্টা করুনsudo open -na Firefox
ডেভিজেক

এটি উপরের মতো ব্যর্থ হয়েছে: - / (ইউনিক্স এক্সিকিউটেবলের পথ ব্যবহার করেও ভিন্নভাবে ব্যর্থ হয়))
জারি কেইনেনেন

1
এসএসএইচ অধিবেশন থেকে শুরু হওয়া প্রক্রিয়াগুলির জিইউতে অ্যাক্সেস নেই। এটি যদি আপনার সিস্টেমে কাজ করে তবে আমার সন্দেহ হয় আপনি কোনও পর্যায়ে কিছু নিম্ন-স্তরের কনফিগারেশন পরিবর্তন করেছেন।
টোবিয়াস

1
@ ডেভিজেগিক কিন্তু আপনি ওপেন যেমনটি চেয়েছিলেন, বর্তমানে জিইআইআই রয়েছে তার ব্যতীত অন্য কোনও ব্যবহারকারীর মধ্যে আপনি কি এসএসএইচ করেছেন?
টোবিয়াস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.