পাসওয়ার্ড প্রকাশ না করে ক্রোন জবতে মাইএসকিএল ডাম্প চালানো


11

আমি দৌড়াতে চাই

mysqldump -u aUser -p P4SSw0rd --all-databases > backup.sql

একটি ক্রোন চাকরিতে আমি কীভাবে নিরাপদে এটি করতে পারি?

আমি জানি আমি কমান্ডটি ঠিক সেখানে রাখতে পারলাম, তবে মেশিনে অ্যাক্সেস সহ যে কেউ এটিকে সরাসরি ক্রন্টাবের মাধ্যমে দেখতে পাবে। এটা করতে একটি ভাল উপায় আছে কি?


1
আপনার উদাহরণটি ভুল, এটি কোনও স্থান ছাড়াই -pP4SSw0rd হওয়া উচিত।
সাইমন উডসাইড

উত্তর:


14

হিসাবে বর্ণিত man mysqldump: দেখুন 6.1.2.1। মাইএসকিউএল রেফারেন্স ম্যানুয়ালিতে পাসওয়ার্ড সুরক্ষার জন্য শেষ-ব্যবহারকারীর নির্দেশিকা

একটি বিকল্প ফাইল হ'ল নিরাপদ বাজি, উপরের রেফারেন্স অনুযায়ী কমপক্ষে নয়। ক্রোন্টাবের ক্ষেত্রে এটি সরলরেখায় দেওয়া ভাল নয়, অন্তত ডিফল্টরূপে প্রক্রিয়া কমান্ড লাইনটি psঅন্য ব্যবহারকারীর জন্য দৃশ্যমান হওয়ার কারণে নয় । রেফারেন্সে বর্ণিত হিসাবে একইটি পরিবেশের পরিবর্তনশীলগুলির জন্য প্রযোজ্য।

মাইএসকিউএল রেফারেন্স ম্যানুয়ালটির প্রাসঙ্গিক অংশ:

কোনও বিকল্প ফাইলে আপনার পাসওয়ার্ড সংরক্ষণ করুন। উদাহরণস্বরূপ, ইউনিক্সে, আপনি নিজের হোম ডিরেক্টরিতে ফাইলের [client]বিভাগে আপনার পাসওয়ার্ডটি তালিকাভুক্ত করতে পারেন .my.cnf:

[client]
password=your_pass

পাসওয়ার্ডটি সুরক্ষিত রাখতে ফাইলটি অন্য কারও কাছে অ্যাক্সেসযোগ্য হওয়া উচিত নয়। এটি নিশ্চিত করতে, ফাইল অ্যাক্সেস মোডটি তে 400বা সেট করুন 600। উদাহরণ স্বরূপ:

shell> chmod 600 .my.cnf

কমান্ড লাইন থেকে পাসওয়ার্ড সম্বলিত একটি নির্দিষ্ট বিকল্প ফাইলের নামকরণ করতে --defaults-file=file_name, বিকল্পটি ব্যবহার করুন , যেখানে file_nameফাইলটির পুরো পথের নাম রয়েছে। উদাহরণ স্বরূপ:

shell> mysql --defaults-file=/home/francis/mysql-opts

বিভাগ ৪.২.৩.৩, "বিকল্প ফাইলগুলি ব্যবহার করা" , বিকল্প ফাইলগুলি আরও বিশদে আলোচনা করে।

এছাড়াও /programming//q/10725209 দেখুন


দেখে মনে হয় যে পিএস কমান্ডটি একটি x: ps: mysqldump -uroot -px xx mydb দিয়ে পাসওয়ার্ডটি অবিচ্ছিন্ন করে। আমি বলছি না যে এটি একটি ভাল সুরক্ষা (যদি আপনি কাজগুলি টাইপ করেন তবে পাসওয়ার্ডটি সরল পাঠ্যে প্রকাশিত হবে)।
লিংক

4

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

PASS=`cat /path/to/pwdfile`

 mysqldump -u aUser -p $PASS--all-databases > backup.sql

সুতরাং ক্রোনজব যদি ব্যবহারকারীর 'উদাহরণ' হিসাবে চালায় তবে ফাইলটির মালিকানা "উদাহরণ: উদাহরণ" এবং 0400 এর অনুমোদিত হওয়া উচিত।

আপনি একটি ব্যবহারকারী স্তরের .my.cnf ব্যবহার করে অনুরূপ ফাংশন অর্জন করতে পারেন ।


1
read PASS < /path/to/pwdfileএকই জিনিসটি করার জন্য একটি আইডোম্যাটিক্যালি ক্লিনার (যুক্তিযুক্তভাবে আমার ধারণা; superuser.com/q/323060/49184 প্রযোজ্য)।
ড্যানিয়েল অ্যান্ডারসন

* "হ্যাঁ একটি আইডেমিক্যালি ক্লিনার ওয়ে" ... সম্পাদনা হারিয়েছেন।
ড্যানিয়েল অ্যান্ডারসন

এমনকি বাশের সবচেয়ে সাধারণ বোঝার সাথে কারও কাছে সেই বিড়ালের সাথে কী চলছে তা দেখতে সক্ষম হওয়া উচিত। :)
গ্যারেট

1
সত্য, আমি এমনকি এটিও করতে চাই এটি সবচেয়ে সাধারণ উপায়, তবে এটি এখনও কিছুটা চোখের পাতায় :-)। যদি কেউ ইউইউওসিটিকে অভ্যাস করে তোলে তবে ফাইলটি এর চেয়ে বড় হলে এটি দংশিত হবে ARGMAX, শেলটি বিল্ট-ইন ব্যবহার করার পরিবর্তে এটি একটি অতিরিক্ত প্রক্রিয়া গ্রহণ করবে, এটি for i in `cat file`; do ...তার নিজের নির্মাণের সমস্যাগুলি ইত্যাদির মতো নির্মাণগুলিকে প্রলুব্ধ করতে পারে তবে অবশ্যই, সর্বাধিক জিনিসের সাথে: যদি কেউ জানে যে কি ঘটছে তবে যেটি তার পছন্দ হিসাবে করতে পারে। আমি এখানে কোনও ক্রুসেডে নেই, এটি কীভাবে প্রদর্শিত হতে পারে তা নির্বিশেষে :- ডি।
ড্যানিয়েল অ্যান্ডারসন

0

মেশিনে অ্যাক্সেস সহ যে কারওও কাছে /var/spool/cron/crontabs/যেমন /var/lib/mysqlঅনুমতি রয়েছে তেমন স্তরের অ্যাক্সেস রয়েছে। সুতরাং, ডিরেক্টরিগুলিতে যথাযথ অনুমতি সেট করুন এবং সম্পন্ন করুন। রুট-অ্যাক্সেস সহ যে কারওের সরাসরি ডাটাবেস ফাইলগুলিতে সরাসরি অ্যাক্সেস থাকে। আপনি যাকে মেশিনে অ্যাক্সেস করতে বিশ্বাস করেন না তার মেশিনে অ্যাক্সেস থাকা উচিত নয়।

সাধারণত লোকেরা কেবল তাদের নিজস্ব ক্রোনজবগুলি দেখতে পায় crontab -l


0

ব্যাকআপ উদ্দেশ্যে , যেমন mysql এ কেবল পঠনযোগ্য ব্যবহারকারী থাকার কথা বিবেচনা করুন

CREATE USER bUser IDENTIFIED BY 'p4ss';

GRANT SELECT ON *.* TO bUser@localhost;
GRANT LOCK TABLES ON *.* TO bUser@localhost;

mysqldump এর কাজটি করার জন্য কেবল SELECTএবং LOCK TABLESঅধিকারের প্রয়োজন ।

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