ユーザ名に使える文字の制約について

ユーザ名に使える文字の制約について

- Hajime MOCHIZUKI の投稿
返信数: 4

みなさまこんにちは.

望月@東京外国語大学です. 初めて投稿します.

本学でも総合情報コラボレーションセンターのサービスとして,昨年度から本格的にmoodleを使い始め,学部の1年生必修の情報リテラシーで800名ほどの受講生を対象に使うところからあれこれ試しています.そろそろ教員側の授業利用者を増やそうと先生方に便利さを宣伝し始めたのですが,ユーザ名に用いる文字のことでちょっと困っています.

単刀直入に言って, _  -  . (アンダースコア,ハイフン,ピリオド)をユーザ名に用いると何か問題が発生するでしょうか? ご存知の方がいらしたら教えてください.

詳細は以下のとおりです.

1. MoodleではPOP3認証をし,大学のユーザアカウントとパスワードがそのまま使えるようにしている.

2. ユーザアカウントに  _ アンダースコア, - ハイフン, . ピリオドを用いているユーザがいる.

3. Moodleのユーザ名には 半角英数字しか使えない とある. しかし,「ユーザの登録」で試すと以下のことが起きる.

  (a) - (ハイフン)を試すと,通る.(登録できる.ログインもできる)
  (b) . (ピリオド)を試すと,通る.(登録できる.ログインもできる)
  (c) _ (アンダースコア)を試すと,通らない.(登録できない)

4. 更に,アンダースコア付きのユーザ名について,「ユーザのアップロード」からの登録を試みる.

   (a) そのまま(例: test_user) ,' ' で囲む('test_user'), " " で囲む("test_user")の各状態で登録を試みる. → 登録できるが, _ が落ちる (testuser となる) 
  (b)  \  を挿入して( test\_user)登録を試みる → _は落ちる(test\user となる)

5. 4(a)の_ アンダースコアが落ちてしまったユーザ名(testuser)についてデータベースを直接書き換える.

   mysql > select * from databasename.mdl_user where username="testuser";

でidを調べて,(例 idが 999とする)

      mysql > update databasename.mdl_user set username="test_user" where id="999";

とやって,ユーザ名を _ 付きにする.

と,ここまでやると, このユーザのユーザ名は test_user となります.
ユーザ名test_userとしてログインすると, POP3 でも, ローカルにアカウントを作ってもどちらの場合でも,moodleにログインできました.

つまり,これで _ - . どの文字が含まれていてもログインできるのですが,果たしてMoodleでは何か問題が起きる恐れがあるのでしょうか?(半角英数字しか使えないとしている積極的理由があるのでしょうか?)

うちの大学の他のサービス(linuxアカウント,mysql, sambaなど)ではこれらの文字が悪さをすることはないので,アカウント名に利用可能な文字としているのですが,moodleで使えないとなると,moodleを使いたければ,アカウント名の変更するか,そのユーザだけ別名のローカルアカウントを作って併用するか,あるいは少なくとも今提供しているmoodleの利用をあきらめてもらうか,などを検討しなければなりません.このまま使って問題なければそれが一番利用者にとってもいいと思うのですが,何か情報はありませんでしょうか?

underscore username などでmoodle.orgを検索してみたのですが,見当たらなくて. 

なお,動作環境はこんな感じです.
Moodle version 1.9+(Build: 20080329)
Mysql   version 4.1.20
php     version 4.3.9
OS Red Hat Enterprise Linux ES release 4
Webserver Apache 2.0.52

Hajime MOCHIZUKI への返信

Re: ユーザ名に使える文字の制約について

- Minoru Akiyama の投稿
秋山@eラーニングサービスです

管理者でログインして、「管理」ブロックの「セキュリティ」->「サイトポリシー」の「ユーザ名に拡張文字を許可する」にチェックを入れれば、どんな文字でも使えるようになるはずです。
Minoru Akiyama への返信

Re: ユーザ名に使える文字の制約について

- Hajime MOCHIZUKI の投稿

望月@東京外国語大学です.

秋山さん,どうもありがとうございます.

そういう設定があったのですね.今試したらちゃんと登録できました.件の記号も安心して使ってよいということなんでしょうね.ありがとうございます.


デフォルトで半角英数字しか使えなくする理由はなんなのでしょう.
POP3認証を選んでいるのにユーザ登録時にパスワードをとにかく入れなきゃならないのも,実は避ける方法があったりするのでしょうか.

ちゃんと使いこなすにはまだまだ時間がかかりそうです.

Hajime MOCHIZUKI への返信

Re: ユーザ名に使える文字の制約について

- Minoru Akiyama の投稿
秋山@eラーニングサービスです

> POP3認証を選んでいるのにユーザ登録時にパスワードをとにかく入れなきゃならないのも,実は避ける方法があったりするのでしょうか.

このパスワードは、POPサーバで使用しているパスワードでなくてもよいのではないでしょうか?
POP認証は実験しかしたことがないので、単なる類推ですが、LDAP認証ユーザを登録するときもパスワードが必要ですが、「適当」に設定して、実際に認証が行われるときはLDAPサーバでチェックされるので、moodleに登録したパスワードは使われません。
POP認証でも多分同じではないでしょうか?
Minoru Akiyama への返信

Re: ユーザ名に使える文字の制約について

- Hajime MOCHIZUKI の投稿

望月@東京外国語大学です.

>> POP3認証を選んでいるのにユーザ登録時にパスワードをとにかく入れなきゃならないのも,実は避ける方法があったりするのでしょうか.

> このパスワードは、POPサーバで使用しているパスワードでなくてもよいのではないでしょうか?
> POP認証は実験しかしたことがないので、単なる類推ですが、LDAP認証ユーザを登録するときもパスワードが必要ですが、「適当」に設定して、実際に認証が行われるときはLDAPサーバでチェックされるので、moodleに登録したパスワードは使われません。
> POP認証でも多分同じではないでしょうか?

はい.おっしゃるとおりで,POP認証の場合も何か適当なものをいれてとりあえず登録する,という形で動いています.ただ,実際使わないのに「必須項目」なのがなんとなく嫌なので,最初から入力の必要なしになるならその方がすっきりすると思いまして.以前moodle1.6を使用していたときにはPOP認証にするとパスワードは不要でした.バージョンが変わって必須になったのは,何か重要な意味があるのかと考え込んでマニュアルにもあたってみたのですが,よく分からずでした.結局,どう考えてもパスワードに意味はないだろうから,試しに適当なパスワードで登録してみたら動いたので,それでいいのかと思いつつも,いまひとつ解せない感じがしています.「ヘルプ」に「LDAP,POP3の場合はダミーのパスワードを入力してください」みたいなことが書いてあれば悩まないかもしれませんね.