سؤال كيف أتحقق من قراءة ملف التكوين؟


يبدو أن التعديلات على بلدي /etc/ssh/sshd_config الملف لا يلتقطها برنامج SSH. لأغراض الاختبار ، قمت بتضمين a DenyUsers *، فعل service ssh restart، وحتى إعادة تمهيد النظام بأكمله. ولكن ما زلت يمكن سه من بعيد.

كيف يمكنني التحقق من أن /etc/ssh/sshd_config يحصل على قراءة الملف من قبل sshd؟


4
2017-11-01 07:55


الأصل




الأجوبة:


إذا لم أكن متأكدًا مما إذا كان أحد البرامج يقرأ ملف تهيئة محددًا (أو بأي ترتيب) ، فأنا أحاول تتبع ملفات syscalls المفتوحة مع strace. للقيام بذلك ، قم بإيقاف ssh الخفي. ثم قم بتشغيله يدويًا في الجهاز من خلال:

strace -e open -ostrace.out /usr/sbin/sshd

بعد أن تبدأ ، يجب أن يكون لديك ملف في دليل عملك الحالي يسمى strace.out. في حالتي بدا مثل هذا (الإخراج جردت):

open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
...
many libraries
...
open("/proc/filesystems", O_RDONLY)     = 3
open("/dev/null", O_RDWR)               = 3
open("/usr/lib/ssl/openssl.cnf", O_RDONLY) = 3
open("/etc/ssh/sshd_config", O_RDONLY)  = 3 <--- here sshd_config was opened
open("/dev/urandom", O_RDONLY|O_NOCTTY|O_NONBLOCK) = 3
open("/etc/gai.conf", O_RDONLY|O_CLOEXEC) = 3
open("/etc/nsswitch.conf", O_RDONLY|O_CLOEXEC) = 3
open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
...
open("/etc/passwd", O_RDONLY|O_CLOEXEC) = 3
...
ssh keys
...
open("/etc/ssh/blacklist.ECDSA-256", O_RDONLY) = -1 ENOENT (No such file or directory)

مع هذا الاختبار يمكنني التأكد sshd يقرأ لي /etc/ssh/sshd_config. في الإدخال الأخير يمكنك رؤية أن هذا الملف غير موجود على النظام الخاص بي (-1).


4
2017-11-01 08:48



التي ساعدت كثيرا. أشار لي إلى الخطأ المحرج الذي قمت بتعديله /etc/ssh/ssh_config بدلا من /etc/ssh/sshd_config. شكر. - user210161