আমার /etc/passwd
ফাইলে, আমি দেখতে পাচ্ছি যে www-data
অ্যাপাচি দ্বারা ব্যবহৃত ব্যবহারকারী এবং তেমনি সমস্ত প্রকারের সিস্টেম ব্যবহারকারীদের হয় /usr/sbin/nologin
বা /bin/false
তাদের লগইন শেল। উদাহরণস্বরূপ, এখানে লাইনগুলির একটি নির্বাচন রয়েছে:
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin bin:x:2:2:bin:/bin:/usr/sbin/nologin sys:x:3:3:sys:/dev:/usr/sbin/nologin games:x:5:60:games:/usr/games:/usr/sbin/nologin www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin syslog:x:101:104::/home/syslog:/bin/false whoopsie:x:109:116::/nonexistent:/bin/false mark:x:1000:1000:mark,,,:/home/mark:/bin/bash
ফলস্বরূপ, আমি যদি এই ব্যবহারকারীদের কারও কাছে অদলবদল করার চেষ্টা করি (যা আমি মাঝে মাঝে তাদের অনুমতিগুলি সম্পর্কে আমার বোঝার জন্য যা করতে চাই এবং এটির জন্য সম্ভবত অন্তত অর্ধেক বুদ্ধিমান কারণও রয়েছে), আমি ব্যর্থ হই:
mark@lunchbox:~$ sudo su www-data
This account is currently not available.
mark@lunchbox:~$ sudo su syslog
mark@lunchbox:~$
অবশ্যই, এটি কোনও অসুবিধার খুব বেশি নয়, কারণ আমি এখনও এই জাতীয় পদ্ধতির মাধ্যমে তাদের জন্য একটি শেল চালু করতে পারি:
mark@lunchbox:~$ sudo -u www-data /bin/bash
www-data@lunchbox:~$
কিন্তু এটি কেবল এই ব্যবহারকারীদের লগইন শেলকে অস্বীকার করে কী উদ্দেশ্যে পরিবেশন করা হবে তা ভেবে আমাকে অবাক করে। একটি ব্যাখ্যার জন্য ইন্টারনেটের আশেপাশে খোঁজ নিচ্ছেন, অনেক লোক দাবি করেন যে এটির সুরক্ষার সাথে কিছু সম্পর্ক রয়েছে এবং প্রত্যেকে মনে হয় যে এই ব্যবহারকারীর লগইন শেলগুলি পরিবর্তন করা কোনওভাবেই খারাপ ধারণা হবে। এখানে উদ্ধৃতি সংগ্রহ:
অপাচি ব্যবহারকারীর শেলটি অ-ইন্টারেক্টিভ কিছুতে সেট করা সাধারণত ভাল সুরক্ষা অনুশীলন (সত্যিকার অর্থে যে সমস্ত পরিষেবা ব্যবহারকারীদের ইন্টারেক্টিভভাবে লগইন করতে হয় না তাদের শেল সেটটি অ-ইন্টারেক্টিভ কিছুতে সেট করা উচিত)।
- https://serverfault.com/a/559315/147556
ব্যবহারকারীর জন্য www- ডেটা শেলটি / usr / sbin / nologin এ সেট করা হয়েছে এবং এটি খুব ভাল কারণে সেট করা আছে ।
- https://askubuntu.com/a/486661/119754
[সিস্টেম অ্যাকাউন্টগুলি] সুরক্ষা গর্ত হতে পারে , বিশেষত যদি তাদের শেল সক্ষম থাকে:
খারাপ
bin:x:1:1:bin:/bin:/bin/sh
ভাল
bin:x:1:1:bin:/bin:/sbin/nologin
- https://unix.stackexchange.com/a/78996/29001
সুরক্ষার কারণে আমি টমক্যাট সার্ভারটি চালানোর জন্য কোনও লগইন শেল ছাড়াই একটি ব্যবহারকারী অ্যাকাউন্ট তৈরি করেছি:
# groupadd tomcat # useradd -g tomcat -s /usr/sbin/nologin -m -d /home/tomcat tomcat
- http://www.puschitz.com/InstallingTomcat.html
যদিও এই পোস্টগুলি সর্বসম্মতভাবে চুক্তিতে রয়েছে যে সিস্টেম ব্যবহারকারীদের বাস্তব লগইন শেল না দেওয়া সুরক্ষার পক্ষে ভাল, তাদের মধ্যে একটিও এই দাবিটিকে ন্যায়সঙ্গত করে না এবং আমি এর কোথাও এর ব্যাখ্যা খুঁজে পাই না।
এই ব্যবহারকারীদের বাস্তব লগইন শেল না দিয়ে আমরা কী আক্রমণ থেকে নিজেকে রক্ষা করার চেষ্টা করছি?