unixのユーザID。ハイフン:×でアンダスコア:○,何故?

[上に] [前に] [次に]
hiro-kim 2000/01/27(木) 12:03:51
http://www.tripod.co.jp/ のような代表的な無料ホームページ提供サービスを例に挙げます。hiro-kim というハイフンを含むユーザ名は作れず,hiro_kim というアンダスコアにしなければいけません。

私の会社のLinuxサーバもデフォルト設定ではそうなっていたそうで,管理者にお願いして,含ハイフンのユーザ名を作れるように変えてもらいました。って,私はLinuxを知らないので,このあたり曖昧なのですが。

なぜこうなっているのでしょうか。
こうなった経緯やエピソードなど,雑学としてなにかご存じでしたら教えてください。

EMI 2000/01/27(木) 15:41:53
ハイフンは、たいていのプログラミング言語で減算・負号の演算子として定義されてるからでしょう。
たとえば、evalを含むPerlスクリプトなどで、ハイフンを含む名前がエラーを起こすことがあるかもしれません。よく、わかりませんが。

B-Cus 2000/01/27(木) 16:18:33
Linux の方は知りませんが、おそらく歴史的な事情でしょう。
技術的な問題ではないと思います。技術的な問題で
ダメなのは : とか . でしょう。
# : はパスワードファイルのデリミタ。
# . は chown コマンドのユーザ名/グループ名のデリミタ (古い形式だけど)。
# ま、絶対に回避不能というわけではないですけど。

1994 年リリースの FreeBSD-2.0 では、rlogind が - を含んでいると
うまく動きませんでした。過去、sendmail まわりでもダメな
場合があったと聞いたことがあるけど、確認はしていません。

現在の FreeBSD では - 入りのユーザ名は使えます
(先頭が - で始まるのはダメ)。

結局「UNIX で使える」というのは、「カーネル及び
各種コマンド・各種サーバが対応している」という
ことと同義なわけでござんす。

CT 2000/01/28(金) 13:52:48
rloginなどUNIXのコマンドって、"-hoge"みたいにオプション指定するじゃないですか。
さらに言えば、suコマンドは、"-ログイン名"。
それでハイフン入りのユーザ名は禁止されてるってことはないですか?

[上に] [前に] [次に]