এসএসএইচ থেকে ম্যাক গ্রাফিকাল লগইন প্ররোচিত করুন


16

আমি কীভাবে এসএসএইচ থেকে ম্যাক গ্রাফিকাল লগইনকে প্ররোচিত করব? loginwindowম্যাক ওএস এক্স-এ অ্যাডমিন হিসাবে দূরবর্তীভাবে এসএসএইচ-এর মাধ্যমে লগ ইন করার সাথে সাথে কোনও কমান্ড চালিয়ে ব্যবহারকারীর সেশনটি প্রক্রিয়া শুরু করার কোনও উপায় আছে কি ?

যখন মেশিনটি লগইন উইন্ডোতে থাকে (বর্তমানে কোনও ব্যবহারকারী লগইন নেই), আমি এটি ব্যবহারকারীর সেশনটি খুলতে চাই যেন আমি ব্যবহারকারীর নামটিতে ক্লিক করে পাসওয়ার্ড প্রবেশ করিয়েছি।

জিইউআই-র স্ক্রিপ্টিংয়ের সাথে জড়িত না এমন সমাধানগুলি খুব বেশি পছন্দ করা হয় তবে এই অ্যাপল কেবি পৃষ্ঠাটি সেই রুটে যাওয়ার জন্য তাদের পক্ষে আগ্রহী হতে পারে।

উত্তর:


4

পাসওয়ার্ড না জানা জিনিসগুলিকে জটিল করে তোলে তবে সম্ভবত সমাধানটি হ'ল: ব্যবহারকারীর পাসওয়ার্ড অস্থায়ীভাবে ফাঁকা রাখা কি সম্ভব? (এবং তারপরে এটি আগে যা ছিল তা এটি পুনরায় সেট করুন))

শুরু হিসাবে:

প্রথমে প্রদর্শন করার জন্য লগইন উইন্ডোটি পান। কেবলমাত্র বর্তমান ব্যবহারকারীর লগ আউট করুন, দ্রুত ব্যবহারকারী স্যুইচিং ব্যবহার করুন বা এসএসএইচ ব্যবহার করুন:

সিডি "/ সিস্টেম / গ্রন্থাগার / কোর সার্ভিস / মেনু অতিরিক্ত / ইউজার.মেনু / বিষয়বস্তু / সংস্থান /"
sudo ./CGSession- সাসপেন্ড

অথবা, এখনই কোনও নির্দিষ্ট ব্যবহারকারীর কাছে যেতে, যা সম্ভবত লগইন উইন্ডোটি প্রদর্শন করবে (এটি হঠাৎ আমার 10.5 চিতাবাঘের সাথে আর কাজ করবে না):

sudo ./CGSession- সুইচটো ToUserID 501

এখন যা প্রদর্শিত হয়েছে তা সিস্টেমের পছন্দসমূহের উপর কিছুটা নির্ভর করে তবে আসুন এটি ধরে নেওয়া যাক এটি ব্যবহারকারীর আইকন এবং তাদের নাম। একটি নাম সক্রিয় করতে আমাদের প্রথম অক্ষর লিখতে হবে। তারপরে, রিটার্নের পরে, পাসওয়ার্ড প্রম্পট প্রদর্শন করে। বিকল্পভাবে যে কোনও একটি নাম নির্বাচন করতে পারে (যেমন তীর ডাউন চেপে) এবং তারপরে যেকোন ব্যবহারকারীর নাম এবং তার পাসওয়ার্ড উভয়ের জন্য অনুরোধ জানাতে অপশন-রিটার্ন টিপুন । আমি জানি না যে কীভাবে কোনও পর্দা প্রদর্শিত হয় তা বলতে পারি, তবে আসুন পরে এটি সংরক্ষণ করুন ...

সুতরাং, প্রথম (এলোমেলো) ব্যবহারকারীর নাম নির্বাচন করতে এবং অপশন-রিটার্ন টিপতে একটি নির্দিষ্ট ব্যবহারকারীর নাম টাইপ করুন, রিটার্নটি চাপুন এবং পাসওয়ার্ডটি টাইপ করুন:

sudo osascript-e "সিস্টেম ইভেন্টস" অ্যাপ্লিকেশনটি বলুন
  কী কোড 125
  কীস্ট্রোক রিটার্ন ডাউন বিকল্প ব্যবহার করে
  কীস্ট্রোক "ব্যবহারকারীর নাম"
  দেরি 1.0
  কীস্ট্রোক রিটার্ন
  দেরি 1.0
  কীস্ট্রোক "পাসওয়ার্ড"
  দেরি 1.0
  কীস্ট্রোক রিটার্ন
শেষ বলুন '

উপরেরটি কিছু ত্রুটি দেখায়, যা আমি যতদূর বলতে পারি ব্যবহার সীমাবদ্ধ করে না:

ওসাস্ক্রিপ্ট [285]: 3891612: (কানেক্টেড এবং চেক) অবিশ্বস্ত অ্যাপ্লিকেশনগুলি নেই 
    লগইনের আগে উইন্ডো সার্ভারের সাথে সংযোগ স্থাপন বা লঞ্চ করার অনুমতি দেওয়া হয়েছে।
_Register অ্যাপ্লিকেশন (), এর সাথে ডিফল্ট সংযোগ স্থাপন করতে ব্যর্থ
    উইন্ডো সার্ভার, _সিজিএসডিফল্ট সংযোগ () হল ন্যূন।

বিকল্পভাবে, " অ্যাপল রিমোট ডেস্কটপ মাধ্যমে লগইন উইন্ডো স্ক্রিপ্ট " থেকে ভাষা নির্দিষ্ট স্ক্রিপ্ট ব্যবহার করুন (সম্ভবত একদিন সেই সাইটের মন্তব্যে আরও ভাল সমাধান দেখাবে):

প্রক্রিয়া বলুন "সিকিউরিটি এজেন্ট"
  উইন্ডো 1 এর 1 গোষ্ঠীর পাঠ্য ক্ষেত্র 1 এর মান সেট করুন "ব্যবহারকারীর নাম"
  উইন্ডো 1 এর 1 গোষ্ঠীর পাঠ্য ক্ষেত্রের 2 মান "পাসওয়ার্ড" এ সেট করুন
শেষ বলুন
অ্যাপ্লিকেশন প্রক্রিয়া "সিকিউরিটি এজেন্ট" এর উইন্ডো 1 এর "লগ ইন" বোতামটি ক্লিক করুন

কিন্তু প্রধান সমস্যা হল: এই এখনও পাসওয়ার্ড প্রয়োজন । তবে: অবশ্যই যখন কোনও ব্যবহারকারীর ফাঁকা পাসওয়ার্ড থাকে তখন কোনও পাসওয়ার্ডের প্রয়োজন হয় না। আসলে, খালি পাসওয়ার্ডের জন্য কেবল ব্যবহারকারীর আইকনটিতে ক্লিক করা যা প্রয়োজন তা হল। সুতরাং, যদি অ্যাপলস্ক্রিপ্ট ব্যবহার করে কীস্ট্রোক প্রেরণযোগ্যতা গ্রহণযোগ্য হয়, তবে সম্ভবত "সমস্ত" যা খুঁজে বের করার বাকি রয়েছে:

  • সেই পাসওয়ার্ড না জেনে সেশন শুরু (বা পুনরায় শুরু) করার অনুমতি দেওয়ার জন্য কি কোনও ব্যবহারকারীর পাসওয়ার্ড অস্থায়ীভাবে ফাঁকা রাখা সম্ভব ...?

  • কেউ কি অ্যাপলস্ক্রিপ্টের ত্রুটি-প্রমাণ তৈরি করতে পারে? ভালো লেগেছে:

    • লগইন উইন্ডোটি দৃশ্যমান কিনা তা কীভাবে বলব ? (হয়তো stat -f%Su /dev/console, সাহায্য করতে পারেন যে উৎপাদনের হিসাবেroot যখন লগ-ইন উইণ্ডোর প্রদর্শন করা হয়)
    • কোন লগইন উইন্ডো প্রদর্শিত হয় তা কীভাবে বলবেন ? (যেমন: একটি আইকন এবং লগইন নাম দেখায়, বা একটি ড্রপডাউন তালিকা, বা সম্ভবত কোনও পাসওয়ার্ড প্রম্পট যদি নির্দিষ্ট কিছু ব্যবহারকারীর স্যুইচ করতে বেছে নেওয়া হয়?)
    • বিলম্ব থেকে মুক্তি পান।
    • এই ত্রুটি বার্তা সম্পর্কে কি?

(পরীক্ষার জন্য একটি নোট: যখন স্ক্রিন ভাগ মনে হয় ব্যবহার করে পক্ষপাত সেটিং যখন কম্পিউটারের নিয়ন্ত্রণ: পাসওয়ার্ড এনক্রিপ্ট এবং কি-স্ট্রোক অন্তর্ভুক্ত শুধুমাত্র এছাড়াও সংযোগ বজায় যখন লগইন উইন্ডো প্রদর্শন করা হবে, অথবা যখন ব্যবহার করে একটি ব্যবহারকারী পর সফলভাবে লগইন করেছে। এনক্রিপ্ট সমস্ত নেটওয়ার্ক ডেটা তখন আমার ম্যাকের প্রত্যেকবার লগইন প্রদর্শিত হয় বা কোনও ব্যবহারকারী স্যুইচ করা থাকলে স্ক্রিন ভাগ করে নেওয়ার সংযোগটি পুনরায় প্রতিষ্ঠিত করা দরকার)


এটি একটি ভাল শুরু, তবে এটিতে দুটি সমস্যা রয়েছে। প্রথমত, আপনি লগইন উইন্ডোতে থাকলে এটি কাজ করে না, যা আমি চাইছিলাম এবং এটি একটি পাসওয়ার্ড চেয়েছে, যা আমি পছন্দ করি না। এটি রুট হওয়ার কারণে এটি পাসওয়ার্ড ছাড়াই ব্যবহারকারীদের স্যুইচ করতে সক্ষম হবে।
সোফি আল্পার্ট

আহা। আমি নিজেও কম্পিউটারে বসে যখন অন্য একজন ব্যবহারকারী হিসাবে লগইন করতে পারি তাও জানি না, তাই সিগারের কোনও প্রয়োজন নেই sudo osascript -e 'tell app "System Events" to keystroke "password" & return'। স্ক্রীনটি লক হওয়ার সাথে সাথে প্রশাসনিক ব্যবহারকারীর নাম এবং পাসওয়ার্ড প্রবেশ করা অন্য ব্যবহারকারীর সেশনটি পুনরায় শুরু করে। তবে পাসওয়ার্ড না জেনে কোনও ব্যবহারকারীর জন্য সেশন শুরু করবেন কীভাবে ? (কেবলমাত্র নিশ্চিত হওয়া, আপনি যদি পাসওয়ার্ডটি জানেন: অন্য কাজটি স্ক্রিন ভাগ করে নেওয়া হতে পারে যা লগইন স্ক্রিনের জন্যও কাজ করে a একটি নির্দিষ্ট ব্যবহারকারীর সেশন শুরু বা পুনরায় চালু করার পরে আপনাকে স্ক্রিন ভাগ করে নেওয়া পুনরায় সংযোগ করতে হবে))
আরজান

এটা ভাল. আমি কী-স্ট্রোকের ম্যানুয়ালি অনুকরণ না করেই কোনও সমাধান পছন্দ করতাম।
সোফি আল্পার্ট

2
আমি ভাবছি যে কেউ যদি কারও জন্য কীভাবে একটি সেশন শুরু করতে জানে। সুতরাং, উপরের উত্তরটি বিবেচনা না করে কেবল ম্যাক ওএস এক্সের প্রতিদিনের ব্যবহারে: কোনও প্রশাসক সেই ব্যবহারকারীর পাসওয়ার্ড না জেনে অন্য ব্যবহারকারী হিসাবে লগ ইন করতে পারেন? (জাস্ট মত suকমান্ড প্রম্পট, কিন্তু তারপর একটি GUI সেশনের জন্য অথবা শুধু মত স্ক্রীন লক হয়ে গেলে, যেখানে প্রশাসনিক ব্যবহারকারীর নাম লিখে এবং পাসওয়ার্ড। শুরু অন্যান্য ব্যবহারকারীর অধিবেশন।)
Arjan

সম্ভবত অ্যাপলস্ক্রিপ্ট কীস্ট্রোক না করে এটি করা সম্ভব নয়: docs.info.apple.com/article.html?path=RemoteDesktop/3.0/en/…
সোফি

1

আমি সম্প্রতি এটি তদন্ত করছি।

এটি আপনার অ্যাপের পিএএম স্ট্যাকের মধ্যে রাখুন, বা এসএসডি দিয়ে পরীক্ষা করুন:

session    required       pam_launchd.so launchd_session_type=Aqua

এটি আপনাকে গ্রাফিকাল সেশন পাওয়ার দিকে অনেক এগিয়ে যায় যা একটি স্যুইচড-আউট ব্যবহারকারী সেশনের খুব কাছে close বিশেষত, এটি সঠিক বুটস্ট্র্যাপ নেমস্পেসে এবং সঠিক বুটস্ট্র্যাপ পোর্ট রয়েছে (আমার মনে হয়)। Pam_launchd কী করে তার জন্য আপনি উত্সটি পরীক্ষা করতে পারেন; এটি বন্দর এবং নাম স্থান স্থাপনের জন্য মাচ রুটিনগুলি কল করার জন্য কিছু যুক্তিসঙ্গত-সন্ধানী প্রাইভেট লাইব্রেরি (libvprop এ vproc_priv.h ফাংশন) ব্যবহার করছে। এটি অ্যাপল ম্যাচ-ডেরিভড সিস্টেমে সরবরাহ করা সমস্ত (সীমাবদ্ধ) ডক্সের সাথে মেলে।

এর পরে, আপনাকে বিএসএম এপিআই দিয়ে আপনার অডিট ব্যবহারকারী-আইডি সেট করতে হবে, অথবা লগইনউইন্ডো সিংহের সাথে আপনার সাথে কথা বলবে না।

আপনি যদি "লঞ্চাক্টল ব্লিস্ট" পরীক্ষা করেন এবং কিছু প্রক্রিয়া এবং পরিষেবাগুলি সুন্দরভাবে (পেস্টবোর্ডের মতো এবং অন্যান্য) জীবনে আসে তবে সেশনটি এখন স্যুইচড-আউট সেশনের খুব কাছাকাছি দেখায়। আসলে, ফাইন্ডার এবং লগইনউইন্ডো ব্যতীত সমস্ত কিছুই চলছে। লগইন উইন্ডো চলমান আগ পর্যন্ত আপনি গ্রাফিকাল অ্যাপ্লিকেশন আরম্ভ করতে পারবেন না এবং প্রতি সেশনের লগইন উইন্ডো প্রক্রিয়া সর্বদা বিশ্বব্যাপী সরাসরি শিশু হিসাবে তৈরি হয়। নতুন করে অধিবেশনটিতে একজন নতুন লগইনউইনডো চালু করতে লগইনউইন্ডো প্রক্রিয়াটিকে কীভাবে ডেকে আনে? আমি শেষ টুকরোটি কোনও জায়গায় পাওয়ার উপায় খুঁজে পাচ্ছি না!

এই উত্তরটি কৃতজ্ঞতার সাথে সম্পন্ন করার জন্য কোনও সহায়তা।


0

sudo দিয়ে কমান্ডটি চালানো আপনাকে স্ক্রিপ্টটি স্ট্যান্ডার্ড ব্যবহারকারীদের দ্বারা অপঠনযোগ্য হিসাবে সেট করতে দেয়। এটি নিখুঁত নয়, তবে আপনার প্রশাসক ব্যবহারকারী যদি ইতিমধ্যে আপস করে থাকেন তবে খেলাটি শেষ হয়ে গেল!

chmod ur স্ক্রিপ্টনাম

আমার স্ক্রিপ্টটি দেখতে এটির মতো দেখাচ্ছে, যখন কোনও ব্যবহারকারী ইতিমধ্যে এসএসএইচ (স্নো লিওপার্ড 10.6.3 এ পরীক্ষিত) এর মাধ্যমে দ্বিতীয় ব্যবহারকারীতে স্যুইচ করার জন্য একটি ব্যবহারকারী ইতিমধ্যে চালু থাকে তখন এটি দূরবর্তীভাবে কাজ করে:

#!/bin/bash
#go to login window
/System/Library/CoreServices/Menu\ Extras/User.menu/Contents/Resources/CGSession -switchToUserID 503

osascript -e 'tell app "System Events"
keystroke "password"
  delay 1.0
  keystroke return
end tell'

exit

0

একটি সফ্টওয়্যার আপডেট করার জন্য আমার একই ব্যবহারকারীকে 25 টি বিভিন্ন ওয়ার্কস্টেশনগুলিতে লগ করা দরকার। আমি এসএসএইচ সেশনগুলি থেকে এমনকি সুডো সুবিধাগুলি সহকারে 'ওসাস্ক্রিপ্ট-ই ...' কমান্ডটি নির্ভরযোগ্যভাবে চালাতে পারিনি। আমি অবশ্য এটি অ্যাপল রিমোট ডেস্কটপ এর মাধ্যমে চালাতে সক্ষম হয়েছি। আপনার যদি এআরডি থাকে:

  1. আপনার মেশিন নির্বাচন করুন
  2. এগুলি জাগ্রত করুন এবং প্রয়োজনে অন্যান্য ব্যবহারকারীর বাইরে লগ আউট করুন
  3. "পরিচালনা" মেনু থেকে "ইউনিক্স কমান্ড প্রেরণ করুন ..." চয়ন করুন
  4. কমান্ড ডায়ালগ বক্সে আরজানের স্ক্রিপ্ট ('সুডো' শব্দ বাদ দিয়ে) আটকান
  5. নির্বাচন করুন এবং "চালনা কমান্ড হিসাবে: ব্যবহারকারী: মূল" লিখুন

আমি এক মিনিটেরও কম সময়ের মধ্যে 25 টি ম্যাক মিনিস ব্যবহারকারী হিসাবে চালক হিসাবে খুঁজে পেয়ে আনন্দিত হয়েছি। শুধু পুনরাবৃত্তি করতে, এআরডি দিয়ে আপনাকে প্রতিটি মেশিনে সুডো পাসওয়ার্ড টাইপ করতে হবে না। কমান্ড ডায়লগটিতে আপনার যে লাইনগুলি আটকে দিতে হবে তা হ'ল (একটি বৈধ ব্যবহারকারীর নাম এবং পাসওয়ার্ডের বিকল্প):

osascript -e 'tell app "System Events"
  key code 125
  keystroke return using option down
  keystroke "the username"
  delay 1.0
  keystroke return
  delay 1.0
  keystroke "the password"
  delay 1.0
  keystroke return
end tell'
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.