গিট শেল সক্ষম নয়?


24

আমি গিট সার্ভার ইনস্টল করার চেষ্টা করছি। আমি যখন আমার গিট ব্যবহারকারীর জন্য / ইউএসআর / বিন / গিট শেলটিতে ডিফল্ট শেল সেট করি আমি গিট হিসাবে লগইন করার পরে একটি ত্রুটি পাই।

fatal: Interactive git shell is not enabled.
hint: ~/git-shell-commands should exist and have read and execute access.

এস এস কী-ভিত্তিক অ্যাক্সেসের কাজ, অনুমতিগুলি সঠিকভাবে সেট করা থাকে।

গুগল অনুসন্ধান এই ত্রুটি সম্পর্কিত কিছু দেখায় না।

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

সিস্টেম স্পেস:

  • জেন্টু লিনাক্স (সর্বশেষ)
  • গিট 1.7.5.3

/ ইত্যাদি / পাসডব্লু লাইন:

git:x:1002:1004::/home/git:/usr/bin/git-shell

git-shellকেবলমাত্র ধাক্কা / টান কার্যকারিতার জন্য (যেমন git push, git fetchএবং git pull) ব্যবহৃত হওয়া একটি সীমাবদ্ধ শেল । এটি ইন্টারেক্টিভ হওয়ার অর্থ নয়, সুতরাং আপনার কোনও ইন্টারেক্টিভ শেলটিতে লগইন করা উচিত নয়। git-shell-commandsব্যবহারকারীর বাড়িতে একটি ডিরেক্টরি যুক্ত করে এবং কিছু বাইনারি ভিতরে সিমলিং করে আপনি কিছুটা ইন্টারেক্টিভ করতে পারেন । তবে এটি খুব সীমাবদ্ধ ( cdউদাহরণস্বরূপ এর কোনও বাইনারি নেই ), সুতরাং এর চেয়ে আরও ভাল বিকল্প হ'ল rootএকটি sudoসক্ষম ব্যবহারকারী হিসাবে লগইন করা এবং ব্যবহারকারীর অধীনে sudo -u git -sএকটি পূর্ণ bashশেল পাওয়ার জন্য git
এডিটিসি

উত্তর:


17

আমি দৌড়ানোর পরে এটি পেয়েছি locate git-shell-commands

বিড়াল / শ্রোতা / শেয়ার / ডক / গীত-1.7.4.4/contrib/git- Shell- কম্যান্ডস / README

নমুনা প্রোগ্রামগুলি গিট-শেলের মাধ্যমে কলযোগ্য। যার ব্যবহারকারীর শেলটি গিট-শেল, তার হোম ডিরেক্টরিতে 'গিট-শেল-কমান্ড' নামে একটি ডিরেক্টরি রাখুন। তারপরে যে ব্যবহারকারীর হিসাবে লগ ইন করুন যে কেউ 'গিট-শেল-কমান্ড' ডিরেক্টরিতে এক্সিকিউটেবল চালাতে সক্ষম হবে।

প্রদত্ত আদেশগুলি:

সহায়তা: উপলব্ধ কমান্ডগুলির নাম মুদ্রণ করে। ইন্টারেক্টিভভাবে চালিত হওয়ার পরে, গিট-শেল স্বয়ংক্রিয়ভাবে শুরুতে 'সহায়তা' চালিত হবে, যদি এটি উপস্থিত থাকে provided

তালিকা: এমন কোনও খালি সংগ্রহস্থল প্রদর্শন করে যার নাম ব্যবহারকারীর হোম ডিরেক্টরিতে ".git" দিয়ে শেষ হয়। অন্য কোনও গিট সংগ্রহস্থল দৃশ্যমান নয়, যদিও এটি গিট-শেলের মাধ্যমে ক্লোনযোগ্য হতে পারে। 'তালিকা' গিটের কলগুলির সংখ্যা কমাতে ডিজাইন করা হয়েছে যা উপলভ্য সংগ্রহস্থলগুলি সন্ধান করতে হবে; যদি আপনার সেটআপে অতিরিক্ত ভাণ্ডার থাকে যা ব্যবহারকারী-আবিষ্কারযোগ্য হওয়া উচিত, আপনি সেই অনুযায়ী 'তালিকা' পরিবর্তন করতে পারেন wish

সুতরাং আমি নিম্নলিখিত কমান্ডগুলি রুট হিসাবে চালিয়েছি:

cp /usr/share/doc/git-1.7.4.4/contrib/git-shell-commands /home/git -R
chown git:developers /home/git/git-shell-commands/ -R
chmod +x /home/git/git-shell-commands/help
chmod +x /home/git/git-shell-commands/list
exit

আমি তখন gitব্যবহারকারী হিসাবে নিম্নলিখিতটি চালাতে সক্ষম হয়েছি :

[me@svn ~]$ su git
Password:
Run 'help' for help, or 'exit' to leave.  Available commands:
list
git> help
Run 'help' for help, or 'exit' to leave.  Available commands:
list
git> list
git> exit

এখন আমি দেখতে পাচ্ছি না যে ভাল সহায়তা এবং তালিকা কী, তবে লগইন কাজ করেছিল। :)


1
"তালিকা" ব্যবহারের জন্য কিছু কিছু (রিডমি অনুযায়ী) করার জন্য ব্যবহারকারীর হোম ডিরেক্টরিতে খালি সংগ্রহস্থল থাকতে হবে
মাইকেল 25

4

আমি ঠিক # mkdir ~git/git-shell-commandsতখন su gitকাজ করতে হয়েছিলgit 1.8.1.5-r1


1
হ্যাঁ, এটা কাজ করে। এখন আপনি গিট শেলের মধ্যে আছেন তারপর কি? আপনি যদি git-shell-commandsফোল্ডারের অভ্যন্তরে কিছু বাইনারি সিলেট না করেন তবে এটি মিথস্ক্রিয়তার জন্য সম্পূর্ণ অকেজো । আমি মনে করি এটি ছেড়ে যাওয়া আরও কার্যকর এবং আপনি সমস্ত বাইনারি অ্যাক্সেস সহ sudo -u git -sএকটি পূর্ণ bashশেল পান get আপনি বর্তমান ডিরেক্টরিতেও থাকুন।
এডিটিসি

3

যদি আপনি সেই কোডটি দেখেন যা সেই ত্রুটি বার্তাকে ট্রিগার করে (যা গিটের পুরানো সংস্করণে আলাদা ছিল বলে মনে হয় ):

if (access(COMMAND_DIR, R_OK | X_OK) == -1) {
  die("Interactive git shell is not enabled.\n"
     "hint: ~/" COMMAND_DIR " should exist "
     "and have read and execute access."); 

গিট শেল ডিরেক্টরিতে এটি সঠিক সমস্যা হওয়া উচিত।

এতে প্রোগ্রামগুলি সম্পাদন করতে ব্যবহারকারীর অবশ্যই ডিরেক্টরিটিতে অনুমতিগুলি পড়তে এবং সম্পাদন করতে হবে।


... এটি ত্রুটি বার্তায় যেমন বলেছে, বাস্তবে। (-:
জেডিবিপি

@ জেডিবিপি: দুঃখিত;) @ পিটার এবং আমি মনে করি আপনার কাছে ~/git-shell-commandsসঠিক অনুমতি আছে?
ভনসি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.