Apakah nama pengguna dalam Unix case sensitif?


20

Apakah ssh abc@servernameberbeda dari ssh Abc@servername? Apakah kasus nama pengguna penting di Unix?

Pengguna saya mengautentikasi melalui LDAP.


3
Hampir semua yang ada di Linux peka huruf besar-kecil. Artinya: cdtidak sama dengan CD... Satu-satunya cara untuk benar-benar membuatnya sama dengan menetapkan alias di .bashrcfile Anda ..
ryekayo

1
Saya kira itu tergantung pada atribut LDAP apa yang Anda gunakan untuk nama pengguna. Jika itu adalah cairan dari RFC 4519 , maka case-sensitive, tetapi implementasi otentikasi mungkin masih memaksakan signifikansi huruf di atasnya. Itu juga tergantung pada bagaimana tepatnya otentikasi dilakukan dengan LDAP.
Stéphane Chazelas

1
Hanya dengan mencoba login dengan nama pengguna Anda yang dikapitalisasi akan menjawab ini untuk Anda hanya dalam hitungan detik.
Lightness Races dengan Monica

Jawaban:


14

Sama seperti nama host dan nama domain, nama pengguna tidak sepenuhnya merupakan hal Unix tetapi dapat dan sering menjangkau rentang tipe OS yang lebih luas.

Apakah mereka akan dianggap case sensitif tergantung pada standar yang digunakan untuk menentukannya.

Nama host dan nama domain jelas tidak sensitif huruf oleh standar DNS (lihat RFC4343 ).

Nama pengguna yang disimpan di backend lokal (/ etc / passwd) atau Unix style one (NIS) tidak peka huruf besar-kecil dengan standar POSIX .

Nama pengguna yang disimpan dalam LDAP atau backend Active Directory akan mengikuti definisi skema atribut yang digunakan, uiddan cnyang sering menyimpan nama pengguna memiliki atribut skema yang berbeda, tidak sensitif case untuk yang pertama tetapi case case untuk yang terakhir. Itu berarti keduanya Abcdan abcmungkin cocok atau tidak abcmasuk tergantung pada konfigurasi server ldap.

Karena ketidakkonsistenan ini, saya akan merekomendasikan untuk hanya menggunakan huruf kecil untuk nama pengguna dan nama host / domain dan kemudian menghindari ssh ABC@SERVERNAME.DOMAIN.COMyang kasar pula.


1
Jadi, cara saya membaca standar POSIX , karena tidak ditentukan sebagai case-sensitive atau -insensitive dan seluruh set karakter nama file portabel tersedia (yang mencakup huruf besar dan kecil), itu akan tergantung pada implementasi. Apakah itu benar? Yang sedang berkata, apakah ada konvensi standar?
Doug R.

1
@DougR. Sejauh menyangkut POSIX, nama pengguna bergantung pada huruf besar-kecil. Ketidaksensitifan kasus akan ditentukan. Sensitivitas huruf tersirat saat merujuk pada set karakter nama file portabel.
jlliagre

Terimakasih atas klarifikasinya. Itu adalah asumsi awal saya, tetapi saya tidak dapat menemukan apa pun mengenai set karakter nama file portabel yang menyatakan ini untuk satu atau lain cara.
Doug R.

5

Ya itu sensitif huruf besar / kecil. Saya tidak dapat membawa informasi teknis, saya baru saja mengujinya, dan bertanya-tanya mengapa Anda tidak (?)

mesin lokal saya adalah linux mint seperti yang Anda lihat:

# 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

dan saya sudah mencoba terhubung ke server CentOS seperti ini:

· Menggunakan (salah) nama pengguna huruf besar:

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: 

· Menggunakan nama pengguna yang benar:

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

Sebagai masalah tambahan, ini bukan praktik keamanan yang baik untuk mengizinkan SSH login sebagai root seperti yang dilakukan di sini (terutama jika mesinnya menghadapi Internet) 😱 Saat ini dengan OpenSSH ini biasanya harus diaktifkan secara eksplisit dengan opsi PermitRootLogin di di sshd_config. Lebih baik untuk masuk sebagai pengguna normal dan kemudian menggunakan sudo atau su untuk menjadi root hanya saat diperlukan.
JohnGH

Ya itu benar saya setuju, pertama karena itu adalah pengguna super, dan yang kedua nama pengguna 'root' diketahui oleh penyerang, yang hanya perlu menangkap kata sandi. Pokoknya ini sebenarnya hanya Mesin Virtual yang berjalan secara lokal, tidak terkena interned. Praktik yang baik adalah dengan menggunakan sertifikat rsa ssh untuk masuk, atau / plus port ssh terbuka hanya untuk permintaan yang datang dari alamat yang diizinkan (aturan firewall)
lese

3

Dalam hal akun lokal, nama pengguna bersifat case sensitif. Ketika Anda menggunakan LDAP, itu tergantung. Saya telah melihat kasus di mana nama pengguna peka huruf besar-kecil (pada alat ZFS yang terhubung ke LDAP) dan kasus di mana itu tidak masalah seperti klien Solaris LDAP yang terhubung ke Windows AD.

Apa yang harus / bisa Anda coba adalah untuk melihat apakah sistem Anda menggunakan LDAP dengan benar dengan mengeluarkan getent passwd <username>. Menggunakan perintah ini akan memberi Anda catatan dengan nama pengguna, direktori home dan shell untuk pengguna yang ditentukan. Jika Anda tidak melihat catatan seperti itu, LDAP tidak dikonfigurasi dengan benar.

Ada beberapa tempat di mana Anda harus mengkonfigurasi LDAP dan salah satu tempat adalah:

/etc/nsswitch.conf

passwd: files ldap
group:  files ldap

Anda juga perlu memeriksa apakah PAM dikonfigurasi dengan benar dan mungkin langkah paling penting adalah memverifikasi apakah klien LDAP dikonfigurasi dan berfungsi. Coba alat yang ingin ldapsearchmemeriksa apakah LDAP dapat dipertanyakan.

Ada beberapa buku masak LDAP yang tersedia dan sebagian besar bergantung pada versi Unix dan versi LDAP yang Anda gunakan. Perbarui pertanyaan Anda dengan perincian itu jika Anda membutuhkan bantuan lebih lanjut. Juga termasuk pengaturan konfigurasi Anda (tanpa kata sandi tentu saja) yang dapat membantu anggota forum untuk menganalisis masalah khusus Anda.


1

Nama pengguna Unix jelas peka huruf besar-kecil, dan terlebih lagi, menggunakan nama pengguna dengan karakter huruf besar pada sistem Unix dapat menghasilkan hasil yang tidak diinginkan, sehingga umumnya harus dihindari.

Beberapa contoh adalah:

Itu dapat merusak email untuk pengguna. Standar untuk SMTP memungkinkan alamat email tidak peka terhadap huruf besar-kecil, dan secara default MTA yang menerima pesan akan melipat alamat email menjadi huruf kecil untuk menemukan pengguna yang akan dikirim. Jika nama pengguna memiliki karakter huruf besar maka tidak akan diselesaikan tanpa mengesampingkan konfigurasi khusus untuk memenuhi ini. (ini mempengaruhi MTA seperti sendmail, postfix dll dan juga agen pemrosesan pengiriman seperti procmail)

Banyak terminal perangkat keras awal tidak peka huruf besar-kecil. Itu umum bahwa mereka hanya menggunakan huruf besar. Saat masuk ke beberapa versi Unix, memulai nama login dengan karakter huruf besar akan memicu sistem untuk mengasumsikan bahwa Anda menggunakan terminal huruf besar saja dan itu akan memungkinkan pelipatan huruf - yang mengubah semua huruf besar yang Anda masukkan menjadi huruf kecil ( Anda kemudian harus keluar dari huruf besar untuk mengatakan bahwa mereka adalah huruf besar) untuk membantu Anda memasukkan nama pengguna yang diharapkan dalam huruf kecil. Saya tidak percaya ini adalah hal di Linux, tapi saya sudah melihatnya didemonstrasikan di HP-UX.

Karena sudah lama konvensi untuk hanya menggunakan karakter huruf kecil di nama pengguna, masuk akal untuk mengharapkan alat lain (beberapa kita mungkin tidak memikirkan) pada sistem juga dapat mengasumsikan bahwa nama pengguna harus huruf kecil, dan melakukan pengecekan, konversi dll karenanya, hal-hal yang melanggar untuk pengguna itu.


0

Nama pengguna pasti peka huruf besar-kecil. Anda dapat dengan mudah menguji ini dengan menambahkan dua pengguna dengan nama yang mirip:

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

Pertanyaan / jawaban ini menunjukkan cara mengkompensasi seseorang yang mencoba masuk dengan nama pengguna yang memiliki kasus "salah" menurut server LDAP. Tetapi perhatikan bahwa ini hanya akan berfungsi jika semua nama pengguna terdaftar sebagai huruf kecil (atau Anda dapat membuat semuanya huruf besar jika Anda mau).

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.