Войти

Показать полную графическую версию : [решено] Как отменить русификацию консоли +vsftpd


Призрак
27-09-2011, 11:42
Здравствуйте уважаемые участники дискуссии.

Поднял я в операционной системе FTP сервер VSFTPD. Но при входе на сервер под определенным пользователем в каталоге этого пользователя не отображались почему - то файлы, которые набраны русскими буквами (скопированы в директорию с помошью WinSCP).

По этой причине я решил русифицировать консоль FreeBSD. Все вроде бы проделал как надо:

в etc/rc.conf

font8x14="cp866-8x14"
font8x16="cp866b-8x16"
font8x8="cp866-8x8"
scrnmap="koi8-r2cp866"


в /etc/ttvs

cons25 заменил на cons25r

после чего выполнил pw usermod (имя пользователя, естественно не root) -L russian

в /etc/login.conf

russian|Russian User Accounts:\
:charset=KOI8-r:\
:lang=ru_RU.KOI8-R:\
:tc=default:\

Все вроде бы нормально русифицировалось. Но появилась еще одна проблема - если я переименовываю или создаю файл во FreeBSD и копирую его на Windows русские буквы превращаются в кракозябры, и наоборот, если я переименовываю или создаю файл в Windows и копирую его на FreeBSD то буквы превращаются в кракозябры.

Решил я вернуть все на свои места. Удалил или исправил все, что проделывал выше, редактировал даже файл /etc/master.passwd (удалял из него надпись russian после зашифрованного пароля того пользователя, которого я русифицировал указанной выше командой).

Не тут то было! Даже после перезагрузки меню в Midnight Commander отображается русскими буквами, и в консоли ошибки (если набрать неверную команду) отображаются русскими буквами.

Помогите пожалуйста разобраться, что я сделал не так? И как все-таки сделать чтобы в каталоге vsftpd отображались русские имена файлов?

vadblm
27-09-2011, 14:21
Все вроде бы нормально русифицировалось. Но появилась еще одна проблема - если я переименовываю или создаю файл во FreeBSD и копирую его на Windows русские буквы превращаются в кракозябры, и наоборот, если я переименовываю или создаю файл в Windows и копирую его на FreeBSD то буквы превращаются в кракозябры. »
Это потому, что вы русифицировали FreeBSD в кодировке KOI-8, а Windows хранит имена файлов в UTF-8. Русифицируйте в UTF-8 и всё будет ок. Внимание! Драйвер console(4) поддерживает только однобайтные кодировки, а UTF-8 - двухбайтная. Русские символы в консоли не будут отображаться. Однако, при работе с терминалами, не имеющими такого ограничения (тот же putty, или практически любой эмулятор терминала в иксах) всё будет ок.
Решил я вернуть все на свои места. Удалил или исправил все, что проделывал выше, редактировал даже файл /etc/master.passwd (удалял из него надпись russian после зашифрованного пароля того пользователя, которого я русифицировал указанной выше командой). »
Странный вы. А почему вы не дерусифицировали пользователя той же командой, что русифицировали?

pw usermod (имя пользователя, естественно не root) -L default

Дело в том, что passwd и master.passwd скажем так, для справки, а сама система берёт данные о пользователях из файлов /etc/pwd.db и /etc/spwd.db, кои в бинарном формате:

$ sudo file /etc/spwd.db
/etc/spwd.db: Berkeley DB 1.85 (Hash, version 2, native byte-order)

Для того, чтобы система восприняла изменения, сделанные руками в /etc/master.passwd необходимо выполнить команду pwd_mkdb -p /etc/master.passwd
Убедитесь предварительно, что в этом файле нет ошибок!

Призрак
28-09-2011, 09:12
Спасибо большое, решил проблему. И зачем я только полез руками в master.passwd. А вообще я новичок во FreeBSD

vadblm
28-09-2011, 20:40
И зачем я только полез руками в master.passwd. »
Ну вообще-то это может быть полезным, если нужно добавить/модифицировать/удалить сразу много учётных записей - быстрее отредактировать master.passwd и натравить упомянутый pwd_mkdb. Но в вашем случае это были лишние телодвижения.




© OSzone.net 2001-2012