অনুমতি rwxr-xr-x হলে আমি কেন শাটডাউন সম্পাদন করতে পারি না?


34

আমি আছি /sbinএবং আমি দেখতে পেয়েছি যে shutdownএর অনুমতি রয়েছে rwxr-xr-x। এর অর্থ এই নয় যে কেউ এটি কার্যকর করতে পারে?


1
আপনি যে আদেশটি দৌড়েছিলেন তা কী এবং আপনি কী ত্রুটি পেয়েছেন?
slayedbylucifer

আমি মনে করি তিনি shutdownকমান্ডটি সম্পর্কে কথা বলছেন ।
Vinz

আমি দৌড়েছি। / শাটডাউন +30। আমি "শাটডাউন: রুট হওয়া দরকার" পেয়েছি। তবে, যদি অনুমতিগুলি বলে যে যে কেউ মৃত্যুদণ্ড কার্যকর করতে পারে তবে আমাকে কেন রুট হওয়া দরকার?
কোরগান রিভেরা 11

আমি অনুমান করছি, যে কেউ মেশিনটি বন্ধ করতে পারে। জিইউআইয়ের মতো, যে কেউ এটিকেও বন্ধ করতে পারেন। তবে আপনি যদি বলছেন যে আপনাকে রুট হওয়া দরকার তবে আমি জানি না। ভাল প্রশ্ন যদিও।
কেভডোগ 777

4
@ কেভডগ 777: একটি জিইউআই পলিসি কিট এটি পরিচালনা করে। এটি রুট সুবিধাগুলি সহ একটি ডেমন যা আপনাকে ব্যবহারের অনুমতি দিচ্ছে কিনা তা যাচাই করবে shutdown
Vinz

উত্তর:


76

যে কেউ মৃত্যুদণ্ড কার্যকর করতে পারে shutdown, তবে একটি সিস্টেম শাটডাউন ট্রিগার করতে রুট সুবিধাগুলি প্রয়োজন। তবে shutdownনির্ধারিত নয়, এবং কেবলমাত্র রুট এটি সফলভাবে সম্পাদন করতে পারে। shutdownপ্রোগ্রামটি আপনার বিশেষাধিকার চেক করুন এবং যদি একটি সমস্যা আছে, কিন্তু যদিও তা naively একটি সিস্টেম শাটডাউন চেষ্টা, কিছুই ঘটতে পারে আপনাকে জানাতে চমৎকার যথেষ্ট।

ঝলক: আমি গভীর থেকে উদ্দীপনা কল করতে পারেন।
হটস্পার: কেন, আমিও তাই করতে পারি বা যে কোনও মানুষই পারে; আপনি যখন তাদের ডাকবেন তখন কি তারা আসবে?
(চতুর্থ হেনরি থেকে)

shutdownএর থেকে আলাদা নয় /bin/rm। প্রত্যেকে এটি কার্যকর করতে পারে তবে নিয়মিত ব্যবহারকারীর /etcবা অন্য ব্যবহারকারীর হোম ডিরেক্টরি মুছে ফেলা যায় না ।

সুনির্দিষ্টভাবে: কেবলমাত্র রুট সুবিধাগুলি (কার্যকর ইউআইডি 0) দিয়ে চলছে এমন একটি প্রক্রিয়া ইআরসি সিস্টেমকে সিস্টেম পরিষেবাদি বন্ধ করতে, সমস্ত ব্যবহারকারীর প্রক্রিয়াগুলি বন্ধ করতে, এবং সিস্টেম কলটি ইস্যু করতে পারে যা প্রকৃতপক্ষে মেশিনকে থামিয়ে দেয়। (যদি shutdownসেটুকুইড হয় তবে এটি কারা ডাকে তা মূল হিসাবে চালিত হত; তবে তা নয়))

shutdownকোনও জিইউআই থেকে কল করার বিষয়ে , যেমন- কন্ট্রোল-ওল্ট-ডেল দিয়ে? এটি উপলব্ধি করা গুরুত্বপূর্ণ যে shutdownসেক্ষেত্রে সরাসরি শুরু হয়েছিল initএবং এটি মূল সুযোগগুলি নিয়ে চলে। সুতরাং যে কেউ কনসোলে যান তারা সম্ভাব্যভাবে এটি বন্ধ করে দিতে পারে। যদি এটি পছন্দসই না হয় তবে কন্ট্রোল-ইল-ডিলিট আসলে চলবে shutdown -a। (ডকুমেন্টেশন দেখুন যা @ কিছু 1 তাদের উত্তরে উদ্ধৃত হয়েছে)। shutdownএটি বর্তমানে লগ ইন করা ব্যবহারকারী এটি চালানোর জন্য অনুমোদিত কিনা তা পরীক্ষা করতে বলে tells তবে এটি কেবল প্রাসঙ্গিক কারণ shutdownএই দৃশ্যের মূল হিসাবে চলমান।


2
স্পেসিফিকেশন: যে কেউ প্রোগ্রামটি কার্যকর করতে পারে shutdown, তবে বর্তমান ব্যবহারকারীটির রুট সুবিধাগুলি না থাকলে সেই প্রোগ্রামটি আসলে সিস্টেম শাটডাউন ট্রিগার করতে পারে না । রাইট?
LarsH

1
যে প্রায় কাছাকাছি এটা. প্রোগ্রামগুলি প্রেরণকারী ব্যবহারকারীর সুবিধাসমূহের সাথে চালিত হয়, যদি না সেগুলি সেট করা থাকে। সিস্টেমটি বন্ধ করার জন্য মূল সুবিধার প্রয়োজন, সুতরাং এটি করার জন্য আপনি নিজের প্রোগ্রামটি লিখতে পারবেন না, হয় (সুরক্ষা গর্তগুলি শোষণ করে বাদ দিয়ে)।
অ্যালেক্সিস

"শাটডাউন সেটুইড নয়" এর অর্থ কী?
আইয়েন স্যামুয়েল ম্যাকলিন বয়স্ক

1
@ আইইন, প্রোগ্রামগুলি সাধারণত তাদের ব্যবহারের অনুমতি নিয়ে চালিত হয়। এই ক্ষেত্রেও এটি হয় shutdown। এক্সিকিউটেবলের মালিকের ব্যবহারকারীর অনুমতি নিয়ে একটি সেটুইড প্রোগ্রাম চালানো হয়। উদাহরণস্বরূপ, /etc/passwdআপনাকে পাসওয়ার্ড ফাইলটি সংশোধন করার অনুমতি দেওয়ার জন্য রুট অনুমতি নিয়ে চলে। এর জন্য ম্যানপেজটি দেখুন chmod
অ্যালেক্সিস

এটি " /usr/bin/passwdরুট অনুমতি দিয়ে রান " করা উচিত ছিল ! /etc/passwdকার্যকর করা যায় না (এটি "পাসওয়ার্ড ফাইল" পরিবর্তিত হচ্ছে)।
অ্যালেক্সিস

15

বাইনারি 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)                           = ?

4
স্ট্রেসের ব্যবহার দেখানোর জন্য +1 ... এটি দরকারী। তবে আমি দেখতে পাচ্ছি না কীভাবে এই ট্রেসটি দেখায় shutdownযে আপনার ইউআইডি 0 টি আছে কিনা তা যাচাই করে
লার্সহ

1
এটি স্ট্রেস আউটপুটে আপনি দেখতে পাবেন না যেহেতু এটি কেবলমাত্র সিস্টেম কলগুলির প্রতিবেদন করে। আপনি অনুমান করতে পারেন যে যখন কোনও গিটইড ঘনিষ্ঠভাবে ত্রুটি বার্তাটি লিখে অনুসরণ করে যে কোডটির অনুরূপ ছিল if(getuid() != 0) printf("Need to be root");। যা প্রকৃতপক্ষে উত্স কোডটি এটি হতে দেখায়।
এমএসডব্লিউ

5

হ্যাঁ! প্রত্যেকেই এই আদেশটি চালাতে পারে। হিসাবে আপনি বলেন, আপনি এটি চালানোর করতে পারবেন কিন্তু আপনি বার্তা, না একটি একটি "মূল করা প্রয়োজন" সম্মুখীন করছেন permission deniedshutdownকমান্ড চেক আপনার UIDযদি তুমি রুট দেখতে, বা না করা।


-1

মনে হচ্ছে শটডাউন কোনও অ্যাক্সেস তালিকা চেক করবে যদি আপনি এটিকে একটি দিয়ে ফ্ল্যাগ করেন তবে:

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নিয়ন্ত্রণ-ওএল-ডেল সরবরাহ করে) দিয়ে মৃত্যুদন্ড কার্যকর করা উচিত ।
অ্যালেক্সিস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.