Чи чутливе ім’я користувача у регістрі Unix?


20

Чи ssh abc@servernameвідрізняється від ssh Abc@servername? Чи має значення випадок імені користувача в Unix?

Мій користувач підтверджує автентифікацію через LDAP.


3
Майже все в Linux чутливе до регістру. Значення: cdне те саме, що CD... Єдиний спосіб по-справжньому зробити так, щоб вони означали те саме, це встановити псевдоніми у вашому .bashrcфайлі ..
ryekayo

1
Я думаю, це залежить від того, який атрибут LDAP ви використовуєте для імені користувача. Якщо це uid від RFC 4519 , то він нечутливий до регістру, але реалізація автентифікації все ще може надати значенню обставини. Це також залежить від того, як саме проводиться аутентифікація за допомогою LDAP.
Стефан Шазелас

1
Просто спроба увійти з великим іменем вашого користувача відповіла б на це за кілька секунд.
Гонки легкості з Монікою

Відповіді:


14

Так само, як імена хостів та доменні імена, ім'я користувача не є річчю Unix, але може і часто охоплює більш широкий спектр типів ОС.

Чи буде вони вважатись чутливими до регістру, залежить від стандарту, який використовується для їх визначення.

Імена хостів та доменні імена явно не чутливі до стандарту DNS (див. RFC4343 ).

Імена користувачів, що зберігаються в локальному сервісному сервері (/ etc / passwd) або в стилі Unix (NIS), не відрізняються від регістру стандартом POSIX .

Usernames зберігаються в LDAP або бекенда Active Directory будуть слідувати використовуваному визначенням атрибутів схеми, uidі cnякі часто накопичуючи ім'я користувача має різні атрибути схеми, нечутливі до регістру для першого , але чутливі до регістру для останнього. Це означає , як Abcі abcможе відповідати або НЕ abcзаписи «s в залежності від конфігурації сервера LDAP.

Через цю невідповідність я рекомендую використовувати лише малі регістри як для імен користувачів, так і для імені хоста / домену, а потім уникати ssh ABC@SERVERNAME.DOMAIN.COMгрубості в будь-якому випадку.


1
Отже, те, як я читаю стандарт POSIX , оскільки він не визначений як чутливим до регістру, або нечутливим, і весь набір символів портативного імені файлів доступний (що включає в себе і верхній, і нижній регістр), це залежатиме від реалізації. Це правильно? Якщо говорити, чи існує стандартна конвенція?
Дуг Р.

1
@DougR. Що стосується POSIX, то імена користувачів залежать від регістру. Інші випадки нечутливості були б визначені. Чутливість регістру неявна під час посилання на набір символів портативного файлу.
jlliagre

Дякуємо за роз’яснення. Це було моє первинне припущення, але я не міг знайти нічого стосовно набору символів портативного файлу, який заявив це певним чином так чи інакше.
Дуг Р.

5

Так, це враховує регістри. Я не в змозі надати технічну інформацію, я лише перевірив її і цікаво, чому ви цього не зробили (?)

моя локальна машина - це монетний двір Linux, як ви бачите:

# 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 ~]# 

Як побічна проблема, це не надто безпечна практика безпеки, щоб дозволити вхід в SSH як корінь, як це було зроблено тут (особливо, якщо машина знаходиться в Інтернеті). у sshd_config. Переважно увійти як звичайний користувач, а потім використовувати sudo або su, щоб стати root тільки в разі потреби.
JohnGH

Так, це правильно, я погоджуюся, по-перше, це суперпользователь, по-друге, ім'я користувача "root" відоме зловмиснику, якому потрібно лише ввести пароль. У будь-якому випадку це насправді лише Віртуальна машина, яка працює локально, а не піддається інтернуванню. Доброю практикою є використання сертифікатів rsa ssh для входу або / плюс відкритого порту ssh лише для запитів, що надходять із дозволених адрес (правила брандмауера)
орендувати

3

У випадку локальних облікових записів ім’я користувача залежить від регістру. Коли ви використовуєте LDAP, це залежить. Я бачив випадки, коли ім’я користувача чутливе до регістру (на пристрої ZFS, підключеному до LDAP), і випадки, коли це не має значення, як клієнт Solaris LDAP, підключений до Windows AD.

Що ви повинні / могли спробувати, це перевірити, чи правильно ваша система використовує LDAP, видавши getent passwd <username>. Використання цієї команди має дати вам запис із ім'ям користувача, домашнім каталогом та оболонкою для вказаного користувача. Якщо такої записи ви не бачите, LDAP не налаштовано правильно.

Є кілька місць, де слід налаштувати LDAP, і одне з таких місць:

/etc/nsswitch.conf

passwd: files ldap
group:  files ldap

Вам також потрібно перевірити, чи правильно налаштовано PAM, і, можливо, найважливішим кроком є ​​перевірка того, чи налаштований і працює клієнт LDAP. Спробуйте такий інструмент, як ldapsearchперевірити, чи можна запитувати LDAP.

Доступно декілька кулінарних книг LDAP, і більшість з них залежить від версії Unix та версії LDAP, яку ви використовуєте. Оновіть своє запитання цими деталями, якщо вам потрібна додаткова допомога. Також включіть налаштування конфігурації (без паролів, звичайно), що може допомогти членам форуму проаналізувати вашу конкретну проблему.


1

Користувальницькі імена Unix, безумовно, залежать від регістру, і, крім того, використання імен користувачів з великими літерами в системах Unix може призвести до небажаних результатів, тому цього взагалі слід уникати.

Деякі приклади:

Користувач може порушити електронну пошту. Стандарти SMTP дозволяють адресам електронної пошти бути нечутливими до регістру, і за замовчуванням MTA, що отримує повідомлення, складе адресу електронної пошти на малі регістри, щоб знайти користувача, до якого потрібно доставити. Якщо ім'я користувача має великі літери, воно не буде вирішене без спеціальних перестановок конфігурації для задоволення цього. (це стосується MTA, таких як sendmail, postfix тощо), а також агенти обробки даних, такі як procmail)

Багато ранніх апаратних терміналів не враховували регістри. Було прийнято, що вони використовували лише великі регістри. Під час входу в деякі версії Unix, запуск імені для входу з великого регістру призведе до того, що система припустить, що ви використовуєте стародавній термінал лише з великого регістру, і це дозволить скласти регістр, який перетворює всі введені великі регістри в малі регістри ( Тоді вам доведеться уникати великих літер, щоб сказати, що вони є великими літерами), щоб допомогти вам ввести своє ім’я користувача, яке, як він очікує, буде мати малі літери. Я не вірю, що це справа в Linux, але я бачив, як це демонструється на HP-UX.

Оскільки давно прийнято використовувати лише малі символи в іменах користувачів, доцільно розраховувати, що інші інструменти (деякі з яких ми, можливо, не думали) в системі можуть також припускати, що ім'я користувача має бути малі, а також робити перевірки, перетворення тощо. відповідно, таким чином ламаючи речі для цього користувача.


0

Імена користувачів безумовно залежать від регістру. Ви можете легко перевірити це, додавши двох користувачів з подібними іменами:

~ # 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. Але зауважте, що це буде працювати лише в тому випадку, якщо всі імена користувачів перераховані як малі регістри (або ви можете зробити їх усі великі регістри, якщо хочете).

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.