web-dev-qa-db-ja.com

Unixのユーザー名は大文字と小文字が区別されますか?

ssh abc@servername と違う ssh Abc@servername? Unixでは、ユーザー名の大文字と小文字は区別されますか?

ユーザーがLDAP経由で認証します。

20
saga saga

ホスト名やドメイン名と同様に、ユーザー名は厳密にはUnixのものではありませんが、より広い範囲のOSタイプにまたがることができます。

それらが大文字と小文字を区別すると見なされるかどうかは、それらを指定するために使用される標準に依存します。

ホスト名とドメイン名は、DNS標準では大文字と小文字を区別しません( RFC434 を参照)。

ローカルバックエンド(/ etc/passwd)またはUnixスタイル(NIS)に保存されているユーザー名は、 POSIX標準 で大文字と小文字が区別されません。

LDAPまたはActive Directoryバックエンドに保存されるユーザー名は、使用される属性スキーマ定義 uid および cn に従います。ユーザー名のスキーマ属性は異なり、前者は大文字と小文字を区別しませんが、後者は大文字と小文字を区別します。つまり、LDAPサーバーの設定によっては、Abcabcの両方がabcのエントリと一致する場合と一致しない場合があります。

この一貫性がないため、ユーザー名とホスト/ドメイン名の両方に小文字のみを使用し、ssh [email protected]とにかく失礼です。

14
jlliagre

はい、大文字と小文字が区別されます。技術情報を提供することはできません。テストしたところ、なぜあなたはそうしなかったのでしょうか(?)

私のローカルマシンはlinux mintです。

# cat /etc/*release
DISTRIB_ID=LinuxMint
DISTRIB_RELEASE=17.2
DISTRIB_CODENAME=rafaela
DISTRIB_DESCRIPTION="Linux Mint 17.2 Rafaela"
NAME="Ubuntu"
VERSION="14.04.3 LTS, Trusty Tahr"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 14.04.3 LTS"
VERSION_ID="14.04"
HOME_URL="http://www.ubuntu.com/"
SUPPORT_URL="http://help.ubuntu.com/"
BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"
cat: /etc/upstream-release: Is a directory

そして私はこのようにCentOSサーバーに接続しようとしました:

・(間違った)大文字のユーザー名の使用:

8D prova # ssh Root@agora-server
Root@agora-server's password: 
Permission denied, please try again.
Root@agora-server's password: 
Permission denied, please try again.
Root@agora-server's password: 

・正しいユーザー名を使用する:

8D prova # ssh root@agora-server
root@agora-server's password: 
Last login: Fri Oct  2 01:50:13 2015 from 192.168.0.31
[root@agora-server ~]# 
5
lese

ローカルアカウントの場合、ユーザー名は大文字と小文字が区別されます。 LDAPを使用する場合、状況によって異なります。ユーザー名が大文字と小文字を区別する(LDAPに接続されたZFSアプライアンス上で)場合と、Windows ADに接続されたSolaris LDAPクライアントのように問題にならない場合を見てきました。

getent passwd <username>を発行して、システムがLDAPを正しく使用しているかどうかを確認する必要があります。このコマンドを使用すると、指定したユーザーのユーザー名、ホームディレクトリ、シェルが記録されます。このようなレコードが表示されない場合、LDAPは正しく構成されていません。

LDAPを構成する必要のある場所がいくつかあり、その1つは次のとおりです。

/etc/nsswitch.conf

passwd: files ldap
group:  files ldap

また、PAMが正しく構成されているかどうかを確認する必要があります。おそらく最も重要なステップは、LDAPクライアントが構成されて機能しているかどうかを確認することです。 ldapsearchなどのツールを試して、LDAPをクエリできるかどうかを確認します。

利用可能なLDAPクックブックがいくつかあり、それらのほとんどは、使用しているUnixバージョンとLDAPバージョンに依存しています。さらにサポートが必要な場合は、これらの詳細で質問を更新してください。フォーラムのメンバーが特定の問題を分析するのに役立つ構成設定(もちろんパスワードなし)も含めます。

3
Lambert

Unixユーザー名は間違いなく大文字と小文字が区別されます。さらに、Unixシステムで大文字のユーザー名を使用すると、予期しない結果が生じる可能性があるため、通常は避けてください。

次に例を示します。

ユーザーのメールが破損する可能性があります。 SMTPの標準では、メールアドレスで大文字と小文字を区別しません。デフォルトでは、メッセージを受信するMTAはメールアドレスを小文字に変換して、配信先のユーザーを見つけます。ユーザー名に大文字が含まれている場合、これに対応するための特別な構成オーバーライドがないと、ユーザー名は解決されません。 (これはsendmail、postfixなどのMTA、およびprocmailなどの配信処理エージェントに影響します)

初期のハードウェア端末の多くは、大文字と小文字を区別しませんでした。彼らは大文字しか使わないのが一般的でした。 Unixの一部のバージョンにログインするとき、ログイン名を大文字で開始すると、システムは古い大文字のみの端末を使用していると見なし、大文字と小文字の折りたたみを有効にします-入力したすべての大文字を小文字に変換します(次に、大文字であることを示すために大文字をエスケープする必要があります)。小文字であることが予想されるユーザー名を入力するのに役立ちます。これはLinuxの問題だとは思いませんが、HP-UXで実証されているのを見てきました。

ユーザー名に小文字のみを使用することは長い慣習であるので、システム上の他のツール(私たちが考えていなかったかもしれない)もユーザー名が小文字であると想定し、チェック、変換などを行うことを期待するのが妥当です。したがって、そのユーザーのために物事を壊します。

1
JohnGH

ユーザー名は間違いなく大文字と小文字が区別されます。これは、似た名前の2人のユーザーを追加することで簡単にテストできます。

~ # useradd foobar
~ # useradd fooBar
~ # grep ^foo /etc/passwd
foobar:x:1001:1001::/home/foobar:/bin/sh
fooBar:x:1002:1002::/home/fooBar:/bin/sh

この質問/回答 は、LDAPサーバーによると、「間違った」ケースのユーザー名でログインしようとするユーザーを補う方法を示しています。ただし、これが機能するのは、ユーザー名がすべて小文字でリストされている場合のみです(または、必要に応じてすべて大文字にすることもできます)。

0
Falsenames