ฉันจะค้นหา ID ผู้ใช้และกลุ่มใน Mac OS X ได้อย่างไร


59

กำลังพยายามเรียกใช้ compand นี้ในเทอร์มินัล:

sudo chown -R yourid:yourgroup local

อย่างไรก็ตามฉันไม่ทราบว่า ID และกลุ่มของฉันคืออะไรหรือหาได้ที่ไหน ความคิดใด ๆ

คำตอบ:


61

บน OS X กลุ่มหลักของคุณจะเป็นทุกครั้งstaffเว้นแต่ว่าคุณหรือตัวจัดการไดเรกทอรีผู้ใช้ของคุณจะเปลี่ยน

คือสิ่งที่กลุ่มหลัก ? กลุ่มหลักของผู้ใช้เป็นค่าเริ่มต้นเจ้าของไฟล์ทั้งหมดที่สร้างโดยผู้ใช้นั้น


เพื่อจุดประสงค์chmodในคอมพิวเตอร์ของคุณคุณสามารถใช้ ID ผู้ใช้เป็นตัวเลข (เช่น 501) หรือชื่อบัญชีของคุณ (เช่นdanielbeck) หลังจะแตกต่างจากชื่อผู้ใช้ที่คุณมักจะเห็นใน UI (เช่นDaniel Beck )

คุณสามารถกำหนดชื่อบัญชีของคุณโดยใช้สิ่งใดสิ่งหนึ่งต่อไปนี้:

  • เป็นชื่อของโฮมไดเร็กตอรี่ของคุณ (เว้นแต่คุณจะปรับแต่งมัน) ในหัวเรื่องหรือแถบด้านข้าง

  • ทำงานwhoamiใน Terminal - ดังนั้นchown -R $(whoami):staffควรจะเพียงพอ groups $(whoami) | cut -d' ' -f1นอกจากนี้คุณยังจะได้รับกลุ่มหลักของคุณด้วย

  • เปิดการตั้งค่าระบบ»ผู้ใช้และกลุ่มปลดล็อคบานหน้าต่างถ้าจำเป็นคลิกขวาที่ชื่อผู้ใช้ของคุณ (รายการรายการเดียวในผู้ใช้ปัจจุบันส่วน) และเลือกตัวเลือกขั้นสูง ... เป็นชื่อบัญชีฟิลด์ในหน้าต่างโต้ตอบที่เพิ่งเปิดใหม่ กล่องโต้ตอบนี้จะแสดงกลุ่มหลักของคุณ

  • ทำงานidใน Terminal เพื่อเอาท์พุท verbose มากขึ้น ซึ่งจะรวมถึง ID ผู้ใช้ที่เป็นตัวเลขของคุณ นอกจากนี้ยังจะแสดงรายการทุกกลุ่มที่คุณเป็นสมาชิกไม่ใช่เฉพาะกลุ่มหลักของคุณ กลุ่มแรกเป็นกลุ่มแรก


3
แทนที่จะใช้whoamiคุณสามารถใช้idใน oneliner ที่เข้ากันได้กับ posix shells และ csh chown -R `id -u`:`id -g` FOLDER
fd0

ถ้าคุณใช้ LDAP staffรับรองความถูกต้องของคุณชื่อผู้ใช้จะไม่จำเป็นต้อง ไม่ได้ทำงาน Mac OS X ของฉันอยู่ดี
Sridhar Sarnobat

1
@ Sridhar-Sarnobat ฉันพูดถึงเรื่องนี้ในช่วงครึ่งหลังของประโยคแรกของคำตอบของฉัน
Daniel Beck

42

ใช้idคำสั่งจากเทอร์มินัล มันจะแสดงโพสต์ของคุณและกลุ่มที่คุณอยู่ ตัวอย่างเช่นนี่คือผลลัพธ์ของฉันที่แสดง ID ผู้ใช้ของฉัน (534), รหัสกลุ่ม (20) และกลุ่มที่ฉันเป็นสมาชิก (เช่น 20)

uid=534(galuga) gid=20(staff) groups=20(staff)

15

สิ่งนี้จะแสดงหมายเลขผู้ใช้ของคุณ

$ id -u
502

นี่จะแสดงชื่อกลุ่มของคุณ ชื่อกลุ่มอยู่ในวงเล็บ

$ id
uid=502(whoami) gid=20(staff) groups=20(staff),702(com.apple.sharepoint.group.2),12(everyone),61(localaccounts),79(_appserverusr),80(admin),81(_appserveradm),98(_lpadmin),33(_appstore),100(_lpoperator),204(_developer),395(com.apple.access_ftp),398(com.apple.access_screensharing),399(com.apple.access_ssh)

4

ในเทอร์มิให้ไปและเรียกใช้~/Documents ls -laชื่อผู้ใช้และกลุ่มของคุณจะปรากฏถัดจากแต่ละไฟล์ / ไดเรกทอรี

ควรมีลักษณะเช่นนี้:

drwxr-xr-x  2 username usergroup  4096 Oct 17  2012 Templates

ง่ายสุด ๆ และตรงไปตรงมาขอบคุณสำหรับเคล็ดลับ
teradyl

3

จะแสดงความคิดเห็นก็ต่อเมื่อฉันทำได้ ฉันมีกรรมไม่เพียงพอในเว็บไซต์นี้

ฉันไม่รู้ว่าทำไมบางคนลงคะแนน @callaginn ในขณะที่เขาหาจุดที่ถูกต้อง

วิธีการต่อไปนี้ถูกต้อง (และอาจเป็นตัวเลือกที่ดีที่สุดสำหรับการเขียนสคริปต์เชลล์):

id -u  # returns UID

id -un # returns username

id -g  # returns primary (a.k.a. effictive) GID

id -gn # returns primary Group Name

ดูman idตัวเลือกเพิ่มเติม

เพื่อตอบคำถามเฉพาะนี้ถ้าฉันเขียนสคริปต์ที่จะทำงานในสภาพแวดล้อมใด ๆ ฉันไม่คิดว่าstaffจะใช้กลุ่มเริ่มต้นและฉันจะทำสิ่งต่อไปนี้ถ้าฉันเขียนสคริปต์ที่สามารถเรียกใช้สำหรับผู้ใช้คนใดก็ได้ (ไม่ว่าพวกเขาจะปรับเปลี่ยนระบบของพวกเขา):

chown "$(id -un):$(id -gn)" some_file

มันจะดีกว่าเสมอที่จะเป็นผู้ไม่เชื่อเรื่องพระเจ้าแพลตฟอร์มเมื่อใดก็ตามที่เป็นไปได้ (ถ้ามันไม่มากเกินไปการแลกเปลี่ยนครั้ง) เพราะคุณจะได้รับหนี้ทางเทคนิคน้อยลงในภายหลัง

โปรดทราบว่าchown's -Rธงควรใช้ด้วยความเชื่อมั่นสูงสุด คุณสามารถทำให้ระบบของคุณยุ่งเหยิงได้ (แม้ว่ามันจะเป็นเรื่องน่าสังเกตว่า Apple ทำให้มันยากที่จะทำตั้งแต่พวกเขานำมาใช้System Integrity Protection)

ลองพิจารณาตัวอย่างเช่นถ้าคุณจะchown -R 755 /varแทนที่จะchown -R 755 /var/wwwเป็นSystem Integrity Protectionคนพิการด้วยรากผมเชื่อว่าคุณน่าจะเข้าร่วมได้ ฉันไม่สามารถบอกคุณได้ว่าอะไรจะเกิดขึ้นก่อน แต่มันจะดีกว่าในระบบของดาร์วิน แต่โปรดใช้คำพูดของฉันว่ามันจะไม่สวย

หวังว่าบางคนพบว่ามีประโยชน์


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.