আমি কেবল সাইগউইন ইনস্টল করেছি এবং দেখে মনে হচ্ছে বাশ প্রম্পটে থাকা হোম ডিরেক্টরিটি আমার জেড: ড্রাইভে রয়েছে। আমি যেখানে এটি চাই সেখানে নয়।
আমি কীভাবে এটি পরিবর্তন করতে পারি?
আমি কেবল সাইগউইন ইনস্টল করেছি এবং দেখে মনে হচ্ছে বাশ প্রম্পটে থাকা হোম ডিরেক্টরিটি আমার জেড: ড্রাইভে রয়েছে। আমি যেখানে এটি চাই সেখানে নয়।
আমি কীভাবে এটি পরিবর্তন করতে পারি?
উত্তর:
সাইগউইন 1.7.34 দিয়ে শুরু করে , এটি করার প্রস্তাবিত উপায় হ'ল এতে একটি কাস্টম db_home
সেটিংস যুক্ত করা /etc/nsswitch.conf
। এটি করার সময় একটি সাধারণ ইচ্ছা হ'ল আপনার সাইগউইন হোম ডিরেক্টরিটি আপনার উইন্ডোজ ব্যবহারকারী ডিরেক্টরি ডিরেক্টরির সমান করা। এই সেটিংটি এটি করবে:
db_home: windows
বা, সমতুল্য:
db_home: /%H
আপনি যদি এই স্কিমটিতে কিছু প্রকারের পরিবর্তন চান, তবে আপনার সাইগউইন হোম ফাইলগুলি আপনার উইন্ডোজ ব্যবহারকারী ডিরেক্টরি ডিরেক্টরির একটি উপ ডিরেক্টরিতে পৃথক করতে চাইলে আপনাকে পরবর্তী ফর্মটি ব্যবহার করতে হবে :
db_home: /%H/cygwin
বিকল্পের জন্য windows
আরও কয়েকটি বিকল্প স্কিম রয়েছে এবং এর %
পরিবর্তে %H
বা এটির পরিবর্তে আপনি ব্যবহার করতে পারেন এমন আরও কয়েকটি টোকেন রয়েছে । দেখুন সিনট্যাক্স বিবরণ মধ্যে Cygwin ইউজার গাইড বিস্তারিত জানার জন্য।nsswitch.conf
আপনি যদি 1.7.34 এর আগে সাইগউইন ইনস্টল করেছেন বা এর কোনও mkpasswd
ইউটিলিটি চালিত করেছেন যাতে আপনার কাছে একটি /etc/passwd
ফাইল থাকে তবে আপনি সেই ফাইলটিতে আপনার ব্যবহারকারীর প্রবেশদ্বার সম্পাদনা করে আপনার সাইগউইন হোম ডিরেক্টরি পরিবর্তন করতে পারেন। আপনার হোম ডিরেক্টরিটি আপনার ব্যবহারকারীর লাইনে /etc/passwd
¹। এ দ্বিতীয় থেকে শেষ উপাদান ¹
আপনি যে কোনও উপায়ে এটি করুন, এর ফলে HOME
শেল শুরুর সময় পরিবেশের পরিবর্তনশীল সেট হয়ে যায় ²
বিষয়টিতে আরও জানতে এই FAQ আইটেমটি দেখুন ।
পাদটিকা:
পরিবর্তে নতুন এসএএম / এডি-ভিত্তিক প্রক্রিয়াটি ব্যবহার করার জন্য চলন্ত /etc/passwd
এবং /etc/group
বাইরে যাওয়ার বিষয়টি বিবেচনা করুন ।
%HOME%
কন্ট্রোল প্যানেলের মাধ্যমে সহজেই সেট করা সম্ভব হলেও এটি সরকারীভাবে নিরুৎসাহিত । এটি কেবল উপরোক্ত প্রক্রিয়াগুলি অনিয়ম করেই নয়, এটি সর্বদা কাজ করে না যেমন শেল স্ক্রিপ্টগুলির মাধ্যমে চলমান cron
।
ssh
সম্পাদনা না করা পর্যন্ত সঠিকভাবে কাজ করবে না /etc/passwd
।
/etc/passwd
ফাইলটি পুনরায় তৈরি করার মাধ্যমে সমাধান করা হয়েছে। এই জাতীয় সমস্যা এড়াতে আমার উত্তর এখানে দেখুন ।
db_home: /%H
কোনও ডোমেন ব্যবহারকারীর নামের জন্য (স্থানীয় ব্যবহারকারীর নামের পরিবর্তে) সমাধান করতে পারে যা আপনি যা চান তা নাও হতে পারে। db_home: /cygdrive/c/Users/%U
আমার যা ইচ্ছা ছিল তা কর
db_home: windows
, এটি sh
শুরু করতে প্রায় 2.5 থেকে 3.5 সেকেন্ড সময় নেয় । আমি যখন ব্যবহার করি তখন db_home: /cygdrive/c/Users/%U
এটি sh
শুরু করতে 0.9 থেকে 1.0 সেকেন্ড সময় নেয় । আমি যখন db_home
লাইনটি মুছে ফেলি বা উইন্ডোজ হোম ডিরেক্টরিতে এটি হার্ড-কোড করি তখন শুরু হতে sh
প্রায় 0.2 থেকে 0.3 সেকেন্ড সময় লাগে। আমি হার্ড-কোডেড সমাধানটি দিয়ে যাচ্ছি, যেমন db_home: /cygdrive/c/Users/susam
, আমি প্রায়শই কমান্ড প্রম্পট থেকে শেল স্ক্রিপ্টগুলি sh
কমান্ডটি ব্যবহার করে , যেমন sh foo.sh
এবং 2 সেকেন্ডেরও বেশি অপেক্ষা করা অসুবিধাজনক হয়ে ওঠে।
ব্যবহার করছেন তাদের জন্য Cygwin 1.7.34 বা উচ্চতর Cygwin সমর্থন হোম ডিরেক্টরি, লগইন শেল এবং gecos তথ্য সংগ্রহ কিভাবে কনফিগার /etc/nsswitch.conf
। এটি সাইগউইন ব্যবহারকারী গাইড বিভাগে বিস্তারিত:
আপনি যদি পূর্বে একটি /etc/passwd
বা /etc/group
ফাইল তৈরি করে থাকেন তবে আপনি সেগুলি সরাতে এবং POSIX ম্যাপিংয়ে নতুন উইন্ডোজ সুরক্ষা মডেল ব্যবহার করে সাইগউইনকে কনফিগার করতে চান।
[[ -f /etc/passwd ]] && mv /etc/passwd /etc/passwd.bak
[[ -f /etc/group ]] && mv /etc/group /etc/group.bak
/etc/nsswitch.conf
ফাইলের db_home:
সংজ্ঞায়িত কিভাবে Cygwin ব্যবহারকারীর হোম ডিরেক্টরি রক্ষিত রাখে সেটিং। জন্য ডিফল্ট সেটিং db_home:
হল
db_home: /home/%U
সুতরাং ডিফল্টরূপে, সাইগউইন কেবল বাড়ির দিরকে সেট করে /home/$USERNAME
। আপনি চাইলে অন্য যে কোনও কাস্টম পাথটি নির্দেশ করতে পারেন তা আপনি পরিবর্তন করতে পারেন। সমর্থিত ওয়াইল্ডকার্ডের অক্ষরগুলি হ'ল:
%u
সাইগউইনের ব্যবহারকারীর নাম (এটি আপনার ছোট হাতের)।%U
উইন্ডোজ ব্যবহারকারীর নাম (এটি বড় হাতের ইউ)।%D
নেটবিআইএস স্টাইলে উইন্ডোজ ডোমেন।%H
পসিক্স স্টাইলে উইন্ডোজ হোম ডিরেক্টরি। দ্রষ্টব্য, db_home:
সেটিংসের জন্য, এটি কেবল পূর্ববর্তী স্ল্যাশের পরে ঠিক যেমনটি বোধ করা যায়db_home: /%H/cygwin
%_
যেহেতু স্কেমেটা আলাদা করার জন্য স্পেস এবং ট্যাব অক্ষর ব্যবহৃত হয়, তাই ফাইলের নামের একটি স্থান %_
(এটি একটি আন্ডারস্কোর) হিসাবে দিতে হবে ।%%
শতকরা একটি চরিত্র।কোনও পাথের জায়গায়, আপনি পূর্বনির্ধারিত চারটি নামের একটি স্কিমাটা নির্দিষ্ট করতে পারেন।
windows
ব্যবহারকারীর হোম ডিরেক্টরিটি একই ডিরেক্টরিতে সেট করা থাকে যা উইন্ডোজ হোম ডিরেক্টরি হিসাবে ব্যবহৃত হয়, সাধারণত %USERPROFILE%
বা এর লাইনে কিছু C:\Users\$USERNAME
। অবশ্যই, উইন্ডোজ ডিরেক্টরিটি সাইগউইন দ্বারা পসআইএক্স-স্টাইলে রূপান্তরিত হয়েছিল।
cygwin
কেবলমাত্র AD: ব্যবহারকারীর হোম ডিরেক্টরিটি সাইগউইনউজার সহায়িকা শ্রেণি থেকে সাইগউইনহোম বৈশিষ্ট্যে দেওয়া পসিক্স পথে সেট করা আছে। আরও দেখুন অধ্যায় "cygwin স্কিমা" বলা ।
unix
কেবলমাত্র AD: ব্যবহারকারীর হোম ডিরেক্টরিটি পিক্সঅ্যাক্ট অ্যাকাউন্ট সহায়ক শ্রেণি থেকে ইউনিক্সহোমডাইরেক্টরি বৈশিষ্ট্যে দেওয়া POSIX পাথে সেট করা আছে। আরও দেখুন অধ্যায় "UNIX স্কিমা" বলা ।
desc
ব্যবহারকারীর হোম ডিরেক্টরিটি ঘরে দেওয়া POSIX পথে সেট করা আছে = "..." এসএমএল বা এডিতে ব্যবহারকারীর বর্ণন বৈশিষ্ট্যে XML- সদৃশ সেটিং। বিস্তারিত বর্ণনার জন্য "দ্য ডেস্ক স্কিমা" নামক বিভাগটি দেখুন।
নিম্নলিখিতটি সিগউইনে ব্যবহারকারীর হোম ডিরেক্টরিটি উইন্ডোজ হোম ডিরেক্টরিতে ব্যবহৃত হিসাবে তৈরি করবে।
db_home: windows
যারা সাইগউইন ১..3.৩৩ বা তার আগের ব্যবহার করছেন তাদের জন্য সর্বশেষ সংস্করণ সাইগউইনে আপডেট করুন এবং পূর্বে ব্যবহৃত /etc/passwd
এবং /etc/group
ফাইলগুলি সরিয়ে ফেলুন , তারপরে উপরের পদক্ষেপগুলি দেখুন।
অন্যথায়, নীচের এই পুরানো পদক্ষেপগুলি অনুসরণ করুন।
প্রথমত, হোমের জন্য একটি উইন্ডোজ এনভায়রনমেন্ট ভেরিয়েবল সেট করুন যা আপনার ব্যবহারকারীর প্রোফাইলে নির্দেশ করে:
HOME
%USERPROFILE%
এখন আমরা সাগউইন /etc/passwd
ফাইলটি %HOME%
সবেমাত্র তৈরি করা উইন্ডোজ ভেরিয়েবলের সাথে আপডেট করতে যাচ্ছি । এর মাধ্যমে শেল লগইন এবং দূরবর্তী লগইনগুলি তাদের ব্যবহারকারীর পাথের অবস্থান জানাতে ssh
নির্ভর করবে ।/etc/passwd
$HOME
সাইগউইন বাশ কমান্ড প্রম্পটে নিম্নলিখিত টাইপ করুন:
cp /etc/passwd /etc/passwd.bak
mkpasswd -l -p $(cygpath -H) > /etc/passwd
mkpasswd -d -p $(cygpath -H) >> /etc/passwd
-d
সুইচ mkpasswd বলে DOMAIN ব্যবহারকারীদের অন্তর্ভুক্ত করা, যখন -l
শুধুমাত্র আউটপুট স্থানীয় মেশিন ব্যবহারকারীদের হয়। আপনি যদি এমন কোনও পিসি ব্যবহার করেন যেখানে উইন্ডোজ ডোমেন নিয়ামক থেকে ব্যবহারকারীর তথ্য প্রাপ্ত হয় তবে এটি গুরুত্বপূর্ণ।
এখন, আপনি গ্রুপগুলির জন্যও একই কাজ করতে পারেন, যদিও এটি প্রয়োজনীয় নয় যদি না আপনি কোনও উইন্ডোজ ডোমেনের অংশবিশেষযুক্ত কম্পিউটার ব্যবহার না করেন। সাইগউইন উইন্ডোজ অ্যাকাউন্ট ডেটাবেসগুলি থেকে গ্রুপের তথ্য পড়েন, তবে /etc/group
আপনার মেশিনটি প্রায়শই এর ডোমেন কন্ট্রোলার থেকে সংযোগ বিচ্ছিন্ন থাকলে আপনি একটি ফাইল যুক্ত করতে পারেন ।
সাইগউইন বাশ প্রম্পটে নিম্নলিখিত টাইপ করুন:
cp /etc/group /etc/group.bak
mkgroup -l > /etc/group
mkgroup -d >> /etc/group
এখন, সিগউইন থেকে প্রস্থান করুন এবং এটি আবার শুরু করুন। আপনার খুঁজে পাওয়া উচিত যে আপনার হোম পাথটি আপনার উইন্ডোজ ব্যবহারকারী প্রোফাইলের মতো একই স্থানে নির্দেশ করে - যেমন/cygdrive/c/Users/username
mkgroup
উপরের উদ্দেশ্যটি স্পষ্ট করার জন্য একটি ব্যাখ্যা যুক্ত করেছি ।
আমি বেশ সহজ কিছু করেছি। আমি উইন্ডোজ 7 পরিবেশ পরিবর্তনশীল পরিবর্তন করতে চাই না। সুতরাং আমি সরাসরি সাইগুইন.বাট ফাইল সম্পাদনা করেছি।
@echo off
SETLOCAL
set HOME=C:\path\to\home
C:
chdir C:\apps\cygwin\bin
bash --login -i
ENDLOCAL
এটি কেবলমাত্র এই হোম ডিরেক্টরিটি দিয়ে স্থানীয় শেলটি শুরু করে; এটাই আমি চেয়েছিলাম আমি এটিকে দূর থেকে অ্যাক্সেস করতে যাচ্ছি না, সুতরাং এটি আমার জন্য কাজ করেছে।
%HOME%
অবস্থানে একটি পৃথক ভিআইএম কনফিগারেশন বজায় রাখবে, যখন সাইগউইন ভিম $HOME
আপনার ঘোষিত নতুন পথটি ব্যবহার করবে ।
সাইগউইন mount
এখন বাইন্ড পদ্ধতি সমর্থন করে যা আপনাকে ডিরেক্টরিতে মাউন্ট করতে দেয়। সুতরাং আপনি কেবল নীচের লাইনটি এতে যুক্ত করতে পারেন /etc/fstab
, তারপরে আপনার শেলটি পুনরায় চালু করুন:
c:/Users /home none bind 0 0
আপনার হোম পরিবেশের পরিবর্তনশীল পরিবর্তন করুন।
এক্সপি-তে, এর জন্য ডান-ক্লিক করুন আমার কম্পিউটার >> বৈশিষ্ট্য >> উন্নত >> পরিবেশে পরিবর্তনশীল >> এর জন্য ব্যবহারকারীর ভেরিয়েবল >> [ভেরিয়েবল নির্বাচন করুন] >> সম্পাদনা করুন
আমি $ হোম অগ্রাধিকার গ্রহণের বিষয়ে কিছুটা সংশোধন / আপডেট যুক্ত করতে চাই। / ইত্যাদি / পাসডাব্লু-তে হোম ডিরেক্টরিটি সবকিছুর চেয়ে বেশি অগ্রাধিকার নেয়।
আমি দীর্ঘ সময় সাইগউইন ব্যবহারকারী এবং আমি সবেমাত্র উইন্ডোজ 7 এক্স 64 এবং সাইগউইন ভি 1.126 এর একটি ক্লিন ইনস্টল করেছি। আমি যতবারই এসএসএস চালিয়েছি কেন পাচ্ছিলাম তা জানার চেষ্টা করে বাদাম যাচ্ছিলাম:
e:\>ssh foo.bar.com
Could not create directory '/home/dhaynes/.ssh'.
The authenticity of host 'foo.bar.com (10.66.19.19)' can't be established.
...
আমি উইন্ডোজ পরিবেশে হোম = সি: \ ব্যবহারকারীদের definition সংজ্ঞাটি যুক্ত করি তবে এটি '/ হোম / ধায়নেস' তৈরি করার চেষ্টা চালিয়ে যায়। হোম / সাইগড্রাইভ / সি / ইউজার / ধায়নেসে সেট করা সহ আমি প্রতিটি কম্বো চেষ্টা করেছিলাম। ত্রুটি বার্তার জন্য গুগল করা, কিছু খুঁজে পাওয়া যায়নি, সাইগউইন সাইটে কিছু খুঁজে পাওয়া যায়নি। আমি সিএমডি.এক্সই থেকে সাইগউইন ব্যবহার করি, বাশ.এক্সই নয়, তবে উভয়ই সমস্যা উপস্থিত ছিল।
আমি অবশেষে বুঝতে পেরেছিলাম যে / ইত্যাদি / পাসডাব্লুডের হোম ডিরেক্টরিটি environment হোম এনভায়রনমেন্ট ভেরিয়েবলের চেয়ে অগ্রাধিকার গ্রহণ করছে। আমি 'mkpasswd -l> / etc / passwd' সরলভাবে পুনরায় দৌড়েছি এবং এটি হোম ডিরেক্টরি আপডেট করেছে, এখন এসএসএস দিয়ে ভাল।
এটি সিসাদমিন অভিজ্ঞতার সাথে লিনাক্স ধরণের ক্ষেত্রে সুস্পষ্ট হতে পারে তবে আমাদের মধ্যে যারা প্রাথমিকভাবে উইন্ডোজ ব্যবহার করেন এটি কিছুটা অস্পষ্ট।
আমি cwRsync (উইন্ডোজের জন্য সাইগউইন + রাইসিএনসি) ব্যবহার করতে চাই যেখানে সাইগউইন বান্ডিলযুক্ত হয় এবং আমি / ইত্যাদি / পাসডাব্লুডির সন্ধান করতে পারি না।
এবং এটা বলতে থাকে
Could not create directory '/home/username/.ssh'.
...
Failed to add the host to the list of known hosts (/home/username/.ssh/known_hosts).
সুতরাং আমি একটি ব্যাচ ফাইল লিখেছিলাম যা rsync চালানোর আগে হোম ভেরিয়েবল পরিবর্তন করে। কিছুটা এইরকম:
set HOME=.
rsync /path1 user@host:/path2
আর ভায়োলা! .ssh ফোল্ডারটি বর্তমান চলমান ডিয়ারে উপস্থিত হয়েছে এবং আরএসসিএনসি আরএসএ ফিঙ্গারপ্রিন্টগুলি দিয়ে বিরক্ত করা বন্ধ করে দিয়েছে।
এটি দ্রুত হটফিক্স, তবে পরে আপনার হোমটিকে আরও সুরক্ষিত জায়গায় পরিবর্তন করা উচিত।
db_home:
।