সাধারণ ব্যবহারকারী হিসাবে আপডেটড কমান্ড কীভাবে ব্যবহার করবেন?


10

locateকমান্ড লিনাক্স খুব দরকারী সরঞ্জাম হয় তাহলে কিন্তু এটি শুধুমাত্র রুট বলে মনে হয় চালাতে পারেন updatedbকমান্ড যা খুবই এটি ব্যবহার করতে unconvinent হয়। সুতরাং কিভাবে সাধারণ ব্যবহারকারী আপডেট বি কমান্ড চালানোর জন্য প্রাইভেলিজ রাখতে?

updatedb সনাক্ত কমান্ড দ্বারা ব্যবহৃত ডিবি আপডেট করার জন্য কমান্ড ব্যবহার।

সাধারণ ব্যবহারকারী হিসাবে আপডেট বি চালানোর চেষ্টা করার সময় নিম্নলিখিত ত্রুটি বার্তাটি রয়েছে:

[mirror@home code]$ updatedb
updatedb: can not open a temporary file for `/var/lib/mlocate/mlocate.db'

বা:

updatedb -o db
updatedb: can not change group of file `/var/lib/gforge/chroot/home/users/bigmeow/tmp/db.uhEZFQ': Operation not permitted

উত্তর:


17

কমান্ডটি এতে সম্পাদনা করুন:

updatedb --require-visibility 0 -o ~/.locate.db

"আপডেটবিড (8)" থেকে:

-l, --require-visibility FLAG

উত্পন্ন ডাটাবেসে এফএলএজে ' এটির আগে ফাইলের দৃশ্যমানতার প্রয়োজন ' পতাকাটি সেট করুন ।

যদি এফএলএজি 0 বা না হয়, বা যদি ডাটাবেস ফাইলটি "অন্যরা" দ্বারা পঠনযোগ্য হয় বা এটি স্লোকের মালিকানাধীন না হয় তবে চিহ্নিত করুন (1) ব্যবহারকারীর চলমান অবস্থান (1) ডিরেক্টরিটি পড়তে না পারলেও ডাটাবেস এন্ট্রিগুলি আউটপুট করে দেয় ডাটাবেস এন্ট্রি দ্বারা বর্ণিত ফাইলটি সন্ধান করতে।

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

নোট করুন যে ডাটাবেসটি স্লোকের মালিকানাধীন এবং এটি "অন্য" দ্বারা পাঠযোগ্য না হলে কেবল দৃশ্যমানতা পতাকাটি পরীক্ষা করা হবে।


আপনি --require-visibilityপতাকাটি কী তা ব্যাখ্যা করুন ... তবে আপনি কেন কিছুটা ব্যাখ্যা করতে পারেন কেন? যেমন @xaizek যা করছেন কেবল তাই করবেন না এবং --require-visibilityপতাকা ব্যবহার না করেই আপনার ব্যবহারকারীর অনুমতিপ্রাপ্ত কোনও স্থানে ডাটাবেস তৈরি করবেন না কেন ?
ট্রেভর বয়ড স্মিথ

পরে ম্যান পেজে আমার প্রশ্নের উত্তর রয়েছে:SECURITY Databases built with --require-visibility no [tbs: or 0] allow users to find names of files and directories of other users, which they would not otherwise be able to do.
ট্রেভর বয়েড স্মিথ

3

আপনি কেবল -oযুক্তি দিয়ে বাড়িতে ডাটাবেস তৈরি করতে পারেন updatedb:

updatedb -o ~/.locate.db

এবং এটি এর slocateমতো ব্যবহার করুন :

slocate --database=~/.locate.db <pattern>

আপনি সম্ভবত একটি উপনামের জন্য সংজ্ঞা দিতে চান slocate --database=~/.locate.db


1
আসলে -ও বিকল্পের সাথে, আমি ব্যর্থ, কেন? আপডেটড -o ডিবিডিবি আপডেটবিডি: ফাইলের গ্রুপ change / home/mirror/tmp/dbdb.zwHn1W পরিবর্তন করতে পারবেন না: অপারেশন অনুমোদিত নয়
মাই

1
@ হিউমিও কেন তা ঘটে তা নিশ্চিত নয়। হতে পারে / মিরর / টিএমপি অ-মানক বিকল্পগুলির সাথে মাউন্ট করা হয়েছিল, যা আপডেটডকে গ্রুপ পরিবর্তন করতে নিষেধ করেছে। যদিও এটি xaizek:usersমালিকের সাথে ডেটাবেস ফাইল তৈরি করেছে: আমার জন্য গ্রুপ জুটি, সুতরাং গ্রুপটি ডিফল্ট। আপনি /etc/updatedb.confফাইলটিতে বিকল্পগুলিও পরীক্ষা করতে পারেন ।
xaizek

আমি কি চিহ্নিত করার পরিবর্তে স্লোক ব্যবহার করতে হবে?
সেন্টোগুলিতে স্লোকটি

1
@ হিউগেমো slocateপুরানো একটি আরও সুরক্ষিত সংস্করণ locate। আমি মনে করি নামগুলির slocateসাথে সেন্টোদের ইনস্টল করা উচিত ছিল locate। যাইহোক, আপনার ক্ষেত্রে কোনও পার্থক্য থাকতে হবে না এবং মূলত বেশিরভাগ সম্ভাব্য ক্ষেত্রে (স্ল্যাকওয়্যারটিতে locateকেবল একটি প্রতীকী লিঙ্ক রয়েছে slocate)।
xaizek

1
@ হুগেমো এটি রচিত যা mlocateদ্রুত হওয়া উচিত, তবে এখনও এটির সাথে সামঞ্জস্যপূর্ণ slocate। আমি নিশ্চিত না যে এর কারণ কিনা। আপনি যদি চেষ্টা করতে না চান slocate, কোন সাইটটি কাজ করছে না, স্ল্যাকওয়্যার মিররগুলির একটি থেকে উত্স ডাউনলোড করুন, সেগুলিতে প্যাকেজগুলির উত্স অন্তর্ভুক্ত রয়েছে: এখানে দেখুন
xaizek

1

সম্পূর্ণ সমাধানের জন্য সমস্ত পদক্ষেপ এখানে রয়েছে (সেন্টোস 6.5 তে পরীক্ষা করা হয়েছে)

1) ডিবি উত্পাদন করুন:

updatedb --require-visibility 0 -o ~/.locate.db

2) ডিবি ব্যবহার করুন:

locate --database=/full/path/to/.locate.db (does not work with ~)
or
locate --database=.locate.db

3) একটি উপনাম তৈরি করুন:

alias mylocate='locate --database=/full/path/to/.locate.db'

4) আপনার স্থানীয় অবস্থান ডিবি ব্যবহার করুন:

mylocate <my pattern>

$HOMEপরিবর্তে ব্যবহার করুন ~, বা কেবল এ থেকে মুক্তি পান =। নিম্নলিখিত দুটিই কাজ করবে: locate --database ~/.locate.dbবা locate --database=$HOME/.locate.db। : এই থ্রেড দেখুন stackoverflow.com/questions/11587343/...
ardnew
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.