আমি কীভাবে গিটকে প্রতি গিট কমান্ডে সুডো লাগাতে বাধা দেব


11

আমি একটি ডিরেক্টরির নির্মিত /var/wwwসঞ্চয় করতে আমার ওয়েব মধ্যে ক্লোন অ্যাপ। আমি যখন প্রথমে এটা ব্যবহার উবুন্টু এবং প্রত্যেক সময় আমাকে প্রয়োজনীয় GitHub থেকে অ্যাপ আমি কি ক্লোন git pullএটা উবুন্টু প্রয়োজন নেই। এর কারণে আমি কিছু সমস্যায় পড়ছি। উদাহরণস্বরূপ, আমার ssh কী মেলে না। সুতরাং আমি যখন আমার কাজটি করি তখন আমাকে git pullএসএসএসের পরিবর্তে এইচটিটিপিএস ব্যবহার করতে হবে এবং প্রতিবার আমার অ্যাপ্লিকেশনটি টানতে এবং আপডেট করতে চাইলে আমার ব্যবহারকারী নাম এবং পাসওয়ার্ডটি ম্যানুয়ালি লিখতে হবে। আমি কীভাবে এটি কনফিগার করব যাতে প্রতিবার গিট ব্যবহার করার সময় আমাকে সুডো ব্যবহার করতে হয় না?

উত্তর:


13

এখানে বেশ কয়েকটি জিনিস চলছে:

  • আপনি যখন sudo git checkout ..., সমস্ত ফাইলগুলি রুট ব্যবহারকারী এবং রুট গোষ্ঠীর মালিকানাধীন থাকে। স্ট্যান্ডার্ড অনুমতি সহ, এই কারণেই এই ফাইলগুলিতে পরবর্তী পরিবর্তনের জন্য আপনাকে মূল হতে হবে।

  • /var/www/ডিফল্টরূপে www-dataগ্রুপের মালিকানাধীন । আপনার ব্যবহারকারীর কিছু ডিফল্ট নয়।

লেখার সবচেয়ে সহজ উপায় /var/www/হ'ল কেবলমাত্র আপনার ব্যবহারকারীকে www-ডেটা গ্রুপে যুক্ত করা । আপনি অবশ্যই ডিরেক্টরিটি আপনার ব্যবহারকারীর মালিকানাতে পরিবর্তন করতে পারবেন তবে আপনি যদি প্রাক-খালি না করে থাকেন তবে এর কিছু কদর্য নকশা-ও প্রভাব থাকতে পারে।

আপনার ব্যবহারকারীকে www-ডেটা গ্রুপে যুক্ত করার পরে আপনাকে পুনরায় লগ ইন করতে হবে।

আপনার ক্ষেত্রে বিশেষভাবে, আপনাকে রুট-মালিকানাধীন ডেটার বর্তমান গণ্ডগোলের সমাধান করতে হবে। আপনি হয় এটি রুট হিসাবে পুনরায় মুছে ফেলতে পারেন (এবং পুনরায় চেকআউট) তবে আপনার যদি সুরক্ষিত কাজ না করে থাকেন তবে আপনার ব্যবহারকারীর কাছে সমস্ত কিছু আবার টানাই ক্লিনার হবে। নিম্নলিখিত উদাহরণটি অত্যন্ত অলস এবং ধরে নিয়েছে যে আমরা / var / www / এ একমাত্র জিনিস যা বলছি:

sudo chown -R www-data: /var/www/

ঠিক আছে, কেবল sudo git checkoutঅন্য ডিরেক্টরিতে প্রবেশ করা ভাল , এবং তারপরে আমার অ্যাপ্লিকেশনটি / var / www ডিরেক্টরিতে স্থাপন করা কি ভাল ? আমি কেবল কোথাও পড়েছি যে প্রায়শই var ডিরেক্টরিতে প্রকল্পগুলির চেকআউট করা ভাল ধারণা নয় with একজন ব্যক্তি হোম ডিরেক্টরিতে প্রকল্পগুলি পরীক্ষা করার পরামর্শ দিয়েছিলেন
স্কট

2
আপনি যদি গিটকে মূল হিসাবে চালানো বন্ধ করেন তবে সেরা হবে । তার জন্য লক্ষ্য। কোনও পরিকল্পনা যা আপনাকে এটিকে মূল হিসাবে চালিত করতে ইতোমধ্যে ব্যর্থ হয়েছে। আপনি কি একটি webdirectory মধ্যে চেক আউট সম্পর্কে বলছে সঠিক - আপনার লোকেদের প্রবেশাধিকার প্রদান .gitডিরেক্টরির জিনিষ আপনি যে ব্যক্তিরা অ্যাক্সেস করতে যাক না চান তাদের অ্যাক্সেস দিতে পারেন, কিন্তু আপনার অ্যাক্সেস প্রতিরোধ করতে পারি .git/Dir যা হ্রাস পুরো সমস্যা।
অলি

এছাড়াও অন্যান্য গ্রহণযোগ্য ডিরেক্টরি স্ট্রাকচার রয়েছে যেখানে আপনার ওয়েবসাইটের জন্য একটি হোল্ডিং ডিরেক্টরি রয়েছে যেখানে অ-হোস্ট করা স্টাফগুলি যায় (আপনার .git সহ) এবং এর ভিতরে একটি পাবলিক / ডিরেক্টরি রয়েছে যা আপনি আপাচে হোস্ট করতে বলেছিলেন। একটি ওয়েবসাইট / var / www / এ রাখার নীতিগুলি অত্যন্ত প্রত্নতাত্ত্বিক।
অলি

আপনার কি কোনও প্রস্তাবিত ডিরেক্টরি কাঠামো আছে? মূলত, আমার চেকআউট আছে এবং তারপরে আমাকে এটি একটি .tgz এ বান্ডিল করতে হবে। এবং তারপরে আমাকে তা নোড অ্যাপ্লিকেশনটিতে আনতে হবে। এটি উপায় দ্বারা একটি উল্কাপূর্ণ আবেদন। আমি এই তিনটি পৃথক ফোল্ডার / ফাইলগুলি কোথায় রাখব তা আমি এক ধরনের বিভ্রান্ত
স্কট

@ স্কট আমি এই একই ইস্যুতে দৌড়েছি। রেপোতে পরবর্তী সাবকম্যান্ডগুলি (আমার ক্ষেত্রে) গিট কল করবে এবং অন্যান্য রেপো ক্লোন করার চেষ্টা করবে। আপনি যেমনটি বলেছেন এসএসএইচ কীগুলি পুনরায় সারিবদ্ধ করার জন্য সমাধানটি ছিল sudo ব্যবহার না করে প্রক্রিয়া শুরু করা। এই প্রশ্নোত্তর ও থ্রেড আলোচনার অনেকাংশই একটি কাজের আশপাশ যা সম্ভবত আপনি রাস্তার নিচে দেয়ালগুলিতে আঘাত করবেন।
জর্দান স্টেফেনেলি

0

এইচএম, ফোল্ডারের মালিক পরিবর্তন করবেন? আমি আমার www ফোল্ডারটিকে / হোম / ইউজারনেমে সরিয়েছি, আপনি এর অবস্থানটি / ইত্যাদি / অ্যাপাচি 2 / সাইট-সক্ষম / 000-ডিফল্টে পরিবর্তন করতে পারবেন


সুতরাং এটি ডিরেক্টরিতে করতে হবে যে আমি আমার ক্লোনটি সংরক্ষণ করছি?
স্কট

হ্যাঁ অবশ্যই. ডিফল্টরূপে /var/wwwলেখা যায় না।
জয়ফুলগ্রাইন্ড

0

এই উত্তরটি নিয়ে আমি কিছুটা দেরি করেছি তবে আমি খুঁজে পেয়েছি যে প্রতিবার পাসওয়ার্ড প্রবেশ করা এড়াতে আমাকে https থেকে ssh এ রেপো পরিবর্তন করতে হবে।

গিথুব ডট কম সহায়তা বিভাগ থেকে:

গিট রিমোট সেট-url কমান্ডটি একটি বিদ্যমান রিমোট রিপোজিটরি URL পরিবর্তন করে।

ওপেন টার্মিনাল।

আপনার স্থানীয় প্রকল্পে বর্তমান ওয়ার্কিং ডিরেক্টরিটি পরিবর্তন করুন।

আপনি যে রিমোটটি পরিবর্তন করতে চান তার নাম পেতে আপনার বিদ্যমান রিমোটগুলি তালিকাবদ্ধ করুন।

git remote -v
origin  https://github.com/USERNAME/REPOSITORY.git (fetch)
origin  https://github.com/USERNAME/REPOSITORY.git (push)

গিট রিমোট সেট-ইউআরএল কমান্ডের সাহায্যে আপনার রিমোটের URL টি এইচটিপিএস থেকে এসএসএইচ করুন।

git remote set-url origin git@github.com:USERNAME/REPOSITORY.git

দূরবর্তী ইউআরএল পরিবর্তিত হয়েছে তা যাচাই করুন।

git remote -v

# নতুন রিমোট URL টি যাচাই করুন

origin  git@github.com:USERNAME/REPOSITORY.git (fetch)
origin  git@github.com:USERNAME/REPOSITORY.git (push)
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.