web-dev-qa-db-ja.com

Mac OS XでユーザーIDとグループを見つけるにはどうすればよいですか?

ターミナルでこのコマンドを実行しようとしています:

Sudo chown -R yourid:yourgroup local

しかし、私のIDとグループが何であるか、またはそれらをどこで見つけることができるのかわかりません。何か案は?

54
Starkers

OS Xでは、あなたまたはあなたのユーザディレクトリマネージャが変更しない限り、あなたのプライマリグループは常にstaffです。

プライマリグループとは何ですか?ユーザのプライマリグループは、デフォルトではそのユーザによって作成されたすべてのファイルの所有者です。


お使いのコンピュータでchmodを使用するには、数字のユーザーID(例:501)、またはアカウント名(例:danielbeck)を使用できます。後者は、UIに通常表示されるユーザー名とは異なります(例:Daniel Beck)。

次のいずれかを使用してアカウント名を確認できます。

  • それはあなたのホームディレクトリの名前です(あなたがそれをカスタマイズしたのでなければ)

  • Terminalでwhoamiを実行してください - chown -R $(whoami):staffで十分です。 groups $(whoami) | cut -d' ' -f1を使ってプライマリグループを取得することもできます。

  • システム環境設定"ユーザとグループ、必要に応じてペインのロックを解除、ユーザ名を右クリック(の単一のリストエントリ) Current Usersection)を選択し、Advanced Options…を選択します。新しく開いたダイアログウィンドウのアカウント名です。このダイアログにはプライマリグループも表示されます。

  • より詳細な出力を得るには、Terminalでidを実行してください。これはあなたの数字のユーザーIDを含みます。プライマリグループだけでなく、メンバーになっているすべてのグループも表示されます。最初のグループはプライマリです。

59
Daniel Beck

端末からidコマンドを使用します。それはあなたのUIDとあなたが属しているグループを表示します。例えば、これは私のユーザーID(534)、グループID(20)、そして私が所属するグループ(やはり20)を表示したものです。

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

これはあなたのユーザーIDを表示します。

$ 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)
13
Gabriel Wu

ターミナルで、~/Documentsに移動してls -laを実行します。あなたのユーザー名とグループは各ファイル/ディレクトリの隣に表示されます。

これは次のようになります。

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

プライマリグループを見つけるためのさらに短い方法:

id -gn
1
callaginn

私ができればコメントするだけでしょう。このサイトには十分なカルマがありません。

彼が有効なポイントを出したので、なぜ誰かが@callaginnを投票しなかったのか私にはわかりません。

次の方法が有効です(そしておそらくShellスクリプトのための最良の選択肢):

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-Rフラグは最大限の自信を持って使用されるべきであることに注意してください。あなたは本当にあなたのシステムをめちゃくちゃにすることができました(それは彼らがSystem Integrity Protectionを実行したのでAppleがそれをするのを難しくしたことは注目に値しますが)。

たとえば、rootとしてchown -R 755 /varの代わりにchown -R 755 /var/wwwを無効にしてSystem Integrity Protectionにアクセスした場合を考えてみましょう。何が最初に壊れるのかはわかりませんが、Darwinシステムでは最初に壊れるでしょうが、私のWordを見てください。

うまくいけば、誰かがこれが役に立つと思います。

0
Robert J