আমি আছি /sbin
এবং আমি দেখতে পেয়েছি যে shutdown
এর অনুমতি রয়েছে rwxr-xr-x
। এর অর্থ এই নয় যে কেউ এটি কার্যকর করতে পারে?
shutdown
কমান্ডটি সম্পর্কে কথা বলছেন ।
shutdown
।
আমি আছি /sbin
এবং আমি দেখতে পেয়েছি যে shutdown
এর অনুমতি রয়েছে rwxr-xr-x
। এর অর্থ এই নয় যে কেউ এটি কার্যকর করতে পারে?
shutdown
কমান্ডটি সম্পর্কে কথা বলছেন ।
shutdown
।
উত্তর:
যে কেউ মৃত্যুদণ্ড কার্যকর করতে পারে shutdown
, তবে একটি সিস্টেম শাটডাউন ট্রিগার করতে রুট সুবিধাগুলি প্রয়োজন। তবে shutdown
নির্ধারিত নয়, এবং কেবলমাত্র রুট এটি সফলভাবে সম্পাদন করতে পারে। shutdown
প্রোগ্রামটি আপনার বিশেষাধিকার চেক করুন এবং যদি একটি সমস্যা আছে, কিন্তু যদিও তা naively একটি সিস্টেম শাটডাউন চেষ্টা, কিছুই ঘটতে পারে আপনাকে জানাতে চমৎকার যথেষ্ট।
ঝলক: আমি গভীর থেকে উদ্দীপনা কল করতে পারেন।
হটস্পার: কেন, আমিও তাই করতে পারি বা যে কোনও মানুষই পারে; আপনি যখন তাদের ডাকবেন তখন কি তারা আসবে?
(চতুর্থ হেনরি থেকে)
shutdown
এর থেকে আলাদা নয় /bin/rm
। প্রত্যেকে এটি কার্যকর করতে পারে তবে নিয়মিত ব্যবহারকারীর /etc
বা অন্য ব্যবহারকারীর হোম ডিরেক্টরি মুছে ফেলা যায় না ।
সুনির্দিষ্টভাবে: কেবলমাত্র রুট সুবিধাগুলি (কার্যকর ইউআইডি 0) দিয়ে চলছে এমন একটি প্রক্রিয়া ইআরসি সিস্টেমকে সিস্টেম পরিষেবাদি বন্ধ করতে, সমস্ত ব্যবহারকারীর প্রক্রিয়াগুলি বন্ধ করতে, এবং সিস্টেম কলটি ইস্যু করতে পারে যা প্রকৃতপক্ষে মেশিনকে থামিয়ে দেয়। (যদি shutdown
সেটুকুইড হয় তবে এটি কারা ডাকে তা মূল হিসাবে চালিত হত; তবে তা নয়))
shutdown
কোনও জিইউআই থেকে কল করার বিষয়ে , যেমন- কন্ট্রোল-ওল্ট-ডেল দিয়ে? এটি উপলব্ধি করা গুরুত্বপূর্ণ যে shutdown
সেক্ষেত্রে সরাসরি শুরু হয়েছিল init
এবং এটি মূল সুযোগগুলি নিয়ে চলে। সুতরাং যে কেউ কনসোলে যান তারা সম্ভাব্যভাবে এটি বন্ধ করে দিতে পারে। যদি এটি পছন্দসই না হয় তবে কন্ট্রোল-ইল-ডিলিট আসলে চলবে shutdown -a
। (ডকুমেন্টেশন দেখুন যা @ কিছু 1 তাদের উত্তরে উদ্ধৃত হয়েছে)। shutdown
এটি বর্তমানে লগ ইন করা ব্যবহারকারী এটি চালানোর জন্য অনুমোদিত কিনা তা পরীক্ষা করতে বলে tells তবে এটি কেবল প্রাসঙ্গিক কারণ shutdown
এই দৃশ্যের মূল হিসাবে চলমান।
shutdown
, তবে বর্তমান ব্যবহারকারীটির রুট সুবিধাগুলি না থাকলে সেই প্রোগ্রামটি আসলে সিস্টেম শাটডাউন ট্রিগার করতে পারে না । রাইট?
shutdown
। এক্সিকিউটেবলের মালিকের ব্যবহারকারীর অনুমতি নিয়ে একটি সেটুইড প্রোগ্রাম চালানো হয়। উদাহরণস্বরূপ, /etc/passwd
আপনাকে পাসওয়ার্ড ফাইলটি সংশোধন করার অনুমতি দেওয়ার জন্য রুট অনুমতি নিয়ে চলে। এর জন্য ম্যানপেজটি দেখুন chmod
।
/usr/bin/passwd
রুট অনুমতি দিয়ে রান " করা উচিত ছিল ! /etc/passwd
কার্যকর করা যায় না (এটি "পাসওয়ার্ড ফাইল" পরিবর্তিত হচ্ছে)।
বাইনারি shutdown
নিজেই আপনার ইউআইডি 0 হয় কিনা তা পরীক্ষা করে।
এর স্ট্রেস আউটপুট দেখুন:
strace /sbin/shutdown -r -h now
...
...
geteuid() = 10001
setuid(10001) = 0
getuid() = 10001
write(2, "shutdown: Need to be root\n", 26shutdown: Need to be root
) = 26
exit_group(1) = ?
shutdown
যে আপনার ইউআইডি 0 টি আছে কিনা তা যাচাই করে
if(getuid() != 0) printf("Need to be root");
। যা প্রকৃতপক্ষে উত্স কোডটি এটি হতে দেখায়।
মনে হচ্ছে শটডাউন কোনও অ্যাক্সেস তালিকা চেক করবে যদি আপনি এটিকে একটি দিয়ে ফ্ল্যাগ করেন তবে:
ACCESS CONTROL
shutdown can be called from init(8) when the magic keys CTRL-ALT-DEL are pressed, by creating an appropriate entry in /etc/inittab. This means that every‐
one who has physical access to the console keyboard can shut the system down. To prevent this, shutdown can check to see if an authorized user is logged
in on one of the virtual consoles. If shutdown is called with the -a argument (add this to the invocation of shutdown in /etc/inittab), it checks to see
if the file /etc/shutdown.allow is present. It then compares the login names in that file with the list of people that are logged in on a virtual console
(from /var/run/utmp). Only if one of those authorized users or root is logged in, it will proceed. Otherwise it will write the message
shutdown: no authorized users logged in
to the (physical) system console. The format of /etc/shutdown.allow is one user name per line. Empty lines and comment lines (prefixed by a #) are
allowed. Currently there is a limit of 32 users in this file.
যেহেতু আপনি বর্তমানে এটি -a পতাকা ছাড়াই কল করছেন, এটি কেবলমাত্র রুট শাটডাউনগুলিকে মঞ্জুরি দেওয়ার জন্য ডিফল্ট।
আপনি যদি অতিরিক্ত ব্যবহারকারীদের কমান্ডটি চালাতে সক্ষম হন তবে সেই ফাইলটি কনফিগার করুন এবং পতাকাটি ব্যবহার করুন।
Why can't I execute shutdown when the permission is rwxr-xr-x?
অনুমতি বিটগুলি অগত্যা কোনও ব্যবহারকারী বা গোষ্ঠীর উপর ভিত্তি করে অ্যাক্সেস নিয়ন্ত্রণকে বাদ দেয় না।
-a
কমান্ডলাইন থেকে এটি কল করার ফলে কোনও তফাত হবে না: shutdown -a
তবুও অবশ্যই রুট অনুমতি (যা init
নিয়ন্ত্রণ-ওএল-ডেল সরবরাহ করে) দিয়ে মৃত্যুদন্ড কার্যকর করা উচিত ।