/ টিএমপি জন্য সঠিক অনুমতি কি? আমি অজান্তেই এটিকে সর্বজনীনভাবে পুনরাবৃত্তির সাথে সেট করি


78

গালি দিয়েছি sudo

আমি একটি সত্যই স্বল্প জীবনের অস্থায়ী ডিরেক্টরি তৈরি করেছি যা আমি কয়েক ঘন্টার জন্য কিছু ব্যবহারকারীর মধ্যে ভাগ করতে চেয়েছিলাম ... এবং আমি এই ডিরেক্টরিটির নাম রেখেছি /some/path/tmp

দুর্ভাগ্যক্রমে আমি এর sudo chown 777 -R /tmpপরিবর্তে চালু করেছি sudo chown 777 -R tmp, সুতরাং আমার /tmpফাইলটি এখন সম্পূর্ণ প্রকাশ্যে public

আমি সাধারণ ব্যবহার /tmpব্যক্তিগতভাবে সংক্ষিপ্ত জীবনে ফাইল, স্ক্রিপ্ট, লিপি প্রচুর জন্য চমত্কার প্রায়ই (প্রতিদিন, প্রায় প্রতিটি ঘন্টা)।

এটি এখন জনসাধারণের কাছে সম্পূর্ণ সেট করা কি কোনও সুরক্ষার উদ্বেগ? আমি কি এটিকে আরও সুরক্ষিত সেটিংসে পরিবর্তন করতে পারি, বা কোনও দেবিয়ান বা উবুন্টু ডিস্ট্রো-এর সাধারণ ডিফল্ট সেটিংসের মতো - (আমি জানি না যে সেগুলি কী ছিল)? সঠিক অনুমতি কিসের জন্য /tmp?


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

ছিল chownনাকি chmod?
মেলিবিয়াস

@ ম্লেবিয়াস আমি আপনার প্রশ্নে কিছুটা হতবাক: আমি উল্লেখ করি নি chmod। সিউন (যেমন চ - নিজস্ব), ফাইলগুলির মালিকানা সম্পর্কে, যা ব্যবহারকারী কোনও ফাইলের মালিক। chmod (যেমন ch - সংশোধন করা) কে এক্সিকিউট করতে পারে বা ভিতরে লিখতে পারে বা কোনও ফাইলের বিষয়বস্তু পড়তে পারে সে সম্পর্কে আরও বেশি।
স্টিফেন রোল্যান্ড

2
@ স্টাফেনরোল্যান্ড হ্যাঁ, এটাই আমাকে বিভ্রান্ত করেছে। আপনি ব্যবহার করতে পারেন chown 777যা 777 আইডি সহ কোনও ফাইলের মালিকানা নির্ধারণ করে However তবে, গৃহীত উত্তর সহ সমস্ত উত্তর কাজ করে chmod। যেহেতু সকলেই সমস্ত ব্যবহারকারীর (মালিক, গোষ্ঠী, অন্য) জন্য একই মানের জন্য অনুমতি সেট করে থাকে তাই ফাইলের মালিকানার বেশিরভাগ প্রভাব অপ্রাসঙ্গিক হয়ে যায়। তবে ফলাফলটি সংশোধন করার জন্য সঠিক কমান্ডটি sudo chown 777 -R /tmpহওয়া উচিত sudo chown root -R /tmp
মেলবিয়াস

উত্তর:


117

এর জন্য সাধারণ সেটিংস /tmp1777, যা lsহিসাবে দেখায় drwxrwxrwt। এটি হল: প্রশস্ত উন্মুক্ত, কেবলমাত্র কোনও ফাইলের মালিকই এটি সরাতে পারবেন (ডিরেক্টরিতে এটি অতিরিক্ত tবিট মানে।

/tmpMode 777 মোডের সাথে সমস্যাটি হ'ল অন্য ব্যবহারকারী আপনার তৈরি করা ফাইলটি সরিয়ে ফেলতে এবং তাদের পছন্দের সামগ্রীটি প্রতিস্থাপন করতে পারে।

যদি আপনার /tmpএকটি tmpfs ফাইল সিস্টেম হয়, একটি রিবুট সবকিছু পুনরুদ্ধার করবে। অন্যথায়, চালান chmod 1777 /tmp

অতিরিক্তভাবে, প্রচুর ফাইল /tmpব্যক্তিগত হতে হবে। তবে কমপক্ষে একটি ডিরেক্টরি সমালোচনামূলকভাবে বিশ্ব-পঠনযোগ্য হওয়া দরকার: /tmp/.X11-unixএবং সম্ভবত কিছু অন্যান্য অনুরূপ ডিরেক্টরি ( /tmp/.XIM-unixইত্যাদি), নিম্নলিখিত কমান্ডটি বেশিরভাগ ক্ষেত্রে সঠিকভাবে সেট করা উচিত:

chmod 1777 /tmp
find /tmp -mindepth 1 -name '.*-unix' -exec chmod 1777 {} + -prune -o -exec chmod go-rwx {} +

অর্থাত্ সমস্ত ফাইল এবং ডিরেক্টরিগুলি ব্যক্তিগত করুন (গোষ্ঠী এবং অন্যান্যগুলির জন্য সমস্ত অনুমতিগুলি সরিয়ে দিন), তবে এক্স 11 সকেট সকলের কাছে অ্যাক্সেসযোগ্য করে তুলুন। এই সকেটগুলিতে অ্যাক্সেস নিয়ন্ত্রণ ফাইল অনুমতি দ্বারা নয় সার্ভার দ্বারা প্রয়োগ করা হয়। অন্যান্য সকেট থাকতে পারে যা সর্বজনীনভাবে উপলব্ধ হতে হবে। চালান find /tmp -type s -user 0রুট মালিকানাধীন সকেট যা আপনি বিশ্বের-অ্যাক্সেসযোগ্য করতে প্রয়োজন হতে পারে আবিষ্কার। অন্যান্য সিস্টেম ব্যবহারকারীদের দ্বারা মালিকানাধীন সকেট থাকতে পারে (যেমন একটি সিস্টেম বাসের সাথে যোগাযোগ করার জন্য); find /tmp -type s ! -user $UID( $UIDআপনার ব্যবহারকারী আইডি কোথায় ) দিয়ে এক্সপ্লোর করুন ।


1
আপনি দ্বিতীয় chmod আরও ব্যাখ্যা করতে পারেন?
বার্টলোমিয়েজ লেয়ান্ডোভস্কি

@ বার্টলমিয়েজ লেভান্ডোভস্কি go-rwx: গ্রুপ এবং অন্যদের জন্য অনুমতি নেই। এটি অনুমতিগুলি সেট করে rwx------(এগুলি যে ফাইলগুলি তৈরি হয়েছিল সেগুলি বাদে chmodকম অনুমতি নিয়ে শেষ হতে পারে, যেমন rw-------)। অন্য কথায়, ফাইলগুলি কেবল তাদের মালিকের দ্বারা অ্যাক্সেসযোগ্য হবে। /tmp/.[!.]*ডট ফাইল অন্তর্ভুক্ত করা হয় যা সাধারণত বিদ্যমান থাকে /tmp
গিলস

@ বার্টলমিয়েজ লেভান্ডোভস্কি: chmod -go-rwx: মালিক এবং গ্রুপের "rwx" অধিকার সেট করুন। r = পঠন, ডাব্লু = রাইটিং, এক্স = এক্সিকিউট (ফাইলের জন্য) বা প্রবেশ / ট্র্যাভার্স (ডিরেক্টরিতে)। 777 = rwxrwxrwx (ডান অংশটি দেখা যাবে: "সেট 'আর' সেট 'ডাব্লু' সেট 'এক্স', সেট 'আর' সেট 'ডাব্লু' সেট 'এক্স', সেট 'আর' সেট 'ডাব্লু' সেট 'এক্স '', যা বাইনারিতে "111111111" হিসাবে সেট করা হয় (সেট করতে 1 সেট করা হয়, 0 সেট করতে হবে না) এবং বাইনারিতে "111111111" অষ্টালে "777" (অষ্টাল = 3 বিটের গ্রুপ, প্রতিটি গ্রুপের মান 0 আছে) হিসাবে উপস্থাপিত হয় ))। "Rwxr-xr--" হলে এটি "111101100" হবে যা অষ্টালে "754"
অলিভিয়ার দুলাক

2
+ টি স্টিকি বিট হিসাবে উল্লেখ করা হয়। অনুমতিগুলি অন্যথায় অনুমতিগুলি 77 are7 থাকলেও ফাইলগুলি অপসারণ করতে সক্ষম হওয়ায় মালিক ব্যতীত অন্য কাউকে এটাই রাখে। স্টিকি বিটটি মূলত ছিল কার্নেলটি মেমরিতে সাধারণ প্রোগ্রামগুলি রাখার জন্য যখন তারা বের হয় তখন তারা পরবর্তী রান করার সময় ডিস্ক থেকে আনতে হবে না। আমরা পিডিপি 11 দিনের সাথে কথা বলছি ....
কুর্তম

1
@ গ্যাব্রিয়েলফায়ার আমি কমান্ডটি প্রতিস্থাপন করে ওয়াইল্ডকার্ড ব্যবহার করে এমন একটি ব্যবহার করে খুঁজে পেয়েছি যা সমস্যার মধ্যে পড়ে না।
গিলস

10

/tmpএবং সবার /var/tmpপড়া উচিত, লিখতে এবং সম্পাদন করা উচিত; তবে আপনি সাধারণত o+tব্যবহারকারীদের অন্যান্য ব্যবহারকারীর ফাইল / ডিরেক্টরি মুছে ফেলা থেকে বিরত রাখতে স্টিকি বিট ( ) যুক্ত করে দিতেন । তাই chmod a=rwx,o+t /tmpকাজ করা উচিত।

পুনরাবৃত্তিমূলকভাবে অনুমতিগুলি পরিবর্তন করার জন্য ... যতক্ষণ না মালিক / গ্রুপ ফাইল এবং ডিরেক্টরিগুলির জন্য থাকে ততক্ষণ সমস্যাটি এতটা হওয়া উচিত নয়। তবে আপনি অন্যের এবং সম্ভবত গোষ্ঠীর অধিকারগুলি /tmpসরিয়ে ব্যবহারকারীদের গোপনীয়তা নিশ্চিত করার জন্য (নিজেরাই নয় / টিএমপি নিজেই) সমস্ত কিছুর অনুমতি পরিবর্তন করতে পারেন rx

এটি করার একটি ভাল উপায় এটি সন্ধান করুন। মূল হিসাবে, করুন:

cd /tmp
find . -type f -exec chmod u=rw,go= {} \;   # (or u=rw,g=r,o= {})
find . -type d -exec chmod u=rwx,go= {} \;  # (or u=rwx,g=rx,o= {})

একটি সাধারণ ডেস্কটপ সিস্টেমে আপনি আরও ভাল করে /tmp/.X11-unix/*বিশ্ব-পঠনযোগ্য করে তুলতে পারবেন, বা আপনি আর এক্স অ্যাপ্লিকেশন আরম্ভ করতে সক্ষম হবেন না।
গিলস

chmod a=rwX,o+t /tmp -Rfindযাদু করা উচিত ।
ফ্রি

3
[root@Niflheim tmp]# ls -alF .
total 1632
drwxrwxrwt 15 root root    4096 Apr  7 04:24 ./
drwxr-xr-x 28 root root    4096 Apr  2 21:02 ../
[root@Niflheim tmp]# stat -c '%A %a %n' .
drwxrwxrwt 1777 .

একটি CentOS 5.9 মেশিন থেকে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.