zsh compinit: নিরাপত্তাহীন ডিরেক্টরি


238

এর অর্থ কী এবং আমি কীভাবে এটি ঠিক করতে পারি?

zsh compinit: insecure directories, run compaudit for list.
Ignore insecure directories and continue [y] or abort compinit [n]?

compauditরিটার্নগুলি চালানো নিম্নরূপ:

There are insecure directories:
/usr/local/share/zsh/site-functions

2
এই সতর্কতা কেন হয় কেউ জানেন?
ব্লেজার্ড

3
@ ব্লাজজার্ড বৈধ প্রশ্ন জিজ্ঞাসার এক বছর পরে (একটি মন্তব্য হিসাবে), 'লিঙ্কইন্ডি' নীচে এটির উত্তর দিয়েছে (উত্তর হিসাবে)।
শুভ গ্রিন কিড নেপস

উত্তর:


341

এটি আমার জন্য এটি স্থির করে:

$ cd /usr/local/share/zsh
$ sudo chmod -R 755 ./site-functions

ক্রেডিট: zsh মেলিং তালিকার একটি পোস্ট


সম্পাদনা: মন্তব্যগুলিতে @ বাইসাইকবারম্যান দ্বারা নির্দেশিত হিসাবে আপনার মালিককেও আপডেট করতে হবে site-functions:

$ sudo chown -R root:root ./site-functions

আমার মেশিনে (ওএসএক্স 10.9), আমার এটি করার দরকার নেই তবে ওয়াইএমএমভি।

সম্পাদনা 2: ওএসএক্স 10.11 এ কেবল এটি কাজ করেছে:

$ cd /usr/local/share/
$ sudo chmod -R 755 zsh
$ sudo chown -R root:staff zsh

এছাড়াও ব্যবহারকারী: কর্মীরা ওএসএক্সে সঠিক ডিফল্ট অনুমতি।


1
আপনার যদি কোনও শিকড় না থাকে তবে
কিরিল_গাম

2
@ কিরিল_আইগাম "কোনও মূল নয়" বলতে কি আপনার অর্থ "কোনও রুট অ্যাক্সেস নেই "? যদি তা হয়, তবে আপনার সেই ফোল্ডারে ফাইলগুলি অনুলিপি করা উচিত যা আপনার অ্যাক্সেসযুক্ত রয়েছে, আপনার ফিক্সটি ঠিক করতে .zshenvএবং .zshrcনতুন ফোল্ডারটি ব্যবহার করতে এবং chmodনতুন ফোল্ডারে যেমন আমি ফোল্ডারের সাথে পোস্ট করেছেন তেমনই করুন।
চক্রত

@ কিরিল_গুম আমার সাথে লিঙ্কযুক্ত মেলিং তালিকার বার্তাটি দেখুন।
চক্রত

1
আমি লক্ষ্য করেছি যে মালিককে রুটে সেট করার পরে, লেখার অ্যাক্সেসটি উভয় গ্রুপ এবং অন্য উভয়ের জন্য বাতিল করা দরকার। আমি পরিবর্তিত chmodকমান্ড sudo chmod -R go-w zsh
gdvd

1
নোট: আমি symlinks ছিল /usr/local/share/zsh/site-functionsথেকে /usr/local/Cellarএবং ছিল chown -R root:staff /usr/local/Cellarএছাড়াও আগে এই কাজ করেন।
এমভিসিএইচআর

263
compaudit | xargs chmod g-w

কৌতুকটি করবে, দেখুন http://www.wezm.net/technical/2008/09/zsh-cygwin-and-insecure-directories/


6
এই হল! লেখার অনুমতিটি গ্রুপে সরানো হচ্ছে। ধন্যবাদ
glarrain

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

7
নোট করুন যে আপনাকে ফাইলগুলির মালিককেও রুটে পরিণত করতে হতে পারে - আমার করতে হয়েছিল:compaudit | xargs chown root
ব্র্যাড পার্কস

4
এটি অবশ্যই আমার জন্য সেরা সমাধান। আমি হোমব্রিউয়ের সাথে zsh এবং zsh- সম্পূর্ণকরণ ইনস্টল করেছি, সুতরাং স্পষ্টতই এটিকে মূলের মালিকানাতে পরিবর্তন করতে চাইনি।
কেটি লাভাল্লি

2
compaudit | xargs chmod g-wএকসাথে ompaudit | xargs chown rootআমার জন্যও কাজ করেছেন এবং হোমব্রুকে খুশি রাখতে হাজির হয়েছেন। কেউ কি আরও কিছু ঘটছে তা ব্যাখ্যা করতে পারেন।
nyxee

76

বেশিরভাগ উত্তর সমাধান সহ আসে তবে এই সতর্কতা কেন ঘটে তা উল্লেখ করবেন না। জেডএসএইচ- এর সংকলনের একটি অংশ এখানে দেওয়া হয়েছে :

নিরাপত্তার জন্য কারণে চেক compinit যদি সমাপ্তির সিস্টেম ব্যবহার করেন না রুট বা বর্তমান ব্যবহারকারীর মালিকানাধীন ফাইল , অথবা ডিরেক্টরি যে world- বা গোষ্ঠী-লিখনযোগ্য বা রুট বা বর্তমান ব্যবহারকারীর মালিকানাধীন নেই যে ফাইল । যদি এই জাতীয় ফাইল বা ডিরেক্টরিগুলি পাওয়া যায়, সম্পূর্ণরূপে সিস্টেমটি ব্যবহার করা উচিত কিনা কমপিনেট জিজ্ঞাসা করবে। এই পরীক্ষাগুলি এড়াতে এবং সমস্ত ফাইলকে জিজ্ঞাসা না করেই ব্যবহার করার জন্য, বিকল্পটি -u ব্যবহার করুন এবং সমস্ত অনিরাপদ ফাইল এবং ডিরেক্টরিগুলিকে চুপচাপ উপেক্ষা করে -i বিকল্পটি ব্যবহার করুন i -সি বিকল্পটি দেওয়া হলে এই সুরক্ষা চেকটি পুরোপুরি এড়িয়ে যায়।

অতএব, সমাধানটি নিম্নলিখিতগুলির একটি (বা সমস্ত) স্থির করে বোঝায়:

  • বর্তমান ব্যবহারকারীকে সমস্ত ডিরেক্টরি / উপ-ডিরেক্টরি / ফাইলের কারণ হিসাবে নির্ধারিত:

    compaudit | xargs chown -R "$(whoami)"
    
  • ফাইলগুলির জন্য গ্রুপ / অন্যদের লেখার অনুমতিগুলি সরানো:

    compaudit | xargs chmod go-w
    

আর একটি পদ্ধতি হ'ল ব্যবহার করে এই চেকগুলি এড়িয়ে যাওয়া

compinit -u

তবে আমি সত্যিই এটির পরামর্শ দিচ্ছি না, কারণ একটি কম্বলের নীচে সমস্যাগুলি লুকানো কেবল অল্প সময়ের মধ্যেই সমস্যার সমাধান করে।


1
ধন্যবাদ। আমি অবাক হয়েছি যে লোকেরা এলোমেলোভাবে কমান্ড টাইপ করবে ডাব্লু / ও আসলে সমস্যাটি বুঝতে পারে।
shriek

3
একাধিক ব্যবহারকারী সিস্টেম সম্পর্কে কি? এই জাতীয় দৃশ্যে, chown -R "$(whoami)"হোম ডিরেক্টরি থেকে বাইরের ফাইলগুলির জন্য যেমন /usr/local/কাজ করবে না। ডক্স অনুসারে, ফাইলগুলি রুট-মালিকানাধীন করে তোলা কি আরও বেশি অর্থবোধ করে না?
goetzc

আমার এই উত্তরটি সবচেয়ে ভাল লেগেছে। আমাকে কেন এমন হয়েছে তা ভেবে আমাকে ভাবিয়ে তুলেছে। আমার ব্যবহারকারীর প্রধান গোষ্ঠীতে অন্য একজন ব্যবহারকারীকে যুক্ত করার পরে এটি ঘটেছে। $ HOME / .antigen / bundles এর অধীন ডিরেক্টরিগুলি আমার ব্যবহারকারী এবং আমার গোষ্ঠীর মালিকানাধীন। সুতরাং আমার ক্ষেত্রে সেই ব্যবহারকারীকে দল থেকে সরানো সমস্যার সমাধান করেছে।
স্যামুয়েল

25

আমি যখন sudo -iএকটি রুট শেল শুরু করি তখন একই সতর্কতা পেয়েছিলাম , @ চক্রীর সমাধানটি আমার পক্ষে কার্যকর হয়নি।

তবে আমি কাজের -uস্যুইচ পেয়েছি compinit, যেমন আপনার .zshrc / zshenv বা আপনি যেখানে ডেকেছেনcompinit

compinit -u

নোট: উত্পাদন সিস্টেমের জন্য প্রস্তাবিত নয়

Http://zsh.sourceforge.net/ ডক / রিলিজ / কমপ্লেশন- সিস্টেমে এইচটিএমএল# আরও দেখুন


এটাই ছিল আমার পক্ষে একমাত্র আত্মা। উইন্ডোজ 10 লিনাক্স সাব-সিস্টেম উপর compinit সঙ্গে zsh ব্যবহার করার চেষ্টা করা হয়েছিল
denns

13

এটি হাই সিয়েরার আপডেটের পরে আমার ম্যাকের জন্য কাজ করে।

গ্রুপ লেখার অ্যাক্সেস সরান:

sudo chmod g-w /usr/local/share/zsh/site-functions
sudo chmod g-w /usr/local/share/zsh

পরিবর্তনটি zsh ডিরেক্টরিতে সীমাবদ্ধ রাখা ভাল।


1
sudo chmod gw / usr / સ્થાનિક / শেয়ার / zsh / সাইট-ফাংশন (ম্যাক 10.15 এ আমার জন্য কাজ করেছেন)
শিজিন

এটিই ছিল একমাত্র ফিক্স যা ম্যাক কাতালিনাতে আমার জন্য কাজ করেছিল
ব্যবহারকারীর 8467470

12

গৃহীত উত্তরটি আমার জন্য ম্যাকওস সিয়েরা (10.12.1) এ কাজ করে না। এটি / ইউএসআর / স্থানীয় থেকে পুনরাবৃত্তি করতে হয়েছিল

cd /usr/local
sudo chown -R <your-username>:<your-group-name> *

দ্রষ্টব্য: আপনি আপনার ব্যবহারকারীর নামটি whoamiএবং এর সাথে আপনার গ্রুপটি পেতে পারেনid -g


4
আমি সিয়েরায়ও এইভাবে চেষ্টা করিনি, যদিও কোনও মাল্টিউজার সিস্টেমে সঠিক ব্যবহারকারী / গোষ্ঠীটি মূল হওয়া উচিত: কর্মী
মার্শাল ইউবঙ্কস

5

এই দুটি লাইন আমার জন্য স্থির করেছে।

sudo chown -R _user_:root /usr/local/share/zsh

sudo chown -R _user_:root /usr/local/share/zsh/*

3
আমার জন্য কাজ! আমি আমার পিসিতে একটি নেটওয়ার্ক অ্যাকাউন্ট ব্যবহার করি - উবুটুন 16.04 sudo chown -R $(whoami):root /usr/local/share/zsh sudo chown -R $(whoami):root /usr/local/share/zsh/*
hoangdv

5

ম্যাকোস সিয়েরায় আপনাকে চালানো দরকার: sudo chown -R $(whoami):staff /usr/local


4

আমি এটা করে এটা ঠিক করেছি

sudo chown root:staff -R /usr/local/share/zsh

আমার ক্ষেত্রে অন্যান্য ডিরেক্টরিতে শেয়ার / এছাড়াও "স্টাফ" গ্রুপ নির্ধারিত রয়েছে


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


3

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



3

আমার যন্ত্র:

System Version: macOS 10.15.4 (19E287)
Kernel Version: Darwin 19.4.0

সুতরাং এখানে আমি কি করেছি,

  1. রান করুন compauditএবং এটি আপনাকে ডিরেক্টরিগুলির একটি তালিকা দেবে যা মনে করে যে এটি অনিরাপদ।

  2. চালান sudo chmod -R 755 target_directory (উদাহরণ sudo chmod -R 755 /usr/local/share/zsh:)

Exmaple:

compaudit

আয়:

, / Usr / স্থানীয় / শেয়ার / zsh

তাই আমি দৌড়

sudo chmod -R 755 /usr/local/share/zsh

এখানে আরও লিঙ্ক পড়ুন


2

আজ সকালে, আমার সিস্টেমে কিছু প্যাকেজ আপডেট হয়েছে এবং আমাকে এই ত্রুটি বার্তাটি রেখে গেছে। আমি উবুন্টু 18.04 ব্যবহার করছি।

আপাতদৃষ্টিতে, আপডেটে থাকা কোনও কিছু ব্যবহারকারীর নাম এবং গোষ্ঠীটিকে সংখ্যায় পরিবর্তিত করেছে, তার পরিবর্তে root:

# There are insecure files: /usr/share/zsh/vendor-completions/_code
# sudo ls -alh
-rw-r--r-- 1  131  142 2.6K 2019-10-10 16:28 _code

আমি সহজেই এই ফাইলটির জন্য ব্যবহারকারী এবং গোষ্ঠীটিকে ফিরিয়ে দিয়েছি rootএবং সমস্যাটি চলে গেছে। আমি হয়নি না কোনো অনুমতি পরিবর্তন করতে হবে, এবং তা করার যদি না এই সমস্যার অন্তর্নিহিত কারণ বোঝা যায় বিরুদ্ধে সতর্ক হবে।

sudo chown root _code && sudo chgrp root _code

স্যুইচিং 131এবং 142ফিরে যাওয়ার পরে root, zsh এর এই ত্রুটি বার্তাটি চলে গেল।


2
  1. রান করুন compauditএবং এটি আপনাকে ডিরেক্টরিগুলির একটি তালিকা দেবে যা এটি নিরাপদ বলে মনে করে

  2. sudo chown -R username:root target_directory

  3. sudo chmod -R 755 target_directory


2

ক্যাটালিনার প্রতি ইদানীং আমার একই সতর্কতা ছিল। এটিকে আপনার .zshrc এর শীর্ষে রেখে দেওয়া সহজ কাজ ound

ZSH_DISABLE_COMPFIX=true

1

তালিকাভুক্ত সমাধানগুলির মধ্যে আমার পক্ষে কাজ করা হয়নি। পরিবর্তে, আমি হোমব্রুউ আনইনস্টল এবং পুনরায় ইনস্টল করেছিলাম, যা কৌশলটি করেছিল। আনইনস্টল নির্দেশাবলী এখানে পাওয়া যেতে পারে: http://osxdaily.com/2018/08/12/how-uninstall-homebrew-mac/



1

ম্যাক ওএস এক্স সমাধান:

$ sudo chmod -R 755 /usr/local/share/zsh
$ sudo chown -R root:staff /usr/local/share/zsh

এছাড়াও "ব্যবহারকারী: কর্মী = ওএসএক্সে ডিফল্ট রুট ব্যবহারকারী।


0

google-cloud-sdkইনস্টল স্ক্রিপ্টটি চালানোর পরে আমি এই সমস্যাটি পেয়েছি , যা একটি প্রবেশের মাধ্যমে শেলের সাথে কমান্ড-সমাপ্তি যুক্ত করে .zshrc

Zsh এ পরিপূর্ণতা কনফিগার করার জন্য হোমব্রাবির নির্দেশাবলী অনুসরণ করা সহায়ক ছিল।

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