กำลังพยายามเรียกใช้ compand นี้ในเทอร์มินัล:
sudo chown -R yourid:yourgroup local
อย่างไรก็ตามฉันไม่ทราบว่า ID และกลุ่มของฉันคืออะไรหรือหาได้ที่ไหน ความคิดใด ๆ
กำลังพยายามเรียกใช้ compand นี้ในเทอร์มินัล:
sudo chown -R yourid:yourgroup local
อย่างไรก็ตามฉันไม่ทราบว่า ID และกลุ่มของฉันคืออะไรหรือหาได้ที่ไหน ความคิดใด ๆ
คำตอบ:
บน 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 ผู้ใช้ที่เป็นตัวเลขของคุณ นอกจากนี้ยังจะแสดงรายการทุกกลุ่มที่คุณเป็นสมาชิกไม่ใช่เฉพาะกลุ่มหลักของคุณ กลุ่มแรกเป็นกลุ่มแรก
staff
รับรองความถูกต้องของคุณชื่อผู้ใช้จะไม่จำเป็นต้อง ไม่ได้ทำงาน Mac OS X ของฉันอยู่ดี
ใช้id
คำสั่งจากเทอร์มินัล มันจะแสดงโพสต์ของคุณและกลุ่มที่คุณอยู่ ตัวอย่างเช่นนี่คือผลลัพธ์ของฉันที่แสดง ID ผู้ใช้ของฉัน (534), รหัสกลุ่ม (20) และกลุ่มที่ฉันเป็นสมาชิก (เช่น 20)
uid=534(galuga) gid=20(staff) groups=20(staff)
สิ่งนี้จะแสดงหมายเลขผู้ใช้ของคุณ
$ 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)
ในเทอร์มิให้ไปและเรียกใช้~/Documents
ls -la
ชื่อผู้ใช้และกลุ่มของคุณจะปรากฏถัดจากแต่ละไฟล์ / ไดเรกทอรี
ควรมีลักษณะเช่นนี้:
drwxr-xr-x 2 username usergroup 4096 Oct 17 2012 Templates
จะแสดงความคิดเห็นก็ต่อเมื่อฉันทำได้ ฉันมีกรรมไม่เพียงพอในเว็บไซต์นี้
ฉันไม่รู้ว่าทำไมบางคนลงคะแนน @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
คนพิการด้วยรากผมเชื่อว่าคุณน่าจะเข้าร่วมได้ ฉันไม่สามารถบอกคุณได้ว่าอะไรจะเกิดขึ้นก่อน แต่มันจะดีกว่าในระบบของดาร์วิน แต่โปรดใช้คำพูดของฉันว่ามันจะไม่สวย
หวังว่าบางคนพบว่ามีประโยชน์
วิธีที่สั้นกว่าสำหรับการค้นหากลุ่มหลัก:
id -gn
whoami
คุณสามารถใช้id
ใน oneliner ที่เข้ากันได้กับ posix shells และ cshchown -R `id -u`:`id -g` FOLDER