सवाल डेबियन-sys-maintain MySQL उपयोगकर्ता (और अधिक) क्या है?


मुझे 'डेबियन-सिस-रखरखाव' उपयोगकर्ता द्वारा कई बार काट दिया गया है जो उबंटू रिपॉजिटरीज़ से स्थापित mysql-server संकुल पर डिफ़ॉल्ट रूप से स्थापित किया गया है।

आम तौर पर क्या होता है मैं समस्या निवारण या नए विकास के लिए हमारे उत्पादन डेटाबेस (जो डेबियन / उबंटू पर नहीं चल रहा है) की ताजा प्रति खींचता है और mysql.user तालिका को बाहर करने के लिए भूल जाता है इसलिए डेबियन-sys-maintain उपयोगकर्ता को खो देता है।

यदि हम किसी भी कारण से नए mysql उपयोगकर्ताओं को जोड़ते हैं, तो मुझे तालिका को ओवरले करने के विरोध में इन्हें अपने विकास पर्यावरण में 'विलय' करना होगा।

उपयोगकर्ता के बिना मेरी प्रणाली अभी भी कार्यात्मक प्रतीत होती है, लेकिन त्रुटियों से पीड़ित है जैसे कि:

sudo /etc/init.d/mysql restart
Stopping MySQL database server: mysqld...failed.
error: 'Access denied for user 'debian-sys-maint'@'localhost' (using password: YES)'
  • डेबियन-सिस-रखरखाव के लिए क्या उपयोग किया जाता है?
    • क्या पैकेज रखरखाव करने वालों के लिए ऐसा करने का कोई बेहतर तरीका है जो वे करने की कोशिश कर रहे हैं?
  • इसे खोने के बाद इसे पुनर्स्थापित करने का सबसे आसान तरीका क्या है?
  • इस उपयोगकर्ता के लिए विशेषाधिकारों का सही / न्यूनतम सेट क्या है?
    • ऐसा लगता है कि '* * ...' पर सभी विशेषाधिकार प्रदान करने के लिए गरीब विचार

संपादित करें

अतिरिक्त प्रश्न - क्या /etc/mysql/debian.cnf में पासवर्ड पहले ही धोया गया है या यह सादा टेक्स्ट पासवर्ड है? यह महत्वपूर्ण है जब आप उपयोगकर्ता को फिर से बनाने के लिए जाते हैं और मुझे पहली कोशिश में यह सही नहीं लगता है।

धन्यवाद


65
2018-05-19 16:05


मूल


पासवर्ड /etc/mysql/debian.cnf में सादा टेक्स्ट है - Brent


जवाब:


डेबियन-सिस-रखरखाव के लिए क्या उपयोग किया जाता है?

डिफ़ॉल्ट रूप से यह सर्वर को लॉग रोल करने के लिए कहने के लिए प्रयोग किया जाता है। इसे कम से कम पुनः लोड और शटडाउन विशेषाधिकार की आवश्यकता है।

फ़ाइल देखें /etc/logrotate.d/mysql-server

इसका उपयोग किया जाता है /etc/init.d/mysql सर्वर की स्थिति प्राप्त करने के लिए स्क्रिप्ट। इसका उपयोग सर्वर को गलती से बंद / पुनः लोड करने के लिए किया जाता है।

यहां README.Debian से उद्धरण दिया गया है

* MYSQL WON'T START OR STOP?:
=============================
You may never ever delete the special mysql user "debian-sys-maint". This user
together with the credentials in /etc/mysql/debian.cnf are used by the init
scripts to stop the server as they would require knowledge of the mysql root
users password else.

इसे बहाल करने का सबसे आसान तरीका क्या है   मैं इसे खोने के बाद?

सबसे अच्छी योजना यह है कि इसे खोना न भूलें।

आप SQL फ़ाइल बनाने के लिए इस तरह के कमांड का उपयोग कर सकते हैं जिसका उपयोग आप बाद में खाते को फिर से बनाने के लिए कर सकते हैं।

mysqldump --complete-insert --extended-insert=0 -u root -p mysql | grep 'debian-sys-maint' > debian_user.sql

क्या पासवर्ड है   /etc/mysql/debian.cnf पहले ही धोया गया है

पासवर्ड धोया नहीं है।


57
2018-05-19 16:10





आप यह भी कर सकते हैं:

sudo dpkg-reconfigure mysql-server-5.0

जो आपको डेबियन-सीएस-रखरखाव उपयोगकर्ता को फिर से बनाने का विकल्प देगा। मौजूदा उपयोगकर्ता और डेटाबेस सुरक्षित हैं।


19
2017-08-22 15:29



यह mysql-server-5.5 पर भी काम करता है। - serverSentinel


डेबियन-सिस-maint उपयोगकर्ता डिफ़ॉल्ट रूप से एक है मूल समकक्ष। इसका उपयोग डेबियन सिस्टम पर कुछ रखरखाव स्क्रिप्ट द्वारा किया जाता है, और साइड-इफेक्ट के रूप में, उपयोगकर्ताओं को /etc/mysql/debian.cnf (अच्छा या बुरा?) में सादे टेक्स्ट पासवर्ड देखने के लिए बॉक्स पर रूट पहुंच के साथ अनुमति देता है।

आप उपयोगकर्ता को फिर से बना सकते हैं:

GRANT ALL PRIVILEGES on *.* TO `debian-sys-maint`@`localhost` IDENTIFIED BY 'your password' WITH GRANT OPTION;

केवल सुनिश्चित करें कि पासवर्ड मेल खाता है कि /etc/mysql/debian.cnf में


19
2018-05-19 16:17



पुन (अच्छा या बुरा) - अगर कोई रूट बनने का प्रबंधन करता है तो वे पूरी तरह से सही विकल्पों के साथ सर्वर को पुनरारंभ करके विशेषाधिकार प्रणाली को बाईपास कर सकते हैं। यदि आप एक हमलावर रूट प्राप्त करते हैं, तो शायद आपके पास बड़ी समस्याएं हैं तो कॉन्फ़िगरेशन फ़ाइल। - Zoredache
भी पुन: अच्छा या बुरा - मुझे भूल गए थे जब MySQL रूट खाता पासवर्ड फिर से सेट करने के लिए मुझे डेबियन-sys-maintain पहुंच पर भरोसा करना पड़ा। यह फॉलबैक विकल्प अच्छा था। - Brent
@ ब्रेंट: देखें dev.mysql.com/doc/refman/5.0/en/resetting-permissions.html mysql रूट पासवर्ड को रीसेट करने के लिए कैसे। मैंने इस उपयोगकर्ता को डेबियन पर कई mysql इंस्टॉल पर अक्षम कर दिया है क्योंकि यह बड़ी टेबल होने पर जांच तालिका के साथ स्टार्टअप पर कहर का कारण बन सकता है। - Nathan
नाथन, उस लिंक के लिए धन्यवाद। यह मेरे लिए नई जानकारी है। यदि आपके पास डेबियन-सीएस-रखरखाव खाते को पूरी तरह से अक्षम करने की प्रक्रिया है, तो आप इसे यहां एक अलग उत्तर के रूप में क्यों शामिल नहीं करते हैं। वह महान होगा! - Brent
शट डाउन / स्टार्टअप विशेषाधिकार देने के लिए एक बेहतर अनुदान होगा। - jmtd


मैं सिर्फ टिप्पणी करना चाहता था, लेकिन मुझे लगता है सही वाक्यविन्यास इसकी अपनी प्रविष्टि का हकदार है। यह बना देगा डेबियन-सिस-maint उपयोगकर्ता:

mysql> GRANT ALL PRIVILEGES on *.* TO 'debian-sys-maint'@'localhost' IDENTIFIED BY 'plaintextpassword' WITH GRANT OPTION; FLUSH PRIVILEGES;

यदि आपके पास अभी भी /etc/mysql/debian.cnf फ़ाइल है, तो बस वहां पासवर्ड का उपयोग करें।

एक और के साथ आने के लिए स्वतंत्र महसूस करें पागल सुरक्षित समाधान


18
2017-11-08 06:29



यह उतना ही भयावह है जितना होना चाहिए। फिर केवल एक जो फ़ाइल को पढ़ने में सक्षम होना चाहिए /etc/mysql/debian.cnf फ़ाइल लिनक्स हैं root उपयोगकर्ता। और जब कोई उस फ़ाइल को पढ़ सकता है, तो उनके पास पहले से ही है root मशीन तक पहुंच और MySQL सर्वर को रोक सकते हैं और अपने सिस्टम सिस्टम को जोड़ सकते हैं। और MySQL और अन्य पैकेज शुरू करने वाली स्क्रिप्ट सुरक्षा रखरखाव और अन्य रखरखाव नहीं कर सकती है। तो हाँ, यह जितना सुरक्षित होना चाहिए उतना सुरक्षित है। और यदि आप असुरक्षित मोड में इसे पुनरारंभ करने की आवश्यकता के बिना इसे पुनर्प्राप्त करने के लिए MySQL व्यवस्थापक पासवर्ड को खो देते हैं तो उपयोगी। ;-) - Anders
यही संपादन के लिए है। - RobinJ


अगर आपको जोड़ने की ज़रूरत है debian-sys-maint बस के लिए उपयोगकर्ता logrotate.d उद्देश्यों, आपको चाहिए नहीं अनुदान ALL PRIVILEGES या GRANT OPTION - यह एक अनावश्यक विशाल सुरक्षा छेद है। इसके बजाए, आप बस उपयोगकर्ता को जोड़ सकते हैं RELOAD इस तरह का विशेषाधिकार (मान लीजिए कि आप अपने डीबी के रूप में उपयोग कर रहे हैं root, और आप अपने पासवर्ड के साथ xxxxxx को प्रतिस्थापित करते हैं)

# add the user with the reload right
GRANT RELOAD on *.* TO 'debian-sys-maint'@'localhost' IDENTIFIED BY 'xxxxxx'; 

# reload the rights
FLUSH PRIVILEGES;

# double check
select * from mysql.user;

6
2018-02-20 23:14



यह एकमात्र सुरक्षित उत्तर है जो केवल आवश्यक अनुमतियों को अनुदान देता है debian-sys-maint। इसके अलावा, मैं पुष्टि कर सकता हूं कि यह एक आकर्षण की तरह काम करता है। चीयर्स! - Jealie
क्या यह वास्तव में एक सुरक्षा छेद है? अगर कोई पहले से /etc/mysql/debian.cnf पढ़ सकता है, तो संभवतः उनके पास रूट पहुंच है, और वैसे भी mysql को --skip-grant-table के साथ पुनरारंभ कर सकते हैं। - mc0e
धन्यवाद। लेकिन चीजों को दो बार फ्लश करने की ज़रूरत नहीं है, MySQL पहले ही जानता है कि GRANT कमांड क्या करता है। देख dev.mysql.com/doc/refman/5.6/en/privilege-changes.html - ygoe
और यह काम नहीं करेगा, जैसा कि debian-sys-maint सर्वर को सर्वर को बंद करने के लिए भी प्रयोग किया जाता है। और mysql सर्वर प्रारंभ करते समय रूट उपयोगकर्ताओं की जांच भी करें। इसलिए आपको कम से कम mysql। * और शटडाउन विशेषाधिकारों पर चुनिंदा विशेषाधिकार प्रदान करने की आवश्यकता है। - Anders
@Anders क्या आप वाकई आवश्यक अनुदान की पूरी सूची है? क्या आप एक उत्तर पोस्ट कर सकते हैं यह सवाल मैंने अभी बनाया है? - augurar


के बजाय

GRANT ALL PRIVILEGES on *.* TO 'debian-sys-maint'@'localhost' IDENTIFIED BY PASSWORD('your password') WITH GRANT OPTION; FLUSH PRIVILEGES;

मुझे लगता है

GRANT ALL PRIVILEGES on *.* TO 'debian-sys-maint'@'localhost' IDENTIFIED BY 'your password' WITH GRANT OPTION; FLUSH PRIVILEGES;

क्योंकि पासवर्ड धोया नहीं है ...?


3
2017-08-04 05:39





इसके लिए एक साइड नोट के रूप में, एक नज़र डालें यह mysqlperformanceblog पोस्ट कारणों से आप डेबियन-विशिष्ट सामग्री को अक्षम क्यों कर सकते हैं।


2
2018-05-20 20:33



"ध्यान दें कि यह डेबियन लेनी से MySQL के साथ कोई समस्या नहीं होनी चाहिए, क्योंकि यह इनिट-स्क्रिप्ट के साथ जहाज़ है जो गैर-MYISAM तालिकाओं पर चेक टेबल नहीं चलाएगा।" - लिंक पेज से - d-_-b


MySQL 5.6+ का उपयोग करते समय, मैं इसका उपयोग करने की अनुशंसा करता हूं mysql_config_editor उपयोगकर्ता के लिए एक प्रविष्टि बनाने के लिए आदेश 'debian-sys-maint'@'localhost' प्रासंगिक पासवर्ड का उपयोग करना, जिसका मतलब है कि पासवर्ड को सर्वर पर सादा पाठ में संग्रहीत करने की आवश्यकता नहीं है।

mysql_config_editor set --login-path=debian-sys-maint --host=localhost --user=debian-sys-maint --password

इसके बाद, डेबियन विशिष्ट कॉन्फ़िगरेशन फ़ाइल /etc/mysql/debian.cnf बदला जा सकता है ताकि फ़ाइल में उपयोगकर्ता नाम और पासवर्ड विवरण संग्रहीत नहीं किए जा सकें।

अंत में, MySQL के लिए logrotate फ़ाइल को बदलें ताकि वह संग्रहीत लॉगिन विवरण का उपयोग कर सके ~/.mylogin.cnf प्रतिस्थापित करके डेबियन विशिष्ट फ़ाइल के बजाय फ़ाइल

/usr/bin/mysqladmin --defaults-file=/etc/mysql/debian.cnf

साथ में

/usr/bin/mysqladmin --login-path=debian-sys-maint

उम्मीद है की यह मदद करेगा :)

डेव


1
2018-01-20 00:17



लेकिन, इसका उद्देश्य होगा debian-sys-maint  उपयोगकर्ता इस द्वारा पूरा किया जा सकता है? यह संकुल कुछ सिस्टम रखरखाव करने के लिए इस उपयोगकर्ता / पासवर्ड का उपयोग करने में सक्षम होना चाहिए root लिनक्स डोमेन में उपयोगकर्ता (नहीं root प्रशासक के बिना MySQL में उपयोगकर्ता को प्रवेश करने की आवश्यकता है root MySQL के लिए पासवर्ड? - Anders
यह मेरे परीक्षणों में मेरे लिए काम करता है, यदि आप सभी परिवर्तनों को निष्पादित करते हैं, जैसे कि परिवर्तन करना /etc/mysql/debian.cnf सुरक्षित विवरणों का उपयोग करने के लिए पासवर्ड को हटाने और लॉग्रोटेट फ़ाइल को बदलने के लिए। मुझे यकीन नहीं है कि डेबियन-सिस-रखरखाव उपयोगकर्ता किसी और चीज़ के लिए उपयोग किया जाता है, लेकिन यदि ऐसा है, तो यह आपको संकेत देगा कि डेबियन आपकी ओर से इस उपयोगकर्ता खाते का उपयोग कर रहा है। - Dave Rix


लोकप्रिय प्रश्न

प्रति वेबसाइट 1 ईसी 2 उदाहरण - ईसी 2 का उपयोग कर अमेज़ॅन क्लाउड पर कई वेबसाइटों का प्रबंधन करें अगर मैं htaccess फ़ाइल को संशोधित करता हूं तो क्या मुझे अपाचे को पुनरारंभ करने की आवश्यकता है? मैं क्लाइंट एसएसएल प्रमाण पत्र (यदि मौजूद है) को स्वीकार करने के लिए अपाचे को कॉन्फ़िगर कैसे करूं या ldap का उपयोग करके प्रमाणित कर सकता हूं (यदि प्रमाणपत्र अनुपस्थित है)? एकाधिक कंप्यूटरों के बीच स्थानीय विभाजन आसानी से कैसे साझा करें एक तैनाती स्क्रिप्ट में जीपीजी गिट टैग की पुष्टि Nginx 1 FastCGI stderr में भेजा गया: "प्राथमिक लिपि अज्ञात" Nagios के साथ एक सुरक्षित वेबसाइट के HTTP प्रतिक्रिया कोड की जांच कैसे करें?