groupaddに許可されるグループ名は何ですか?

groupaddに許可されるグループ名は何ですか?

フォローするこのガイドライン以下を提供するBuild Shadowgroupadd注文する。今これを試してみるとエラーが発生します。

$ groupadd automake1.10
groupadd: 'automake1.10' is not a valid group name

英数字の名前を確認しましたが、正常に動作します。

答え1

詳しくはソースコードをご覧くださいlibmisc/chkname.c。 Shadowはかなり保守的です。名前は正規表現と一致する必要があり、[_a-z][-0-9_a-z]*\$?最大GROUP_NAME_MAX_LENGTH1文字まで可能です(設定オプション、デフォルトは16文字、ユーザー名は通常最大32文字まで可能で、コンパイル時に決定されます)。

Debian は多くの検査を軽減します。押出から始めて:スペースと。バラよりバグ #264879そしてバグ #377844

POSIX要件では、大文字または小文字、数字、および._-ファイル名と同様)。移植性に興味がなければ、POSIXはいかなる制限も設定しません。提案された制限の多くは、以下を使用して発生します。

  • /etc/passwdコロン、改行、null はすべて除外されます。またはでは使用できません/etc/group
  • 数字だけで構成される名前は良くありません。一連の番号がユーザー/グループデータベースにある場合は名前で処理する必要がありますが、他のアプリケーションではすべての番号を数値IDとして扱うことができますchownchgrp
  • 多くのアプリケーションが外部ユーティリティ(たとえば)に渡すことを期待しているので、ユーザー名にイニシャルや-aを使用しないことをお勧めします。グループ名にAが含まれている場合は問題が少なくなりますが、まだ使用しないことをお勧めします。.$user.$groupchown $user.$group /path/to/file.
  • /一部のプログラムでは、ファイル名にユーザー名を使用しようとしているため、問題が発生する可能性があります。
  • シェルが拡張するすべての役割は危険です。
  • 他のエンコーディングを使用できるシステムとの共有に興味がない場合は、ASCII以外の文字も問題ありません。

1すべての最新の実装は以前のバージョンとの互換性を期待してchown $user:$groupいますが、chown $user.$groupサポートしており、あまりにも多くのアプリケーションが互換性サポートを削除するためにポイントを通過します。

答え2

冒険を楽しみたい場合は、/etc/group自分で編集して好きなグループ名を入力できます。また、@Gillesが言及した問題の1つに直面した場合、問題を解決するためにエディタをロードできないか、まったくログインできないという追加の利点があります。これは、破損したシステムを回復する貴重な経験を提供します。 !

答え3

最近この問題を探求するすべての人のためのアップデート:

@gilles-so-stop-being-evilは正しいです。信頼できるソースはhttps://github.com/shadow-maint/shadow/blob/master/libmisc/chkname.c特にそのis_valid_name機能ですが、そのファイルの正規表現は元の回答を投稿してから変更されました。

[a-zA-Z0-9_.][a-zA-Z0-9_.-]{0,30}[a-zA-Z0-9_.$-]?

コードに警告を適用します。つまり、すべての数値名の使用が禁止されます。長さの確認は、長さの確認に合格したIFFをis_valid_group_name呼び出すことによって行われます(その場合でも)。is_valid_nameuseraddis_valid_user_name

関連情報