আমি কিছু সময় আগে লক্ষ্য করেছি যে curl
কমান্ড লাইন আর্গুমেন্ট হিসাবে প্রদত্ত ব্যবহারকারীর নাম এবং পাসওয়ার্ড ps
আউটপুটটিতে উপস্থিত হবে না (যদিও অবশ্যই তারা আপনার বাশ ইতিহাসে প্রদর্শিত হতে পারে)।
তারা একইভাবে উপস্থিত হয় না /proc/PID/cmdline
।
(সম্মিলিত ব্যবহারকারীর নাম / পাসওয়ার্ড আর্গুমেন্টের দৈর্ঘ্য উত্পন্ন করা যেতে পারে))
নীচে বিক্ষোভ:
[root@localhost ~]# nc -l 80 &
[1] 3342
[root@localhost ~]# curl -u iamsam:samiam localhost &
[2] 3343
[root@localhost ~]# GET / HTTP/1.1
Authorization: Basic aWFtc2FtOnNhbWlhbQ==
User-Agent: curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.15.3 zlib/1.2.3 libidn/1.18 libssh2/1.4.2
Host: localhost
Accept: */*
[1]+ Stopped nc -l 80
[root@localhost ~]# jobs
[1]+ Stopped nc -l 80
[2]- Running curl -u iamsam:samiam localhost &
[root@localhost ~]# ps -ef | grep curl
root 3343 3258 0 22:37 pts/1 00:00:00 curl -u localhost
root 3347 3258 0 22:38 pts/1 00:00:00 grep curl
[root@localhost ~]# od -xa /proc/3343/cmdline
0000000 7563 6c72 2d00 0075 2020 2020 2020 2020
c u r l nul - u nul sp sp sp sp sp sp sp sp
0000020 2020 2020 0020 6f6c 6163 686c 736f 0074
sp sp sp sp sp nul l o c a l h o s t nul
0000040
[root@localhost ~]#
এই প্রভাবটি কীভাবে অর্জিত হয়? এটির সোর্স কোডটি কোথাও curl
? (আমি ধরে নিলাম এটি একটি curl
বৈশিষ্ট্য, কোনও ps
বৈশিষ্ট্য নয়? বা এটি কোনও ধরণের কার্নেল বৈশিষ্ট্য?)
এছাড়াও: বাইনারি এক্সিকিউটেবলের উত্স কোডের বাইরে থেকে এটি অর্জন করা যেতে পারে? উদাহরণস্বরূপ শেল কমান্ড ব্যবহার করে, সম্ভবত মূল অনুমতিগুলির সাথে মিলিত?
অন্য কথায় আমি কিছুটা স্বেচ্ছাসেবী শেল কমান্ডে পাস করেছি এমন আউটপুট উপস্থিত হওয়া /proc
বা ps
আউটপুট (একই জিনিস, আমি মনে করি) থেকে কোনও যুক্তি মাস্ক করতে পারি ? (আমি এটির উত্তরটি "না" বলে অনুমান করতে পারি তবে এটি অতিরিক্ত অর্ধ-প্রশ্নকে অন্তর্ভুক্ত করা উপযুক্ত বলে মনে হচ্ছে))
environ
পরিবেশের ভেরিয়েবলগুলি অ্যাক্সেস করতে সরাসরি ব্যবহার করে? - নীচের লাইন: আর্গুমেন্ট তালিকা যেমন পরিবেশের ভেরিয়েবলগুলির তালিকার মতো, ব্যবহারকারী প্রসেস মেমোরি পড়তে / লিখতে থাকে এবং ব্যবহারকারীর প্রক্রিয়া দ্বারা এটি পরিবর্তন করা যায়।
grep
প্যাটার্নের প্রথম চরিত্রটিকে একটি অক্ষর শ্রেণি করুন। উদাহরণস্বরূপps -ef | grep '[c]url'
curl
মিলছে curl
কিন্তু [c]url
মেলে না [c]url
। আপনার যদি আরও বিশদ প্রয়োজন হয় তবে একটি নতুন প্রশ্ন জিজ্ঞাসা করুন এবং আমি উত্তর দিয়ে খুশি হব।