dポイントプレゼントキャンペーン実施中!

USBのブロックデバイスやNFSで外部ホストをマウントした際に、ユーザ名(グループ名)が502,503などの番号に変わってしまうことがあります。しかも、いつもではなく、設定などによってマウントしたユーザの名前(グループ)になることもあります。どうもこのあたりの事情がよくつかめません。外部機器のマウントの際のユーザ、グループの決定について何かルールのようなものはあるのでしょうか。また、マウントのオプションなどによってユーザ・グループ帰属をコントロールすることはできるのでしょうか。manを読んでいろいろいじってみましたが、うまくいきません。大雑把なところでかまいませんので、背景についてお教えいただければ助かります。

A 回答 (2件)

#1:


ファイルの所有ユーザ(ユーザ名)、所有グループ(グループ名)が名前で保存されていると思い込んでいませんか?

ファイルの所有ユーザや所有グループは、ディスク上で、全て数字として記録されています。
一般にこれらは、
 数字のユーザ名=uid
数字のグループ名=gid
と呼ばれていて、つまり、
ファイルの所有ユーザや所有グループは、ディスク上で、uidやgidとして記録されています。

つまり、番号が表示されるのは、このuidやgidが直接表示されているだけです。(ls -ln を試せ!!)

#2:
次に必要なのは、数字のuidやgidが、名前のユーザ名やグループ名に変換される仕組みの理解です。

この変換には対応表が存在していて、通常は
/etc/passwd (uidとユーザ名の対応表)
/etc/group (gidとグループ名の対応表)
がそれぞれの対応表となります。
ちなみに、この対応表、上記のファイル以外からも取得することが可能です。その場合には、/etc/nsswitch.conf の設定で制御を行います。
(getent passwd, getent group で対応表の表示)

対応表がホスト間で異なっていれば、同じuidのファイルでも、ホスト毎に別のユーザ名になってしまいます。

#3:
そもそも、ディスク上にuidやgidの情報が記録されていない場合もあります。(ファイルシステムの種類による、fat32,vfat等が該当)

この場合には、全てのファイルがマウントしたユーザの名前になります。
    • good
    • 0

ファイルやディレクトリを作成した際の作成者のユーザ名やグループ名は、ファイルシステムには対応するユーザIDやグループIDで保存されています。



これらをlsコマンドで参照した際、ファイルシステムに格納されているユーザIDやグループIDは/etc/passwdファイルや/etc/groupファイル等を参照し存在すればそれぞれユーザ名やグループ名として表示されますが、存在しなければファイルシステムに格納されているユーザIDやグループIDがそのまま表示される事になります。

また、NFSの場合ユーザIDのマッピングに関する設定方法が存在するのでこれを自分の希望するマッピングに設定する事が出来ます。

詳しくは、manデータ(リファレンスマニュアル)あたりを参照してください。

○exports(5)
http://www.linux.or.jp/JM/html/nfs-server/man5/e …
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!