Чи ssh abc@servername
відрізняється від ssh Abc@servername
? Чи має значення випадок імені користувача в Unix?
Мій користувач підтверджує автентифікацію через LDAP.
Чи ssh abc@servername
відрізняється від ssh Abc@servername
? Чи має значення випадок імені користувача в Unix?
Мій користувач підтверджує автентифікацію через LDAP.
Відповіді:
Так само, як імена хостів та доменні імена, ім'я користувача не є річчю Unix, але може і часто охоплює більш широкий спектр типів ОС.
Чи буде вони вважатись чутливими до регістру, залежить від стандарту, який використовується для їх визначення.
Імена хостів та доменні імена явно не чутливі до стандарту DNS (див. RFC4343 ).
Імена користувачів, що зберігаються в локальному сервісному сервері (/ etc / passwd) або в стилі Unix (NIS), не відрізняються від регістру стандартом POSIX .
Usernames зберігаються в LDAP або бекенда Active Directory будуть слідувати використовуваному визначенням атрибутів схеми, uid
і cn
які часто накопичуючи ім'я користувача має різні атрибути схеми, нечутливі до регістру для першого , але чутливі до регістру для останнього. Це означає , як Abc
і abc
може відповідати або НЕ abc
записи «s в залежності від конфігурації сервера LDAP.
Через цю невідповідність я рекомендую використовувати лише малі регістри як для імен користувачів, так і для імені хоста / домену, а потім уникати ssh ABC@SERVERNAME.DOMAIN.COM
грубості в будь-якому випадку.
Так, це враховує регістри. Я не в змозі надати технічну інформацію, я лише перевірив її і цікаво, чому ви цього не зробили (?)
моя локальна машина - це монетний двір 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 ~]#
У випадку локальних облікових записів ім’я користувача залежить від регістру. Коли ви використовуєте 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, яку ви використовуєте. Оновіть своє запитання цими деталями, якщо вам потрібна додаткова допомога. Також включіть налаштування конфігурації (без паролів, звичайно), що може допомогти членам форуму проаналізувати вашу конкретну проблему.
Користувальницькі імена Unix, безумовно, залежать від регістру, і, крім того, використання імен користувачів з великими літерами в системах Unix може призвести до небажаних результатів, тому цього взагалі слід уникати.
Деякі приклади:
Користувач може порушити електронну пошту. Стандарти SMTP дозволяють адресам електронної пошти бути нечутливими до регістру, і за замовчуванням MTA, що отримує повідомлення, складе адресу електронної пошти на малі регістри, щоб знайти користувача, до якого потрібно доставити. Якщо ім'я користувача має великі літери, воно не буде вирішене без спеціальних перестановок конфігурації для задоволення цього. (це стосується MTA, таких як sendmail, postfix тощо), а також агенти обробки даних, такі як procmail)
Багато ранніх апаратних терміналів не враховували регістри. Було прийнято, що вони використовували лише великі регістри. Під час входу в деякі версії Unix, запуск імені для входу з великого регістру призведе до того, що система припустить, що ви використовуєте стародавній термінал лише з великого регістру, і це дозволить скласти регістр, який перетворює всі введені великі регістри в малі регістри ( Тоді вам доведеться уникати великих літер, щоб сказати, що вони є великими літерами), щоб допомогти вам ввести своє ім’я користувача, яке, як він очікує, буде мати малі літери. Я не вірю, що це справа в Linux, але я бачив, як це демонструється на HP-UX.
Оскільки давно прийнято використовувати лише малі символи в іменах користувачів, доцільно розраховувати, що інші інструменти (деякі з яких ми, можливо, не думали) в системі можуть також припускати, що ім'я користувача має бути малі, а також робити перевірки, перетворення тощо. відповідно, таким чином ламаючи речі для цього користувача.
Імена користувачів безумовно залежать від регістру. Ви можете легко перевірити це, додавши двох користувачів з подібними іменами:
~ # 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. Але зауважте, що це буде працювати лише в тому випадку, якщо всі імена користувачів перераховані як малі регістри (або ви можете зробити їх усі великі регістри, якщо хочете).
cd
не те саме, щоCD
... Єдиний спосіб по-справжньому зробити так, щоб вони означали те саме, це встановити псевдоніми у вашому.bashrc
файлі ..