এক্সআরডিপি অধিবেশন ব্যবহার করার সময় উবুন্টুর আলাদা আলাদা PATH থাকে


9

এখানে নুব: আমার একটি সমস্যা আছে, যখন আমি এসএসএইচ দিয়ে আমার সার্ভারটি অ্যাক্সেস করি তখন $ প্যাথটি সঠিক

root@ks391320:~# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games

তবে যখন আমি এক্সআরডিপি সেশনের মাধ্যমে আমার সার্ভারটি খুলি এবং টার্মিনালে যাই এটি একটি ভুল পাথ দেখায় :

root@ks391320:~# echo $PATH
/bin:/usr/bin:/usr/X11R6/bin:/usr/local/bin

উভয়ের স্ক্রিনশট: স্ক্রিনশট

এবং এটি একটি সমস্যা তৈরি করে কারণ যখন আমি "প্যাকেজ ইনস্টলার" ব্যবহার করে কিছু ইনস্টল করার চেষ্টা করি তখন এটি ত্রুটিটি দেখায় (অন্যদের মধ্যে)

dpkg: warning: 'ldconfig' not found in PATH

উত্তর:


7

উবুন্টু-18.04 এর জন্য, /etc/pam.d/xrdp-sesman শুরুতে নিম্নলিখিত লাইনগুলি সম্পাদনা করুন এবং লিখুন:

session       required   pam_env.so readenv=1 envfile=/etc/environment
session       required   pam_env.so readenv=1 envfile=/etc/default/locale

হ্যাঁ, এটি ছাড়াই, এক্সআরডিপি সেশনগুলি আমার সংজ্ঞায়িত সমস্ত ভেরিয়েবলগুলি অনুপস্থিত ছিল /etc/environment!
উইসবাকি

5

1

সিস্টেম-প্রশস্ত ডিফল্ট PATH এর মধ্যে সংজ্ঞা দেওয়া হয়েছে /etc/environment। প্রথমে যাচাই করুন যে এটি একটি বুদ্ধিমান মানতে সেট করা আছে। রেফারেন্সের জন্য, এখানে আমার, এটি একটি ডিফল্ট ইনস্টল হিসাবে একই:

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games"

2

যদি /etc/environmentবুদ্ধিমান হয় এবং আপনার এখনও সমস্যা হয় তবে আপনি ডিফল্ট PATH কে ওভাররাইড করতে পারেন ~/.bashrc। উদাহরণস্বরূপ, আমার এটি আমার .Bashrc এ রয়েছে যা আমার পাঠ্যপথের সাথে একটি ডিরেক্টরি সংযোজন করে যদি কেবলমাত্র তা উপস্থিত থাকে এবং আমার প্যাথটিতে এটি ইতিমধ্যে নেই:

if [ -d "$HOME/bin" ]; then
    if [[ $PATH =~ $HOME/bin ]]; then :
    else export PATH="$HOME/bin:$PATH"
    fi
fi

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

3

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

হালনাগাদ

আমি সিস্টেমের আশেপাশে কিছু করছি। আপনি আপনার সিস্টেমে এমন সমস্ত জায়গা খুঁজে পেতে পারেন যা নীচের কমান্ডের সাথে একটি PATH নির্দিষ্ট করে (এটি sudoসেখানে রয়েছে কারণ কিছু ফাইলগুলি /etcসাধারণ ব্যবহারকারীদের দ্বারা অপঠনযোগ্য):

sudo egrep -nr '\bPATH' /etc | less

আমি মনে করি যে নিম্নলিখিত জায়গাগুলির ফলে এই জায়গাগুলির মধ্যে অনেকগুলি উপেক্ষা করা নিরাপদ:

sudo egrep -nr '\bPATH' /etc | egrep -v '^/etc/(init|rc|ppp|bash_c)' | egrep -v '^Binary' | less

একটি ফাইল সম্ভব দেখায় (যদিও আমি সত্যিই খুব বেশী এটা সম্পর্কে জানি না) হল /etc/login.defs। আপনি এটি একবার দেখুন।

এছাড়াও, আপনি আপনার ডটফাইলগুলি গ্রেপও করতে পারেন:

egrep -nr '\bPATH' $HOME/.* | less

"এনভায়রনমেন্ট" ফাইলটি স্বাভাবিক, ~ / .bashrc- এ সঠিক পাথ যুক্ত করে কমান্ডগুলি টার্মিনালে চালিত করে তবে উবুন্টু "প্যাকেজ ইনস্টলার" তে কাজ করে না। আমি সমস্যার মূল আবিষ্কার করতে পারি না তবে এখন আমার একটি সমাধান রয়েছে, আমি প্রতিটি প্রোগ্রামের জন্য প্রয়োজনীয় / বিড / একটি প্রতীকী লিঙ্ক তৈরি করেছি (ldconfig, ইত্যাদি) ... এটি সম্ভবত একটি সুরক্ষা লঙ্ঘন তাই আমি এই প্রশ্নটি ছেড়ে দেব যদি কারও আরও ভাল সমাধান থাকে তবে এটি খুলুন।
ইভান ক্যাসেলেলানোস

@ ইভানক্যাসেলেলানোস: "প্যাকেজ ইনস্টলার" দ্বারা আপনি কী বোঝাতে চাইছেন তা আমি নিশ্চিত নই কারণ সেই সঠিক নাম আফ্রিকের কোনও প্রোগ্রাম নেই। প্যাকেজ ইনস্টল করার জন্য আপনি কী পদক্ষেপ নিচ্ছেন তা বর্ণনা করতে পারেন? এবং এটি কি জিইউআই বা কমান্ড-লাইন ইনস্টলার?
স্কট সিভেরেন্স

দুঃখিত, আমার অর্থ "জিডিবি প্যাকপেজ ইনস্টলার" (জিইউআই)।
ইভান ক্যাসেলেলানোস

@ ইভানকাস্টেলানোস: আপনি কি এটিকে চালু করেন gksudo gdebi-gtk /full/path/to/package.deb? আমি এটি কিছুটা পিক বলে মনে করেছি। যদি তা হয় তবে তার পরিবেশটি উত্তোলন করা উচিত it's
স্কট সিভেরেন্স

3

সম্পূর্ণ প্রকাশ: আমি উবুন্টু ব্যবহার করি না ... তবে দেবিয়ান সম্পর্কে আমার একই সমস্যা ছিল।

xrdp /etc/xrdp/startwm.sh আরম্ভ করে (যদি না উবুন্টু এই অবস্থানটি পরিবর্তন করে)) আমি এই লাইনটি যুক্ত করেছি:

. /etc/profile

/etc/xrdp/startwm.sh এর শীর্ষে এবং PATH এখন সঠিকভাবে সেট করা আছে।

উবুন্টুর জন্য, যোগ করা হচ্ছে

. /etc/environment

/etc/xrdp/startwm.sh এর শীর্ষে একই কাজ করতে পারে।


2

এটি আমাকে কিছুক্ষণের জন্য থামিয়ে দিয়েছে। /etc/environmentশেল স্ক্রিপ্ট নয়, সুতরাং আপনি এটিকে একে হিসাবে কল করতে পারবেন না। আমার জন্য যা কাজ করেছিল তা হ'ল পামে এক্সআরডিপি সেশন ম্যানেজার "সেসম্যান" স্ক্রিপ্ট সম্পাদনা করা। আমি আমার /etc/pam.d/sesmanফাইলে "সেশন" লাইন যুক্ত করেছি :

#%PAM-1.0
session required pam_env.so readenv=1 user_readenv=0
@include common-auth
@include common-account
@include common-session
@include common-password

এটি সেশন ম্যানেজারটিকে /etc/environmentলগইনে ফাইল লোড করে তোলে ।


1

তত্ত্ব যোগ করা

. /etc/environment

কাজ করবে কিন্তু তা করে না সমস্যাটি সংশোধন করতে আমি এটি কেবল আমার .bashrc এর শীর্ষে রেখেছি


1

পূর্ববর্তী উত্তরগুলির জন্য ধন্যবাদ আমি এই জাতীয় সমাধানে এসেছি:

cat /etc/xrdp/startwm.sh | sed "s/. \/etc\/X11\/Xsession/. \/etc\/environment/" > ./startwm.sh && echo ". /etc/X11/Xsession" >> ./startwm.sh && sudo mv ./startwm.sh /etc/xrdp/startwm.sh && sudo chmod 755 /etc/xrdp/startwm.sh

সর্বাধিক অনুকূল না হলেও কাজ করা হতে পারে (উবুন্টু 12.04)।


1

@ জন: আমি বিশ্বাস করি যে আপনার /etc/xrdpstartwm.sh পরীক্ষা করতে হবে - খনিতে প্রথম লাইনগুলি পড়েছে,

if [ -f /etc/X11/xinit/xinitrc ]
then
    . /etc/X11/xinit/xinitrc
    exit 0
fi**

এর অর্থ হ'ল যদি / etc / X11xinit / xinitrc উপস্থিত থাকে তবে ফাইলটি পরিবর্তে কার্যকর করা হবে - এবং এটি যুক্ত করতে খুব বেশি সহায়তা করবে না

. /etc/environment

to /etc/xrdpstartwm.sh। :-)

/ পার হার্টজ

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