ชื่อกลุ่มที่อนุญาตสำหรับ groupadd คืออะไร?


13

ฉันทำตามคำแนะนำเหล่านี้เพื่อสร้าง Shadow ซึ่งให้groupaddคำสั่ง ตอนนี้ฉันได้รับข้อผิดพลาดเมื่อลอง:

$ groupadd automake1.10
groupadd: 'automake1.10' is not a valid group name

ฉันตรวจสอบชื่อตัวอักษรและตัวเลขและพวกมันใช้ได้ดี

คำตอบ:


20

libmisc/chkname.cดูรหัสแหล่งที่มาโดยเฉพาะ เงาค่อนข้างอนุรักษ์นิยม: ชื่อจะต้องตรงกับ regexp [_a-z][-0-9_a-z]*\$?และอาจมีความGROUP_NAME_MAX_LENGTHยาวไม่เกินอักขระส่วนใหญ่(ตัวเลือกการกำหนดค่าเริ่มต้นที่ 16 ชื่อผู้ใช้สามารถมีความยาวได้สูงสุด 32 ตัวอักษรขึ้นอยู่กับการพิจารณาเวลารวบรวม)

เดเบียนผ่อนคลายเช็คมาก ในฐานะที่เป็นบีบสิ่งใดนอกจากช่องว่างและ:ได้รับอนุญาต ดูข้อผิดพลาด # 264879และข้อผิดพลาด #

POSIXต้องอนุญาตให้ใช้ตัวอักษรของตัวพิมพ์ใหญ่และ._-( เช่นในชื่อไฟล์ ) POSIX ไม่ได้ตั้งข้อ จำกัด ใด ๆ หากคุณไม่สนใจเกี่ยวกับการพกพา ข้อ จำกัด ที่แนะนำจำนวนมากมาจากการใช้งาน:

  • Colons, newlines และ nulls ถูกต้อง คุณก็ไม่สามารถใช้พวกเขาในหรือ/etc/passwd/etc/group
  • ชื่อที่ประกอบด้วยตัวเลขเพียงอย่างเดียวเป็นความคิดที่ไม่ดีchownและchgrpควรถือว่าลำดับตัวเลขเป็นชื่อหากอยู่ในฐานข้อมูลผู้ใช้ / กลุ่ม แต่แอปพลิเคชันอื่น ๆ อาจถือว่าหมายเลขใด ๆ เป็นรหัสตัวเลข
  • ไม่แนะนำให้ใช้ชื่อเริ่มต้น-หรือ.ชื่อผู้ใช้เนื่องจากแอปพลิเคชั่นจำนวนมากคาดว่าจะสามารถส่งผ่าน$user.$groupไปยังยูทิลิตี้ภายนอก (เช่นchown $user.$group /path/to/file) ¹ A .ในชื่อกลุ่มควรทำให้เกิดปัญหาน้อยลง แต่ฉันก็ยังแนะนำต่อไป
  • / มีแนวโน้มที่จะทำให้เกิดปัญหาเช่นกันเนื่องจากบางโปรแกรมคาดว่าจะสามารถใช้ชื่อผู้ใช้ในชื่อไฟล์ได้
  • อักขระใด ๆ ที่เชลล์จะขยายอาจมีความเสี่ยง
  • อักขระที่ไม่ใช่ ASCII ควรใช้ได้ถ้าคุณไม่สนใจเกี่ยวกับการแบ่งปันกับระบบที่อาจใช้การเข้ารหัสที่แตกต่างกัน

¹ ทุกการใช้งานที่ทันสมัยคาดหวังchown $user:$groupแต่การสนับสนุนchown $user.$groupสำหรับความเข้ากันได้และมีการใช้งานมากเกินไปออกมีที่ผ่านจุดที่จะลบว่าการสนับสนุนการทำงานร่วมกัน


Re chownอาร์กิวเมนต์: ไวยากรณ์ปัจจุบันอย่างน้อยที่สุดใน GNU coreutils คือuser:groupโดยมีจุดที่ได้รับการยอมรับสำหรับความเข้ากันได้เท่านั้น j.smith:j.smithหนึ่งสามารถใช้
user1686

1
@grawity: มันไม่ใช่แค่ GNU coreutils แต่ปัญหาไม่ใช่chownตัวของมันเองมันเป็นสคริปต์ที่มีอยู่และโปรแกรมอื่น ๆ ที่เรียกchown $user.$groupใช้แทนchown $user:$group- แม้ว่าการchownใช้งานจะพยายามทำสิ่งที่ถูกต้อง แต่บางกรณีก็มีความคลุมเครือในตัว
Gilles 'หยุดความชั่วร้าย'

1

หากคุณรู้สึกผจญภัยคุณสามารถแก้ไข/etc/groupได้โดยตรงและใส่ชื่อกลุ่มที่คุณต้องการ นอกจากนี้ยังมีโบนัสเพิ่มเติมที่เมื่อคุณพบปัญหาอย่างใดอย่างหนึ่งที่ @Gilles กล่าวถึงคุณอาจไม่สามารถโหลดเครื่องมือแก้ไขเพื่อแก้ไขปัญหาหรือแม้แต่ลงชื่อเข้าใช้เลย - ให้ประสบการณ์อันมีค่าในการกู้คืนระบบที่เสียหาย!


5
อย่าลืมแก้ไข/etc/gshadowเมื่อเพิ่มกลุ่ม นอกจากนี้ให้ใช้vigr(8)แทนการแก้ไขไฟล์โดยตรง
camh
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.