লিনাক্স: এক্স 11 এ লগইন হওয়া স্থানীয় ব্যবহারকারীকে কীভাবে বার্তা প্রেরণ করবেন?


10

কনসোল থেকে X (xdm, fluxbox) এ লগ ইন করা স্থানীয় ব্যবহারকারীর কাছে কোনও বার্তা (পপআপ উইন্ডো বা কিছু) প্রেরণ করা সম্ভব? উদাহরণস্বরূপ: user1লগ ইন এবং এক্স / ফ্লাক্সবক্স ব্যবহার করে, কনসোলে এসএসএস user2দ্বারা একই বাক্সে লগ ইন করা। এখন - কী user2বার্তা পাঠাতে হবে user1?

উত্তর:


15

xmessageটুল আপনি ঠিক করতে দেয়; ভিতরে একটি পাঠ্য বার্তা সহ ব্যবহারকারীদের কাছে একটি পপআপ উইন্ডো উপস্থাপন করুন।

উদাহরণ: ইউজার 2 বাক্স এবং ইস্যুতে একটি BASH সেশনে লগ করে:

export DISPLAY=':0.0'
xmessage "some message here"

আপনি যদি কোনও টিএসসিএইচ সেশনে লগইন করেন তবে এটি এমন কিছু হবে:

setenv DISPLAY ':0.0'
xmessage "some message here'

বিকল্পভাবে, আপনি দুটি উপায়ের একটিতে টার্মিনাল সেশনে বার্তা পাঠাতে পারেন:

ব্যবহার wall(= সব [ব্যবহারকারীদের] সাবধান থাকুন)

ম্যান পৃষ্ঠা থেকে:
ওয়াল ফাইলের সামগ্রীগুলি বা ডিফল্টরূপে, এর স্ট্যান্ডার্ড ইনপুটটি বর্তমানে লগ ইন থাকা সমস্ত ব্যবহারকারীদের টার্মিনালে প্রদর্শন করে।

আপনি যদি কোনও নির্দিষ্ট ব্যবহারকারীকে লক্ষ্য করতে চান তবে ব্যবহার করুন write। আবার মানুষ আমাদের বলে:

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


যদি কোনও প্রাপক ( user1আমার উদাহরণে) এক্স 11 এ লগ ইন হয়ে থাকে, এবং খোলেনি xtermবা অন্য টার্মিনালটি না খেলে - খুব wallকাজ করবে ? আমি মনে করি এটি user1বার্তা দেখতে পাবে না।
মারিওশ

'Xmessage' সমাধান অন্তর্ভুক্ত করার জন্য আমি আমার উত্তর আপডেট করেছি। এটি ব্যবহারকারীর কাছে একটি ছোট উইন্ডো প্রদর্শন করবে, তাদের টার্মিনাল খোলা আছে তা নির্বিশেষে।
mjk

1
ঘটনাক্রমে, 'এপ্রোপস' একটি দরকারী উপযোগী জিনিসটি জানার জন্য; আপনি যে পাঠ্যে এটি পাঠিয়েছেন এটি ম্যানুয়াল পৃষ্ঠাগুলি সন্ধান করে। 'এপ্রোপোস বার্তা' চালানোর চেষ্টা করুন এবং দেখুন কী তা ফিরে আসে।
mjk

আমি জানি xmessageতবে কীভাবে এটি চালানো যায় user1এবং এই ছোট উইন্ডোটির user2পর্দায় খোলা যায় ? এটা কি সম্ভব?
মারিওশ

@maroosh আমি কীভাবে এটি করতে হয় তা জানতে চাই। আপনি কি কখনও এটি অনুভূতি পেয়েছি?

2

একটি নিয়ম হিসাবে, এক্স 11 সেশনগুলি সাধারণত "ব্যক্তিগত" মোডে শুরু করা হয়, সুতরাং আপনার দুটি বিষয়গুলির মধ্যে একটির প্রয়োজন: হয়, user2তাদের স্ক্রিনগুলি অ্যাক্সেস করার জন্য আপনাকে সম্মতি দিন , বা তাদের পর্দার "ব্রেক ইন" করার সুপারভাইজার সুবিধাগুলি।

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

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

গুহাগুলি একদিকে:

সহযোগী

যদি তাদের স্ক্রিন অ্যাক্সেস user2করার অনুমতি user1দিতে চান , তবে প্রথমে user2অবশ্যই একটি কমান্ড জারি করতে হবে:

 xhost +si:localuser:user1

এটি সম্ভবত কোনও প্রকারের একটি স্টার্ট-আপ স্ক্রিপ্টে যুক্ত করা যেতে পারে; আমি ফ্লাক্সবক্স জানি না, তবে আমি ধরে নিই যে এটির একটি rcবা সেশন-স্টার্ট হুক রয়েছে।

এটি একবার নষ্ট হয়ে গেলে , তারা যদি এটির সন্ধান করতে পারে তবে তার প্রদর্শনীতে user1লিখতে user2পারেন।

যদি user2এ সম্পর্কে অবগত থাকে তবে তারা সর্বদা এটি user1অন্য কোনও উপায়ে প্রেরণ করতে পারে ।

অন্য ব্যবহারকারীর প্রদর্শন সন্ধান করা

একটি সাধারণ ওয়ার্কস্টেশনে, এক বা দু'জনের বেশি ব্যবহারকারী লগ ইন হওয়া অস্বাভাবিক; যে ক্ষেত্রে, "অনুমান করা" যে ডিসপ্লেটি আপনি চান তা 0, 1, বা 2 সম্ভবত একটি কার্যক্ষম সমাধান হতে পারে।

যাইহোক, আরও সম্পূর্ণ সমাধানের জন্য, ধরে নেওয়া যাক আপনার কাছে এমন একটি মেশিন রয়েছে যেখানে খুব বেশি ব্যবহারকারী সাইন ইন করতে পারে এবং আপনি যা চান সেটি আবিষ্কার করার চেষ্টা করুন।

for proc in /proc/[0-9]*/
do
     if [ Xorg = $(< $proc/comm ) ] 2>/dev/null && \
        [ $(id -u user2) -eq $(< $proc/loginuid) ] 2>/dev/null
     then
        for subproc in $(
        do
            echo "user2 display=" $(perl -ne 'if (m,DISPLAY=(.*)\0,) { print $1 }' < $subproc/environ)
        done
     fi
done

তারপরে, user1অবশেষে (উপরে প্রাপ্ত ডিজিটাল মানটি ব্যবহার করে; আমি স্রেফ :14.0এখানে লিখেছি ...)

DISPLAY=:14.0 xmessage "Hello, user2"

পরিবর্তে একটি বিজ্ঞপ্তি পাঠানো হচ্ছে

সম্পূর্ণতার স্বার্থে, নিম্নলিখিতটি কমপক্ষে জিনোম ডেস্কটপে কাজ করে। ফ্লক্সবক্সের কোনও বিজ্ঞপ্তি আছে কিনা তা আমি জানি না।

 DISPLAY=:14.0 notify-send "Hello, user2"

এটিতে প্রদর্শনের জন্য আরও অনেক বেশি ব্যবহারকারী-বান্ধব বিকল্প রয়েছে এবং এটি সম্ভবত ব্যবহারকারীর স্ক্রিনে বরং বন্ধুত্বপূর্ণ উপায়ে পপ আপ হবে।


for subproc inকি? আমি মনে করি আপনার লিপিটি এখানে দুর্নীতিগ্রস্থ হয়েছে।
স্টাফেন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.