এক্সফোর্ডিং ব্যবহারকারীদের স্যুইচিংয়ের অনুমতি দেয় না


7

আমি একটি রিমোট কম্পিউটারে এসেছি এবং এক্সফোরডিং ঠিকঠাক কাজ করছে ... তবে আমি "সুডো সু -" বা "সুডো সু ইউজার 2" এর সাথে সাথে এটি আর ত্রুটি দেয় এমন এক্সফোরওয়ার্ডস কিছু নেই:

X11 connection rejected because of wrong authentication.
xterm Xt error: Can't open display: localhost:10.0

কোন ধারনা?

ধন্যবাদ


1
এটি এক্স ফরওয়ার্ডিংয়ের চেয়ে এক্স অনুমতিগুলির কারণে বেশি - আপনি যে এসএসএইচ দিয়ে লগ ইন করেছেন তার এক্স এক্স ডিসপ্লেতে সংযোগ করার অনুমতি রয়েছে, তবে আপনি যখন 'সুডো' দিয়ে ব্যবহারকারীদের স্যুইচ করছেন তখন আপনার স্যুইচিংয়ের নেই এই অনুমতিগুলি।
কোয়াকোট কোয়েসোট

যদিও চারপাশে একটি কাজ করা উচিত ... আমার কাছে রুট অ্যাক্সেস রয়েছে, আমার আলাদা ব্যবহারকারী হিসাবে এক্স 11-ফরওয়ার্ড অ্যাপ্লিকেশন চালানো উচিত। আমি কীভাবে এটি কাজ করতে পারি?
জারভিন

উত্তর:


6
  1. আপনার ক্লায়েন্টে এক্স -11 ফরওয়ার্ডিং সক্ষম করুন
  2. আপনার সাধারণ ব্যবহারকারী হিসাবে লগ ইন করুন
  3. echo $DISPLAY সম্পর্কিত প্রদর্শন পেতে
  4. xauth list, প্রদর্শন নম্বরটি সন্ধান করুন যা আপনি # 3 এ যা পেয়েছেন তার সাথে মিল রেখে এটি অনুলিপি করুন
  5. সুডো টু রুট xauth add <paste in what you copied from #4>
  6. এখন আপনি কমান্ডগুলি রুট হিসাবে কার্যকর করতে পারেন এবং এক্স 11 ফরোয়ার্ডিং সংযোগটি সক্ষম করতে সক্ষম হবেন

4

আপনার আগে sudo, এটি করুন:

$ xauth extract /tmp/xauthstuff $DISPLAY

আপনার পরে sudo, এটি করুন:

# xauth merge /tmp/xauthstuff

এটি কি তোমার জন্য কাজ করে?

পিএস rm /tmp/xauthstuffপরে মনে আছে


3
আমি সেই আদেশটি চেষ্টা করেছি এবং এটি ব্যর্থ হয়েছে: a xauth अर्জ / tmp / xauthstuff $ DISPLAY কোনও মিল খুঁজে পাওয়া যায় নি, কর্তৃপক্ষ ফাইল "/ tmp / xauthstuff" লিখিত নয়?
ডিজেবি

কি echo $DISPLAYউত্পাদন করে?
tzot

DISPLAY এর লোকালহোস্ট রয়েছে: 10.0
ডিজেবি

3

উপরের কোনওটি করার জন্য আমার কাছে রুট অ্যাকাউন্টে অ্যাক্সেস নেই, তাই এখানে আমি ব্যবহার করেছি এমন একটি কাজ।

প্রথমে আপনার অ্যাকাউন্টে এসএসএস করুন যেমন আপনি সাধারণত করেন এবং যা যা কাজ করে তা পরীক্ষা করে।

ssh -Y <you>@<your_server>

আমার সংযোগ রয়েছে তা নিশ্চিত করার জন্য আমি সাধারণত একটি এক্সটার্ম জ্বালিয়ে ফেলি। যদি সমস্ত ভাল হয় তবে <you>হোম ডিরেক্টরিতে থাকা XAuthority ফাইলটি অনুলিপি করুন এবং এটি একটি সর্বজনীন ডিরেক্টরিতে রেখে দিন।

cp ~/.Xauthority /tmp/tempXAuth

নিশ্চিত করুন যে আপনি সেই ফাইলটি পাবলিক ডিরেক্টরিতে mod ch7 chmod করেছেন যাতে সুডো অ্যাকাউন্টটি পরবর্তী পদক্ষেপে এটি ব্যবহার করতে পারে।

chmod 777 /tmp/tempXAuth

এখন আপনি হিসাবে কাজ করতে হবে ব্যবহারকারী sudo

sudo su - <other_user>

আপনি একবার <other_user>হয়ে গেলে বিদ্যমান .অক্ষমতাটির ব্যাক আপ দিন এবং তারপরে "ভাল" অনুলিপি করুন।

cp ~/.Xauthority ~/.Xauthority.bak
cp /tmp/tempXAuth ~/.Xauthority

আপনার যে কোনও এক্স প্রোগ্রাম চালাতে সক্ষম হওয়া উচিত এবং সেগুলি আপনার বর্তমান এক্স সার্ভার সেশনের মাধ্যমে প্রমাণীকরণ করা উচিত।


2

আপনি sudo su user2আপনার A XAUTHORITY এর অনুমতিগুলি যাচাই করার আগে : ব্যবহারকারী স্যুইচ করার পরে যদি আপনি এখনও একই $ XAUTHORITY উল্লেখ করেন তবে ফাইলে অনুমতিগুলি হারিয়ে ফেলেছেন, তবে এটি এক্স 11 ফরোয়ার্ডিংটি ভেঙে দেবে। আমার ক্ষেত্রে একটি দ্রুত সমাধান ছিল ব্যবহারকারী স্যুইচ করার আগে A XAUTHORITY ফাইলটিতে ফাইল অনুমতিগুলি সামঞ্জস্য করা। মনে রাখবেন যে ব্যবহারকারীরা যদি আপনার A XAUTHORITY ফাইলে অ্যাক্সেস পাওয়ার বিষয়ে বিশ্বাস না করেন তবে এটি কোনও সুরক্ষা সমস্যা হতে পারে।
echo $XAUTHORITY
ls -l $XAUTHORITY






0

ব্যবহারকারী হিসাবে আপনি সাধারণত টাইপ হিসাবে লগ ইন করুন:

cd

sudo cp .Xauthority /root/

তারপরে আপনি রুটে স্যুইচ করতে পারেন:

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