আমি কেন প্রতিটি বুটের পরে / var / run / sshd অনুপস্থিত?


14

আমি প্রক্সমক্স 5.2-11 এর আওতায় একটি উবুন্টু 16.04 ধারক চালাচ্ছি। প্যাচ এর সর্বশেষ বৃত্তাকার প্রয়োগের পরে 1 আমি কনসোল বা SSH- র মাধ্যমে লগইন করতে পারছি আছি।

আমি হাইপারভভাইসরের মধ্যে ধারক রুট ফাঃ মাউন্ট এবং যোগ pts/0করার জন্য /etc/security/access.conf(আমরা চালানো pam_accessকনসোল) এবং যে অনুমতি দেওয়া রুট লগইন। আমাদের root : lxc/tty0 lxc/tty1 lxc/tty2মধ্যে access.confযা আমি ভেবেছিলাম পর্যাপ্ত ছিল তাই আমার pts/0এখন কেন দরকার হতবাক।

আমি লক্ষ্য করেছি যে ssh চলছে না তাই হাত দিয়ে এটি শুরু করার চেষ্টা করুন ( /usr/sbin/sshd -DDD -f /etc/ssh/sshd_config) এবং এই ত্রুটিটি পেয়েছে:

Missing privilege separation directory: /var/run/sshd

আমি ডিরেক্টরিটি হাতে হাতে তৈরি করেছি, শুরু করেছি sshএবং শেষ পর্যন্ত লগইন করতে সক্ষম হয়েছি, তবে রিবুট হওয়ার পরেও সমস্যাটি থেকেই যায়। ডিরেক্টরিটি তৈরি হচ্ছে না। কেবলমাত্র দরকারী বিট journalctlএবং একমাত্র আকর্ষণীয় অংশটি "অপারেশন অনুমোদিত নয়" সম্পর্কে কিছু কিন্তু আরও কোনও তথ্য নয়।

আমি 16.04 এর সাথে খুব বেশি পরিচিত নই তাই ভাবছি যে কীভাবে আমি সমস্যাটি সম্পর্কে আরও জানতে পারি। আমার কোনরকম /var/log/syslogবা /var/log/messagesকেবল kern.logহারিয়ে যাওয়া হয়নি।

1

systemd-sysv 229-4ubuntu21.9
libpam-systemd 229-4ubuntu21.9
libsystemd0 229-4ubuntu21.9
systemd 229-4ubuntu21.9
udev 229-4ubuntu21.9
libudev1 229-4ubuntu21.9
iproute2 4.3.0-1ubuntu3.16.04.4
libsasl2-modules-db 2.1.26.dfsg1-14ubuntu0.1
libsasl2-2 2.1.26.dfsg1-14ubuntu0.1
ldap-utils 2.4.42dfsg-2ubuntu3.4
libldap-2.4-2 2.4.42dfsg-2ubuntu3.4
libsasl2-modules 2.1.26.dfsg1-14ubuntu0.1
libgs9-common 9.25dfsg1-0ubuntu0.16.04.3
ghostscript 9.25dfsg1-0ubuntu0.16.04.3
libgs9 9.25dfsg1-0ubuntu0.16.04.3

[2]

Nov 27 10:13:48 host16 systemd[1]: Starting OpenBSD Secure Shell server...
Nov 27 10:13:48 host16 sshd[474]: Missing privilege separation directory: /var/run/sshd
Nov 27 10:13:48 host16 systemd[1]: ssh.service: Control process exited, code=exited status=255
Nov 27 10:13:48 host16 systemd[1]: Failed to start OpenBSD Secure Shell server.
Nov 27 10:13:48 host16 systemd[1]: ssh.service: Unit entered failed state.
Nov 27 10:13:48 host16 systemd[1]: ssh.service: Failed with result 'exit-code'.
Nov 27 10:13:48 host16 mysqld_safe[495]: Starting mysqld daemon with databases from /var/lib/mysql/mysql
Nov 27 10:13:48 host16 mysqld[500]: 181127 10:13:48 [Note] /usr/sbin/mysqld (mysqld 10.0.36-MariaDB-0ubuntu0.16.04.1) starting as process 499 ...
Nov 27 10:13:48 host16 systemd[1]: ssh.service: Service hold-off time over, scheduling restart.
Nov 27 10:13:48 host16 systemd[1]: Stopped OpenBSD Secure Shell server.
Nov 27 10:13:48 host16 systemd[1]: Failed to reset devices.list on /system.slice/ssh.service: Operation not permitted
Nov 27 10:13:48 host16 systemd[1]: Starting OpenBSD Secure Shell server...
Nov 27 10:13:48 host16 sshd[502]: Missing privilege separation directory: /var/run/sshd
Nov 27 10:13:48 host16 systemd[1]: ssh.service: Control process exited, code=exited status=255
Nov 27 10:13:48 host16 systemd[1]: Failed to start OpenBSD Secure Shell server.
Nov 27 10:13:48 host16 systemd[1]: ssh.service: Unit entered failed state.
Nov 27 10:13:48 host16 systemd[1]: ssh.service: Failed with result 'exit-code'.
Nov 27 10:13:48 host16 systemd[1]: ssh.service: Service hold-off time over, scheduling restart.
Nov 27 10:13:48 host16 systemd[1]: Stopped OpenBSD Secure Shell server.
Nov 27 10:13:48 host16 systemd[1]: Failed to reset devices.list on /system.slice/ssh.service: Operation not permitted
Nov 27 10:13:48 host16 systemd[1]: Starting OpenBSD Secure Shell server...
Nov 27 10:13:48 host16 sshd[503]: Missing privilege separation directory: /var/run/sshd
Nov 27 10:13:48 host16 systemd[1]: ssh.service: Control process exited, code=exited status=255
Nov 27 10:13:48 host16 systemd[1]: Failed to start OpenBSD Secure Shell server.
Nov 27 10:13:48 host16 systemd[1]: ssh.service: Unit entered failed state.
Nov 27 10:13:48 host16 systemd[1]: ssh.service: Failed with result 'exit-code'.
Nov 27 10:13:48 host16 systemd[1]: ssh.service: Service hold-off time over, scheduling restart.
Nov 27 10:13:48 host16 systemd[1]: Stopped OpenBSD Secure Shell server.
Nov 27 10:13:48 host16 systemd[1]: Failed to reset devices.list on /system.slice/ssh.service: Operation not permitted
Nov 27 10:13:48 host16 systemd[1]: Starting OpenBSD Secure Shell server...
Nov 27 10:13:48 host16 sshd[504]: Missing privilege separation directory: /var/run/sshd
Nov 27 10:13:48 host16 systemd[1]: ssh.service: Control process exited, code=exited status=255
Nov 27 10:13:48 host16 systemd[1]: Failed to start OpenBSD Secure Shell server.
Nov 27 10:13:48 host16 systemd[1]: ssh.service: Unit entered failed state.
Nov 27 10:13:48 host16 systemd[1]: ssh.service: Failed with result 'exit-code'.
Nov 27 10:13:49 host16 systemd[1]: ssh.service: Service hold-off time over, scheduling restart.
Nov 27 10:13:49 host16 systemd[1]: Stopped OpenBSD Secure Shell server.
Nov 27 10:13:49 host16 systemd[1]: ssh.service: Start request repeated too quickly.
Nov 27 10:13:49 host16 systemd[1]: Failed to start OpenBSD Secure Shell server.
Nov 27 10:13:49 host16 systemd[1]: ssh.service: Unit entered failed state.
Nov 27 10:13:49 host16 systemd[1]: ssh.service: Failed with result 'start-limit-hit'.
Nov 27 10:13:49 host16 systemd[1]: Started /etc/rc.local Compatibility.
Nov 27 10:13:49 host16 systemd[1]: Failed to reset devices.list on /system.slice/plymouth-quit.service: Operation not permitted
Nov 27 10:13:49 host16 systemd[1]: Starting Terminate Plymouth Boot Screen...
Nov 27 10:13:49 host16 systemd[1]: Failed to reset devices.list on /system.slice/plymouth-quit-wait.service: Operation not permitted
Nov 27 10:13:49 host16 systemd[1]: Starting Hold until boot process finishes up...
Nov 27 10:13:49 host16 systemd[1]: Failed to reset devices.list on /system.slice/rc-local.service: Operation not permitted
Nov 27 10:13:49 host16 systemd[1]: Started Hold until boot process finishes up.
Nov 27 10:13:49 host16 systemd[1]: Started Container Getty on /dev/pts/1.
Nov 27 10:13:49 host16 systemd[1]: Started Container Getty on /dev/pts/0.
Nov 27 10:13:49 host16 systemd[1]: Failed to reset devices.list on /system.slice/console-getty.service: Operation not permitted
Nov 27 10:13:49 host16 systemd[1]: Started Console Getty.
Nov 27 10:13:49 host16 systemd[1]: Reached target Login Prompts.
Nov 27 10:13:49 host16 systemd[1]: Started Terminate Plymouth Boot Screen.
Nov 27 10:13:52 host16 nslcd[338]: accepting connections
Nov 27 10:13:52 host16 nslcd[275]:    ...done.
Nov 27 10:13:52 host16 systemd[1]: Started LSB: LDAP connection daemon.
Nov 27 10:13:52 host16 systemd[1]: Failed to reset devices.list on /system.slice/cron.service: Operation not permitted
Nov 27 10:13:52 host16 systemd[1]: Started Regular background program processing daemon.
Nov 27 10:13:52 host16 systemd[1]: Failed to reset devices.list on /system.slice/atd.service: Operation not permitted

যোগ করা হয়েছে systemd-tmpfiles --createআউটপুট

সত্যিই উদ্ভট .... আমি চেক করেছি /tmpএবং এই ফাইলগুলির অস্তিত্ব নেই এখানে চিত্র বর্ণনা লিখুন

উত্তর:


11

একটি ভুল আপনি করেছিলেন তা sshdহাত দিয়ে শুরু করার চেষ্টা করছিল ।

আপনি যদি পরিবর্তে sshdঅফিসিয়াল অর্থ দিয়ে শুরু করেন তবে এটি কেবল কাজ করা উচিত। serviceকমান্ড জানেন সঠিক উপায় আপনার বন্টন উপর একটি সেবা শুরু করার জন্য, এবং এই কাজ করা উচিত:

service ssh start

Sysv init স্ক্রিপ্টগুলির ক্ষেত্রে, আপনার যা করা দরকার তা হ'ল। ডিরেক্টরিটি অনুপস্থিত হওয়ার কারণ হ'ল এটি /var/runএকটি সিলেট লিঙ্ক /runএবং /runএটি একটি tmpfsমাউন্ট পয়েন্ট। তার মানে প্রতিটি বুটে /var/runখালি শুরু হবে। আপনি যখন serviceকমান্ডটি ব্যবহার করবেন তখন /etc/init.d/sshস্ক্রিপ্টটি ব্যবহার শুরু sshdহবে /var/run/sshdতবে এটি করার আগে স্ক্রিপ্টটি উপস্থিত না থাকলে তৈরি হবে ।

systemdজিনিসগুলির সাথে কিছুটা আলাদাভাবে কাজ করে। /usr/lib/tmpfiles.d/sshd.confএই বিষয়বস্তু সহ একটি ফাইল বলা হবে :

d /var/run/sshd 0755 root root

বুটের সময় /var/run/sshdডিরেক্টরিটি তৈরি করা উচিত। আপনার ফাইল যা আছে তা যাচাই করার জন্য যা দরকার তা এবং সঠিক সামগ্রী রয়েছে। তাহলে /var/run/sshdডিরেক্টরির এখনো নিখোঁজ হলে এটা তৈরি পরার যখন আপনি চালাতে আপনি যাচাই করতে পারেন systemd-tmpfiles --createনিজে।


এটি একটি ভাল ধারণা তবে মূলত সিস্টেম বুট করার জন্য একই জিনিসটি করছে (এবং একইভাবে ব্যর্থ হয়েছে)। আমি যা সম্পর্কে সত্যিই ভাবছি তা হল কেন ব্যক্তিগত মাধ্যমটি ডিরেক্টরি মাধ্যমে তৈরি করা হচ্ছে না। ডিস্ক ত্রুটি আছে? একটি অনুমতি সমস্যা? লক ফাইল? এর বাইরে আর কোথাও দেখতে হবে journalctl?
সার্ভার ফল্ট

@ সার্ভারফল্ট নির্দিষ্ট পরিস্থিতিতে /etc/init.d/sshচালানো হবে না এবং systemctlপরিবর্তে ব্যবহৃত হবে। এবং কখন ডিরেক্টরি sshdদিয়ে শুরু systemctlহয় তা তৈরি হয় না। এটি কয়েকটি উন্মুক্ত প্রশ্ন ফেলেছে যা আমি আগামীকাল খননের চেষ্টা করব যেমন ঠিক কী পরিবর্তিত হয়েছে এবং কখন যে ডিরেক্টরিটি systemctlব্যবহার করা হবে তা তৈরি করার কথা মনে হয় ।
কাস্পারড

@ সার্ভারফোল্ট systemctlএটি ব্যবহার /etc/init/ssh.confকরার সময় ডিরেক্টরি তৈরি করার জন্য দায়ী। আমি সম্পূর্ণরূপে উবুন্টু 16.04-তে পরীক্ষা করেছি এবং বুট চলাকালীন ডিরেক্টরিটি তৈরি হয়। কিন্তু কোনও কারণে এটি ব্যবহারের সময় তৈরি হয় না service ssh start। কিছু systemdসম্পর্কিত প্যাকেজগুলির সাম্প্রতিক আপডেট রয়েছে , তবে ডিরেক্টরিটি পরিবর্তিত হওয়ার সাথে সম্পর্কিত আচরণের কোনও প্রমাণ দেখতে পাচ্ছি না। এবং যখন আমি পরীক্ষা করি এটি বুটের সময় তৈরি হয়। সুতরাং প্রশ্নটি যদি আপনার /etc/init/ssh.confসঠিক বিষয়বস্তু থাকে।
ক্যাস্পারড

@ সার্ভারফোল্ট আমি হয়ত ভুল হয়ে গিয়েছিলাম এমনটিও /etc/init/ssh.confরয়েছে /usr/lib/tmpfiles.d/sshd.confযা ব্যবহার করে বলে মনে হচ্ছে systemd-tmpfiles --create। না systemd-tmpfiles --createঅনুপস্থিত তৈরি /var/run/sshdডিরেক্টরি?
কাস্পারড

systemd-tmpfiles --createআউটপুট থেকে প্রশ্নে ছবি যোগ করা হয়েছে । "সিমলিংকস" সিস্টেমড (/tmp/.X11-unix) সম্পর্কে অভিযোগ করছে /tmp/তাই এটি কোথা থেকে পেয়েছে আমার কোনও ধারণা নেই। এতে আপনার সমস্ত সহায়তার জন্য ধন্যবাদ, তবে আমি মনে করি আমি এগিয়ে চলেছি।
সার্ভার ফল্ট

11

সুতরাং / রান (এবং / var / রান এটির সাথে সংযুক্ত) প্রতিটি পুনরায় বুটটি পুনরায় তৈরি করা হয়। Systemd-tmpfiles ব্যতীত (/ var) / রান / এসএসডি সহ কয়েকটি ফাইলের জন্য এটি করছে না।

স্পষ্টতই, এটি একটি ওপেনজেড কার্নেল আপগ্রেড দ্বারা স্থির করা হয়েছে। তবে বাস্তবে এখনই এটি ঠিক করতে আপনি পরিবর্তনের জন্য পড়ার জন্য লাইনটি সম্পাদনা /usr/lib/tmpfiles.d/sshd.confএবং সরিয়ে ফেলুন :/vard /var/run/sshd 0755 root root d /run/sshd 0755 root root

এবং এটাই..!

এবং যখন ওপেনশ-সার্ভারটি আপগ্রেড হবে, আমরা আশা করি তারা এই বাগটি ঠিক করেছে (অথবা এটি আসলে সিস্টেমে কোনও বাগ আছে? বা ওপেনভিজ ??) - অন্যথায় আপনিও একই সমস্যায় পড়তে পারেন।


1
কার্নেল আপগ্রেডের জন্য অপেক্ষা করার সময় ঠিক করার জন্য +1। আমার ক্ষেত্রে এটি হয়ে ওঠার দরকার ছিল: "d / run / sshd 0755 root root"
পলজাগ

1
@ পলজ্যাগ যা আমার পক্ষেও কাজ করেছিল। আমি ভাবছি যদি @ pepa65 বলতে বোঝানো d /run/sshd 0755 root root, যেহেতু তাদের দিকনির্দেশ শুধুমাত্র অপসারণ বলছি /varঅংশ (যদিও কোড তারা উত্তর দিতে হয়েছে উভয় /varএবং /runসরানো হয়েছে)।
স্টিফেন শ্রাউগার

4

স্পষ্টতই কোনও ওপেনজেড কার্নেল ২.6.৩২-২০২২ স্ট্যাব 134.7 বা আরও নতুন চালানোর সময় এটি সমাধান হয়ে যায়। আমি এটি আশ্চর্যজনক মনে করি যে সিস্টেমড স্টার্ট স্ক্রিপ্টগুলিতে কোনওরকম কোনও ঠিক করা সম্ভব নয়। সম্ভবত একটি কুরুচিপূর্ণ হ্যাক স্বয়ংক্রিয়ভাবে তৈরি / রান / এসএসডি / তৈরি করার পরে এবং তারপরে sshd শুরু করার মতো কাজ করবে।

আমার ফলাফল systemd-tmpfiles --create:

[/usr/lib/tmpfiles.d/var.conf:14] Duplicate line for path "/var/log", ignoring.
fchownat() of /run/named failed: Invalid argument
Failed to openat(/dev/simfs): Operation not permitted
Failed to validate path /var/run/screen: Too many levels of symbolic links
Failed to validate path /var/run/sshd: Too many levels of symbolic links
Failed to validate path /var/run/sudo: Too many levels of symbolic links
Failed to validate path /var/run/sudo/ts: Too many levels of symbolic links
fchownat() of /run/systemd/netif failed: Invalid argument
fchownat() of /run/systemd/netif/links failed: Invalid argument
fchownat() of /run/systemd/netif/leases failed: Invalid argument
fchownat() of /run/log/journal failed: Invalid argument
fchownat() of /run/log/journal/e9e1d08bc42c48999865b96c250f40cc failed: Invalid argument
fchownat() of /run/log/journal/e9e1d08bc42c48999865b96c250f40cc/system.journal failed: Invalid argument

ওপেনভিজেড 2.6.32-042stab134.7 এর চেঞ্জলগ এটি বলে:

সিস্টেমেড 229-4ubuntu21.9 সহ উবুন্টু কনটেইনারগুলি চালনার ফলে পরিষেবাগুলি আরম্ভ করতে ব্যর্থ হতে পারে কারণ সিস্টেমেডিং-সংক্রান্ত সমস্যাগুলির কারণে systemd-tmpfiles পাথটি বৈধ করতে অক্ষম ছিল। (PSBM-90038)


2

বছরের পর বছর ধরে যতটা সিস্টেমেড পড়েছি তার জন্য, আমাকে অবশ্যই উত্তর সিঙ্ক্রোনাইজ ডাইরেক্টিভের পরিবর্তে এই সমস্যাটি স্বীকার করতে হবে ।

কোনও কারণে, এই হোস্টটিকে আমাদের উত্তরদণ্ডের স্ক্রিপ্টগুলি সরবরাহ করার পরে, এটি অ্যাডমিন ব্যবহারকারীর মালিকানাধীন / ডিরেক্টরি (পাশাপাশি / ইত্যাদি, / অপ্ট এবং অন্যান্য) ছেড়ে গেছে, এবং রুট নয়। chownজিনিসগুলি সংশোধন করার জন্য দৌড়ানোর পরে , /var/run/sshdএখন আবার বুটে তৈরি করা হয়েছে।

আমি সমস্ত ইনপুটকে সত্যই প্রশংসা করি তবে এখানে কোনও ত্রুটি নেই, অন্তত এই অর্থে যে রুট ডিরেক্টরিগুলিতে অনুপযুক্ত মালিকানা প্রয়োগ করা অপরিবর্তিত সিস্টেমের আচরণের কারণে ঘটেছে।


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