人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Linuxの仕組みについて質問です。
あるファイルが存在して、所有者がhogeだとして、その所有者hogeをuserdelしたとします。
すると、所有者名と所有グループ名が数字になるのですが、これは一体どういう状態なのでしょうか。


sudo /usr/sbin/useradd hoge -m
sudo /usr/sbin/userdel hoge

% ls -l /home
合計 12
drwx------ 2 502 502 4096 2月 24 15:18 2013 hoge

●質問者: DQNEO
●カテゴリ:コンピュータ
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● oil999
●40ポイント

その数字は、削除したユーザーのuidとgidが表示されている状態です。

【参考】UIDとGID

http://www.linux-beginner.com/linux_kihon22.html

【参考】Linux ユーザーアカウントの削除 - userdel

http://kazmax.zpp.jp/linux_beginner/userdel.html


DQNEOさんのコメント
ありがとうございます。

oil999さんのコメント
uderdel は /etc/passwd からユーザー名を削除します。ファイルシステムへは影響しません。 ls は uid や gid と /etc/passwd にあるユーザー名をマッチングして表示するので、ユーザー名がなくなると、uidとgidしか表示できなくなるわけです。

DQNEOさんのコメント
なるほど、/etc/passwdとファイルシステムは独立してるのですね。

2 ● うぃんど
●60ポイント ベストアンサー

名称じゃなくてUIDやGIDが出ちゃってますね。

ファイルを管理しているテーブルには、
所有者名hogeはなく所有者ID(UID:今回は502)が保存されます。

lsコマンドがファイル管理用のテーブルから所有者IDを取得して、
ユーザー管理用のテーブルから所有者名を取得しようとしても、
userdelで所有者hogeを削除してしまったので、所有者名はわかりません。
だからしかたなく所有者IDの502を表示してます。

所属グループもファイル管理用のテーブルから探るのですが、
これもグループ管理用のテーブルから消えてますから、
グループIDを検索することができず、しかたなくGIDを表示します。


DQNEOさんのコメント
なるほど。 RDBMSのように参照整合性が保たれるわけではないのですね。

DQNEOさんのコメント
> ファイルを管理しているテーブルには、 > 所有者名hogeはなく所有者ID(UID:今回は502)が保存されます。 このテーブルとは何を指しているのでしょうか?inodeとかでしょうか? 生で見てみたいのですが、何か方法はあるのでしょうか?

うぃんどさんのコメント
利用しているファイルシステムがinodeを使うファイルシステムならinodeですが、 内部を直接見る方法までは知らないですし、そこまで求められるとは想像してませんでした。 すみません。 既に知ってそうなので不要でしょうけど他の人のためにinodeの概要をwikipediaで・・・。 http://ja.wikipedia.org/wiki/Inode

DQNEOさんのコメント
すみません。 好奇心で聞いてみただけでした。 あとは自分で調べます。 ありがとうございました。
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ