vine-users ML アーカイブ



[vine-users:068302] Re: ユーザ ーアカウントエディタでの エラー

  • From: "OOSATO,Kazzrou" <kazz@xxxxxxxxxxxxxx>
  • Subject: [vine-users:068302] Re: ユーザ ーアカウントエディタでの エラー
  • Date: Mon, 18 Oct 2004 03:47:04 +0900
大里です。

> From: Ichikawa
> Subject: [vine-users:068291] Re: ユーザーアカウントエディタでのエラー
> Date: Sun, 17 Oct 2004 02:25:55 +0900

>  . ドットなど使ってはいけないキャラクタを使っていませんか。
> 
> Vine Linux 3.0からはドットなどが使えなくなっています。

  Vine-3.0 の shadow-utils は、ほぼ RHL-9 や RHEL-3 と、同じような
ので、これは Red Hat が 8.0 --> 9 になったときの問題と一緒ですね。
  というわけで、昔 RHL-9 のとき調べたものを貼っておきます。

  chkname.c の good_name() 関数では、以下のような違いがあります。
shadow-utils-4.0.0 以前
  先頭の文字       AからZ と aからz
  それ以外の文字   isprint() が真を返す文字から : と , を除いたもの。
    (つまり、カンマとコロン以外の空白も含む全ての表示可能な文字は OK)

shadow-utils-4.0.1
  先頭の文字       aからz と _
  それ以外の文字   0から9 と aからz と _ と -

shadow-utils-4.0.3
  先頭の文字       aからz と _
  末尾の文字       0から9 と aからz と _ と - と $
  それ以外の文字   0から9 と aからz と _ と -

  影響するのは、groupadd、groupmod、grpck、pwck、useradd、usermod
あたりなので、これ等のコマンドを使わずに直接編集する手はあります。


  自分としては、大文字やドットが使えないと運用上困るので以下の
ようにしています(RHL-9 のサーバですが)。
--- shadow-4.0.3/libmisc/chkname.c      2002-01-10 22:04:34.000000000 +0900
+++ shadow-4.0.3/libmisc/chkname.c      2003-05-13 00:16:35.000000000 +0900
@@ -24,13 +24,18 @@
        /*
         * User/group names must match [a-z_][a-z0-9_-]*
         */
-       if (!*name || !((*name >= 'a' && *name <= 'z') || *name == '_'))
+       if (!*name ||
+            !((*name >= 'a' && *name <= 'z') ||
+              (*name >= 'A' && *name <= 'Z') ||
+              *name == '_'))
                return 0;
 
        while (*++name) {
                if (!((*name >= 'a' && *name <= 'z') ||
+                   (*name >= 'A' && *name <= 'Z') ||
                    (*name >= '0' && *name <= '9') ||
                    *name == '_' || *name == '-' ||
+                   *name == '.' || *name == ' ' ||
                    (*name == '$' && *(name+1) == NULL)))
                        return 0;
        }



# debian はこの部分をばっさり #if 0 で無効にしているらしい。
# その他の部分でも、Red Hat(=Vine) も、debian も shadow-utils に
# は独自パッチ当てまくりで、なんだかなぁって感じはするのですが。

-- 
  kazz