গ্রেপ ব্যবহার করার সময় কোনও পাসওয়ার্ড বা অন্যান্য সংবেদনশীল তথ্য বাশ ইতিহাসে সংরক্ষণ করা থেকে কীভাবে রোধ করবেন?


21

আমাকে সম্প্রতি একটি পাসওয়ার্ডের জন্য গ্রেপ করতে হয়েছিল যা একটি ফাইলে সংরক্ষিত থাকতে পারে। বাশ ইতিহাসে সেই লাইনটি প্রদর্শিত হোক তা আমি চাইনি।

গ্রেপ ব্যবহারের সময় আমি কীভাবে কোনও পাসওয়ার্ড বা অন্যান্য সংবেদনশীল তথ্য বাশ ইতিহাসে সংরক্ষণ করা থেকে রোধ করতে পারি? উদাহরণস্বরূপ, স্টিডিন বা কনসোল থেকে প্যাটার্নটি পড়তে আমি গ্রেপ পেতে পারি কীভাবে?

উত্তর:


37

আপনি যদি HISTCONTROL=ignorespaceআপনার .Bashrc রাখেন , এবং আপনি কমান্ড নামের আগে একটি স্থান রাখেন, এটি আপনার ইতিহাসে যুক্ত হবে না।

$ export HISTCONTROL=ignorespace
$ grep "passwd" secret_password_file.txt   # added to history
$  grep "passwd" secret_password_file.txt  # not added to history

3
এফডাব্লুআইডাব্লু: শিরোনামে প্রশ্ন এবং শরীরে প্রশ্ন সম্পূর্ণ আলাদা। আমি শিরোনামে প্রশ্নের উত্তর।

আপনার সমালোচনা উপযুক্ত। আমি সবেমাত্র শিরোনাম সম্পাদনা করেছি। এটা কি এখন ভাল? আমি এখনও ভাবি (এবং তাই সম্প্রদায়টি মনে হয়) যে আপনার উত্তরটি সবচেয়ে প্রাসঙ্গিক।
লিও

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

5

কেবল সম্পূর্ণতার জন্য, আমি শরীরে এই প্রশ্নের উত্তর দিচ্ছি: স্টিডিনের থেকে নিদর্শনগুলি পড়তে গ্রেপ কীভাবে পাবেন:

আপনি -fবিকল্পটি ব্যবহার করতে পারেন :

grep -f- /path/to/file

এটি stdinপ্রতি লাইনে একাধিক নিদর্শন পড়বে । ( -মানে stdin; আপনি প্রতি প্যাটার্ন সহ একটি ফাইলও নির্দিষ্ট করতে পারতেন, প্রতি লাইন একটি) one grepলাইনগুলি /path/to/fileমিলবে যা নির্দিষ্ট নিদর্শনগুলির সাথে মেলে।


তার জন্য ধন্যবাদ. এটি অন্য কোথাও পাশাপাশি ব্যবহারের জন্য একটি ভাল অবদান এবং একটি সহজ কৌশল, যখন কোনও or'ed প্যাটার্ন প্রয়োজন হয় তখন বলুন
লিও

2

এটিই আমি সেরাটি নিয়ে আসতে পারি:

grep $(read -p "Pattern: "; echo $REPLY) .*

এটি কি যথেষ্ট নিরাপদ? টার্মিনালটি স্ক্রোল করা ছাড়াও প্যাটার্নটি পুনরুদ্ধার করার কি আছে? একটি সুন্দর উপায় আছে?


3
read -sপ্রতিধ্বনি রোধ করতে আপনি এটি ব্যবহার করতে পারেন ( এই প্রশ্নটিও দেখুন )। psযদিও আউটপুটটিতে গোপনীয়তা দৃশ্যমান হবে । আপনি এর পরিবর্তে grep -f /dev/stdin *(বা grep -f - *) ব্যবহার করতে পারেন যাতে ^D(read -es; echo $REPLY) | grep -f - *
গ্রেপ

1
ক্যাপচার শেলের চারপাশে ডাবল উদ্ধৃতি চিহ্ন থাকা উচিত। এই মুহুর্তে, ব্যবহারকারী যদি স্পেস বা কিছু বিশেষ অক্ষর প্রবেশ করে তবে এটি ভেঙে যাবে।
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.