ধরুন আমি কোনও রিমোট হোস্টের কাছে একটি এসএসএইচ সেশন পেয়েছি, এবং আসুন আমি বলি যে আমি আমার স্থানীয় মেশিনে সেই সেশনের পিআইডি জানি। দূরবর্তী হোস্টে এসএসএইচ সেশনের কার্য ডিরেক্টরিটি প্রোগ্রামগতভাবে পাওয়ার জন্য আমি আমার স্থানীয় মেশিনে প্রক্রিয়াটির জন্য একটি উপায় নিয়ে আসার চেষ্টা করছি ।
আমি যে সেরা উপায়টি নিয়ে এসেছি তা এখানে।
$ sh -c "$(cat /proc/$SSH_PID/cmdline | tr '\0' ' ')\
'readlink /proc/\$(pgrep -P \
\$(pgrep -u \$(whoami) sshd | tail -n2 | head -n1)\
\$(basename \$SHELL))/cwd'"
অন্য কথায়, পিআইডি দ্বারা বিদ্যমান এসএসএইচ অধিবেশন থেকে কমান্ড লাইনটি পান, তারপরে এই ব্যবহারকারীর দ্বারা sshd দ্বারা নির্মিত দ্বিতীয় থেকে শেষ সংযোগের শেলের সিডাব্লুডি পড়ার জন্য একটি কমান্ড দিয়ে আবার এটি চালান (যেহেতু শেষটি হবে সংযোগটি নিজেই চালাচ্ছে)।
এটি স্পষ্টতই খুব দৃust় বা মার্জিত সমাধান নয়। একটি ভাল উপায় আছে কি?
আমার সমাধানের সাথে সবচেয়ে বড় সমস্যাটি হ'ল এটি কেবলমাত্র সেই ব্যবহারকারীর দ্বারা তৈরি সবচেয়ে সাম্প্রতিকতম এসএসএস সংযোগ পেয়ে যায়। সুতরাং আমি যদি এই মেশিনটিতে আমার কাছে দুটি এসএসএইচ সেশন খোলা থাকে এবং আমি প্রথমটি পেতে চাই, আমার এটি করার ভাল উপায় নেই।
—
ক্র্যাম্পাস
উদাহরণ কোড সহ যথাযথ উত্তর লেখার জন্য সময় নেই, তবে উভয় মেশিনে আপনার রুট অ্যাক্সেস থাকলে আপনি নেটস্যাট --tcp -np | গ্রেপ এসএসএস ব্যবহার করতে পারেন ; এইভাবে আপনি পোর্ট নম্বরগুলি পিআইডি-র সাথে মেলে ফেলতে পারেন এবং নিশ্চিত হন যে আপনার প্রান্তটি সঠিক প্রান্তে রয়েছে।
—
Tink
ওহ, ভাল ধারণা। যদিও এটি ফায়ারওয়ালের নেট দ্বারা বানচাল হয়ে যেতে পারে। এবং, যেমন আপনি বলেছেন, এটি উভয় মেশিনের রুট প্রয়োজন ...
—
ক্র্যাম্পাস