/etc/inetd.conf
هذه المخدمات بالإضافة لمنافذها المعتادة. ينصت الأمر inetd
على جميع هذه المنافذ؛ وعندما يستشعر اتصالاً على أي منها، يستدعي المخدم المناسب.
/etc/inetd.conf
مخدماً من خلال سبعة حقول (تفصلها فراغات):
/etc/services
).
stream
لاتصالات TCP، وdgram
لبيانات UDP.
tcp
أو udp
.
wait
أو nowait
، لإعلام inetd
هل ينتظر انتهاء العملية المستدعاة قبل قبول اتصالات أخرى أم لا. بالنسبة لاتصالات TCP، التي يمكن جمعها (multiplex) بسهولة، يمكنك عادة استخدام nowait
. أما للبرامج التي تستجيب عبر UDP، عليك استخدام nowait
فقط إذا كان المخدم قادراً على إدارة عدة اتصالات على التوازي. يمكنك أن تسبق هذا الحقل بنقطة، وتلحقها بعدد الاتصالات الأعظمي المسموح كل دقيقة (الحد الافتراضي 256).
argv[0]
في لغة C).
مثال 9.1. مقتطفات من /etc/inetd.conf
talk dgram udp wait nobody.tty /usr/sbin/in.talkd in.talkd finger stream tcp nowait nobody /usr/sbin/tcpd in.fingerd ident stream tcp nowait nobody /usr/sbin/identd identd -i
tcpd
كثيراً في الملف /etc/inetd.conf
. يسمح هذا البرنامج بتحديد عدد الاتصالات الواردة بتطبيق قواعد تحكم بالوصول، وهي موثقة في صفحة الدليل hosts_access(5)، ويتم ضبطها في الملفين /etc/hosts.allow
و/etc/hosts.deny
. بمجرد تحديد أن الاتصال مسموح، يستدعي tcpd
المخدم الحقيقي (مثل in.fingerd
في مثالنا). من المهم أن نذكر أن tcpd
يعتمد على الاسم الذي استدعي به (وهو المتغير الأول الذي استقبله، argv[0]
) للتعرف على البرنامج الحقيقي الذي يجب تشغيله. عليك إذن ألا تبدأ قائمة المتغيرات بالاسم tcpd
بل باسم البرنامج الذي تريد تغليفه.