উত্স কোডটি দেখুন, বিশেষভাবে libmisc/chkname.c
। ছায়াটি বেশ রক্ষণশীল: নামগুলি অবশ্যই রেজিপ্লেক্সের সাথে মেলে [_a-z][-0-9_a-z]*\$?
এবং বেশিরভাগ GROUP_NAME_MAX_LENGTH
অক্ষর দীর্ঘ হতে পারে (কনফিগার বিকল্প, ডিফল্ট 16; ব্যবহারকারীর নামগুলি সাধারণত 32 টি অক্ষর পর্যন্ত যেতে পারে, সংকলন-সময় নির্ধারণের সাপেক্ষে)।
দেবিয়ান চেকটি অনেকটা শিথিল করে। গ্রীষ্ম হিসাবে, সাদা জায়গা ছাড়া আর :
কিছু অনুমোদিত এবং অনুমোদিত। দেখুন বাগ # 264879 এবং বাগ # 377844 ।
পসিক্সের জন্য উভয় ক্ষেত্রে, অঙ্কগুলি এবং ._-
( ফাইলের নামের মতো ) অক্ষরের অনুমতি দেওয়া দরকার । আপনি পোর্টেবিলিটিটির যত্ন না রাখলে পসিক্স কোনও বিধিনিষেধ সেট করে না। প্রচুর প্রস্তাবিত বিধিনিষেধগুলি ব্যবহার থেকে আসে:
- কলোন, নিউলাইন এবং নাল ঠিক আছে; আপনি কেবল এগুলিতে
/etc/passwd
বা ব্যবহার করতে পারবেন না /etc/group
।
- কেবলমাত্র সংখ্যার সমন্বিত একটি নামটি একটি খারাপ ধারণা -
chown
এবং chgrp
এটি ব্যবহারকারী / গোষ্ঠী ডাটাবেসে থাকলে একটি অঙ্কের ক্রমটিকে একটি নাম হিসাবে বিবেচনা করার কথা মনে করা হয়, তবে অন্যান্য অ্যাপ্লিকেশনগুলি কোনও সংখ্যাকে আইডি হিসাবে গণ্য করতে পারে।
- কোনও ব্যবহারকারীর নামের একটি প্রাথমিক
-
বা একটি .
দৃ strongly়ভাবে সুপারিশ করা হয় না, কারণ অনেক অ্যাপ্লিকেশন $user.$group
বাইরের ইউটিলিটি (উদাহরণস্বরূপ chown $user.$group /path/to/file
) pass এ যেতে সক্ষম বলে আশা করে ¹ .
একটি গোষ্ঠীর নাম ক কম সমস্যা সৃষ্টি করা উচিত, কিন্তু আমি এখনও এর বিরুদ্ধে সুপারিশ।
/
সমস্যাও হতে পারে, কারণ কিছু প্রোগ্রাম ফাইলের নাম ব্যবহারকারীর নাম ব্যবহার করতে সক্ষম হবে বলে আশাবাদী।
- শেলটি যে পরিমাণে প্রসারিত হবে তা সম্ভবত ঝুঁকিপূর্ণ।
- নন-এএসসিআইআই অক্ষরগুলি ঠিকঠাক হওয়া উচিত যদি আপনি এমন সিস্টেমগুলির সাথে ভাগ করে নেওয়ার বিষয়ে চিন্তা না করেন যা বিভিন্ন এনকোডিং ব্যবহার করতে পারে।
¹ সমস্ত আধুনিক বাস্তবায়ন প্রত্যাশা করে chown $user:$group
, তবে chown $user.$group
পশ্চাদপটে সামঞ্জস্যের জন্য সমর্থন করে এবং সেখানে অনেকগুলি অ্যাপ্লিকেশন রয়েছে যা সেই সামঞ্জস্যতা সমর্থনটি সরাতে একটি বিন্দু পাস করে।
chown
যুক্তি: বর্তমান সিনট্যাক্স, কমপক্ষে জিএনইউ কোর্টিলগুলিতে,user:group
বিন্দুটি কেবলমাত্র সামঞ্জস্যতার জন্য গ্রহণযোগ্য। এক ব্যবহার করতে পারেনj.smith:j.smith
।