
Ubuntu日本語フォーラム

ログインしていません。
はじめまして,Ubuntu desktop 8.04 をインストールして使用していますが、
ユーザーアカウントを作成する際デフォルトでは、「.」(ドット)、「_」(アンダーバー)など
が使用できないようになっているのですが、使用できるように変更できるのでしょうか?
よろしくお願い致します。
オフライン
初心者サポートにも関わらず、内容が細かいかもしれませんがお許しください。
ユーザ追加時に、[システム] -> [システム管理] -> [ユーザとグループ]の設定ツールを使用されていると察します。
ご指摘のとおり、設定ツール自体には以下の制約が存在します。(直接ソースコードを見ました。)
[ユーザ名の制約]
1文字目は英文字である必要ある
全ての文字は、数字・英小文字・ハイフンのいずれかの文字で構成される必要がある
gaku による投稿:
ユーザーアカウントを作成する際デフォルトでは、「.」(ドット)、「_」(アンダーバー)などが使用できないようになっているのですが、使用できるように変更できるのでしょうか?
残念ながら設定ツールの画面上からこれらの動作を変更することはできないです。
その根拠は、該当ソースコード付近には動作を変えるような分岐やスイッチなどが一切ないからです。
よって、これら制約を回避したいのならば、私には以下の3通りの方法が考えつきます。
# ひょっとしたら、他に簡単にできる方法があるのかもしれませんが。
1) 端末からuseradd もしくは adduserコマンドでユーザ追加を行う
例) useradd もしくは adduserコマンドで test.01を追加してやる
※ useradd もしくは adduserコマンドについては、互いに違いがあり、色々なオプションもあるので研究してみてください。
※ useradd もしくは adduserコマンド自体にも制約があります。(コロンが使えないなど)
2) ユーザとグループの画面から一旦ユーザを追加し、その後 usermodコマンドでログイン名を変更してやる
例) 画面からtest01 を追加して、その後 test01をtest.01に変更してやる
次のように、-l -d -m オプションあたりを使うと良いでしょう。
$ sudo usermod -l test.01 -d /home/test.01 -m test01
3) gnome-system-toolsのソースを修正しビルドして使う
残念なことに、1) 2) の方法の場合、一旦は制約を回避したユーザを作成することはできますが、それ以降ユーザとグループの画面で修正することが出来ません。(修正時も追加時と同じ入力チェックで弾かれてしまう)
なので、コマンドに慣れていない限り、よほどの理由がない限り、画面から追加できないようなユーザは最初から作成しないほうが望ましいかと思います。
そもそも何故「.」(ドット)、「_」(アンダーバー)などを含むユーザを作成したいのか? その理由や背景などを提示してみると、全く別の視点からの解決案があるかもしれませんよ。
[参考情報]
パッケージ gnome-system-tools内の該当ソース(gnome-system-tools-2.22.0/src/users/user-settings.c)より引用
static gboolean
is_valid_name (const gchar *name)
{
/*
* User/group names must start with a letter, and may not
* contain colons, commas, newlines (used in passwd/group
* files...) or any non-printable characters.
*/
if (!*name || !isalpha(*name))
return FALSE;
while (*name) {
if (!isdigit (*name) && !islower (*name) && *name != '-')
return FALSE;
name++;
}
return TRUE;
}最後の編集者: STGSAGWAN (2009-01-08 03:18:10)
STGSAGWAN様、詳しく説明して頂き、ありがとうございます。
ユーザアカウントを共通化(ubuntu、windows)できたらと思い投稿しました。
「.」(ドット)、「_」(アンダーバー)を使用しないユーザアカウントで対応したいと思います。
オフライン