উত্তর:
দ্রষ্টব্য: JdeBP হিসাবে মন্তব্য তুলে ধরে , এটা আচরণ নকল করা অ তুচ্ছ হয় mesgসঙ্গে chmod।
POSIX নির্দেশের মধ্যে নীতি বিভাগের জন্যmesg বলেছেন
টার্মিনাল দ্বারা পরিবর্তন
mesgসেশনের জন্য নিয়ন্ত্রণ টার্মিনাল যে আদর্শ ইনপুট, আউটপুট, বা ত্রুটি সঙ্গে যুক্ত বদলে হয় । এটি কারণ যে একাধিকবার লগ ইন করা ব্যবহারকারীরা সেই সেশনে চলমান কাজটি বন্ধ না করেই তাদের কোনও লগইন টার্মিনাল পরিবর্তন করতে সক্ষম হওয়া উচিত। এটি অন্যান্য ব্যবহারকারীর টার্মিনালগুলির সাথে জড়িত কোনও সুরক্ষা সমস্যা নয় কারণ অন্য ব্যবহারকারীর টার্মিনালকে প্রভাবিত করার জন্য উপযুক্ত সুযোগগুলি প্রয়োজন।সিস্টেম ভি থেকে কোনও টার্মিনাল না পাওয়া পর্যন্ত ক্রমানুসারে প্রথম তিনটি ফাইল বর্ণনাকারীর প্রত্যেকটিকে পরীক্ষা করার পদ্ধতি
নিষ্পাপ পদ্ধতিরmesg ব্যবহার হ'ল শেলের নিয়ন্ত্রণকারী টার্মিনালটিতে (বর্তমান ইন্টারেক্টিভ শেলের মানক ইনপুটটি সংযুক্ত করা হয়েছে এমন ডিভাইস) ব্যবহার করার সময় অনুমতিগুলির পরিবর্তনগুলি লক্ষ্য করা উচিত।
শেলের নিয়ন্ত্রণকারী টার্মিনাল ttyকমান্ড দ্বারা ফিরে আসে returned ডিভাইসে অনুমতি নিয়ে কী mesg nএবং mesg yকী করছে তা নির্ধারণ করার জন্য, আমরা এটি ব্যবহার ls -lকরতে পারি এবং কী পরিবর্তন হয় তা দেখতে পাই:
$ ls -l "$(tty)"
crw--w---- 1 myself tty 5, 1 May 6 00:21 /dev/ttyp1
$ mesg n
$ ls -l "$(tty)"
crw------- 1 myself tty 5, 1 May 6 00:21 /dev/ttyp1
$ mesg y
$ ls -l "$(tty)"
crw--w---- 1 myself tty 5, 1 May 6 00:21 /dev/ttyp1
সুতরাং দেখে মনে হচ্ছে mesg nডিভাইসের জন্য গ্রুপ রাইট অনুমতিটি সরিয়ে ফেলা হয়েছে (এতে rw--w----পরিবর্তন হয় rw-------) এবং mesg yআবার গোষ্ঠী লেখার অনুমতি যুক্ত করুন।
chmodসমতুল্য, আমার ক্ষেত্রে, হবে
$ chmod g-w "$(tty)" # for "mesg n"
$ chmod g+w "$(tty)" # for "mesg y"
আপনার ইউনিক্সের বিশেষ স্বাদের জন্য নুন এবং গোলমরিচ যথাযথভাবে যোগ করুন।
নোট করুন, যদিও, শেলের মানক ইনপুটটি টার্মিনাল না ttyহলে স্ট্রিংটি ফিরে আসবে not a ttyএবং chmodব্যর্থ হবে। এই পরিস্থিতিতে, mesgশেলের স্ট্যান্ডার্ড আউটপুট এবং তারপরে স্ট্যান্ডার্ড ত্রুটি (সেই ক্রমে) এর জন্য টার্মিনাল ডিভাইসটি ব্যবহার করে দেখতে পারা যায়। এই কারণেই উপরেরটি একটি নির্বোধ দৃষ্টিভঙ্গি।
"$(tty)"করতে "`tty`"পারেন bash(যেমন কোডটি কাজ করে না tcsh)।
/bin/sh(না bash) যা একটি শেল যা সমস্ত ইউনিক্স সিস্টেমে বিদ্যমান। কমান্ড প্রতিস্থাপন হিসাবে /bin/shবোঝে $(...)(যদি সিস্টেমটি আসলেই খুব পুরানো না হয় এবং কয়েকটি আপডেটের চেয়ে বেশি বাদ পড়ে) সে সম্পর্কে আরও তথ্যের জন্য, ইউনিক্স.স্ট্যাকেক্সেঞ্জাং.কম
chmod g-wএবং এর মধ্যে পার্থক্য কী chmod g-w "$(tty)"? (ইউনিক্সে নতুন এবং আমি বুঝতে পেরেছি তা নিশ্চিত করার চেষ্টা করে)
$(tty), না ($tty)। আমার পসিক্স মোডে /bin/shঘটে ksh।
mesgএই উত্তরে প্রতিফলিত না হওয়ার একটি সূক্ষ্মতা হ'ল এটি নিয়ন্ত্রণকারী টার্মিনালটিতে কাজ mesg করে না । mesgএটি কোন অপারেটিং সিস্টেমের উপর নির্ভর করে , এটি স্ট্যান্ডার্ড ত্রুটি বা স্ট্যান্ডার্ড ডিভাইস হ'ল স্ট্যান্ডার্ড ইনপুট / আউটপুট / ত্রুটির প্রথমটির উপর পরিচালিত হয়। এটি সদৃশ করতে তুচ্ছ নয়, এবং ttyকমান্ড জড়িত না । একটি mesgম্যানুয়াল পৃষ্ঠার একটি উদাহরণ এমনকি অন্য কোনও টার্মিনাল থেকে পুনর্নির্দেশক স্ট্যান্ডার্ড ইনপুট প্রদর্শন করে এবং নিয়ন্ত্রণকারী টার্মিনালটি দেয় না।
mesgসেটিংস ব্যবহারকারী (গুলি) এবং গোষ্ঠী (গুলি) এর উপর নির্ভর করতে চান ?