Câu trả lời:
Trên OS X, nhóm chính của bạn luôn luôn staff
trừ khi bạn hoặc người quản lý thư mục người dùng của bạn thay đổi nó.
Một là những gì nhóm chính ? Nhóm chính của người dùng theo mặc định là chủ sở hữu của tất cả các tệp được tạo bởi người dùng đó.
Đối với mục đích chmod
trên máy tính của bạn, bạn có thể sử dụng ID người dùng số của mình (ví dụ 501) hoặc tên tài khoản của bạn (ví dụ danielbeck
). Cái sau khác với tên người dùng bạn thường thấy trong UI (ví dụ: Daniel Beck ).
Bạn có thể xác định tên tài khoản của mình bằng bất kỳ cách nào sau đây:
Đó là tên của thư mục nhà của bạn (trừ khi bạn tùy chỉnh nó) trong tiêu đề hoặc thanh bên
Chạy whoami
trong Terminal - vì vậy một chown -R $(whoami):staff
đủ nên. Bạn cũng có thể có được nhóm chính của bạn với groups $(whoami) | cut -d' ' -f1
.
Mở Tùy chọn hệ thống »Người dùng & Nhóm , mở khóa khung nếu cần, nhấp chuột phải vào tên người dùng của bạn (mục nhập danh sách duy nhất trong phần Người dùng hiện tại ) và chọn Tùy chọn nâng cao . Đó là tên tài khoản trường trong cửa sổ hộp thoại mới mở. Hộp thoại này cũng cho bạn thấy nhóm chính của bạn.
Chạy id
trong Terminal để có đầu ra dài dòng hơn. Điều này sẽ bao gồm ID người dùng số của bạn. Nó cũng sẽ liệt kê tất cả các nhóm bạn là thành viên, không chỉ nhóm chính của bạn. Nhóm đầu tiên là nhóm chính.
staff
. Không phải trên Mac OS X làm việc của tôi.
Điều này sẽ hiển thị userid của bạn.
$ id -u
502
Điều này sẽ hiển thị tên nhóm của bạn. Tên nhóm nằm trong ngoặc đơn.
$ 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)
Sẽ chỉ nhận xét nếu tôi có thể. Tôi không có đủ nghiệp lực trên trang web này.
Tôi không biết tại sao ai đó đánh giá thấp @callaginn, khi anh ta đưa ra một điểm hợp lệ.
Các phương thức sau là hợp lệ (và có lẽ là các tùy chọn tốt nhất cho shell script):
id -u # returns UID
id -un # returns username
id -g # returns primary (a.k.a. effictive) GID
id -gn # returns primary Group Name
Xem man id
để có thêm lựa chọn.
Để trả lời câu hỏi cụ thể này nếu tôi đang viết một tập lệnh sẽ hoạt động trong bất kỳ môi trường nào, tôi sẽ không cho rằng nhóm mặc định staff
đang được sử dụng và thay vào đó tôi sẽ làm như sau nếu tôi đang viết một tập lệnh có thể chạy cho bất kỳ người dùng nào (có hay không sửa đổi hệ thống của họ):
chown "$(id -un):$(id -gn)" some_file
Luôn luôn tốt hơn để trở thành nền tảng bất khả tri bất cứ khi nào có thể (nếu nó không quá nhiều sự đánh đổi thời gian), vì bạn sẽ phải chịu ít nợ kỹ thuật hơn sau này.
Hãy lưu ý rằng chown
's -R
cờ nên được sử dụng với sự tự tin tối đa. Bạn thực sự có thể làm rối hệ thống của mình (Mặc dù đáng chú ý là Apple đã làm cho nó khó thực hiện kể từ khi họ triển khai System Integrity Protection
).
Ví dụ, hãy xem xét, nếu bạn chown -R 755 /var
thay vì chown -R 755 /var/www
root với System Integrity Protection
người khuyết tật, tôi tin rằng bạn sẽ tham gia. Tôi không thể nói cho bạn biết cái gì sẽ phá vỡ trước, nhưng nó sẽ phá vỡ đầu tiên trên hệ thống Darwin, nhưng xin hãy nói rằng nó sẽ không đẹp.
Hy vọng, ai đó tìm thấy điều này hữu ích.
whoami
, bạn có thể sử dụngid
trong một oneliner tương thích với vỏ posix và csh.chown -R `id -u`:`id -g` FOLDER