Страница 4 из 6

Re: Вопрос по SQL аутентификации proftpd

Добавлено: 2010-09-07 12:44:35
kolossus
Orator писал(а):
kolossus писал(а):Если имя пользователя состоит только из цифр (например - 12548746614) - не пускает.
Может кто знает, как это перебороть?
Поменять имя - не предлагать :)
Спасибо...
Какой тип аутентификации используете?

Код: Выделить всё

SQLAuthTypes            Plaintext
SQLAuthenticate         users

Re: Вопрос по SQL аутентификации proftpd

Добавлено: 2010-09-07 12:50:46
kolossus
Orator писал(а):
kolossus писал(а):А как сделать разным пользователям разные права доступа к папкам?
Пока что SQL используется для входа, а как раздавать права?
Смотря какой сложности доступ,
можно создать разные групы в том же sql и пользователей причислять к групам
можно создать пользователя одного в системе например с уидом 10000, в базу если пользователю надо писать ставить ему уид 10000 если нет 65534
права на папку соответственно 700.

Есть более сложные схемы и способы, приветствуется также комбинирования многих способов.

Интересует более конкретный ответ?
Опишите конкретную ситуацию с примерами, что-бы можно было судить о масштабности и не внедрять фиг-поймеш-что где можно обойтись велосипедом.
Есть несколько сотен пользователей, у них доступ ко всем папкам - на чтение и к папке 'UserFiles' - еще и на запись
Есть несколько пользователей, у которых полный доступ к некоторым папкам (у каждого свои).
Есть готовая база пользователей с логинами и паролями, которая и используется для доступа к серверу.

Re: Вопрос по SQL аутентификации proftpd

Добавлено: 2010-09-12 10:02:18
Orator
kolossus писал(а):
Orator писал(а):
kolossus писал(а):Если имя пользователя состоит только из цифр (например - 12548746614) - не пускает.
Может кто знает, как это перебороть?
Поменять имя - не предлагать :)
Спасибо...
Какой тип аутентификации используете?

Код: Выделить всё

SQLAuthTypes            Plaintext
SQLAuthenticate         users
В Вашем случае достаточно будет обновить proftpd до последней версии.

Табличка с пользователями (она у меня общая на все сервисы)

Код: Выделить всё

SELECT * FROM users WHERE UserName='123';
Id 	   UserName 	Password 	Comment 	Active
1678    123 	        321           NULL 	1
Вот от самого ftp

Код: Выделить всё

SELECT * FROM proftpd WHERE UserName='123';
Id 	UserName 	Uid 	  Gid 	HomeDir 	           Active 	
857 	123 	        1003   1003 	/infopool/%...%    1 	        

чудно сейчас работает.
Раньше приходилось править
/usr/ports/ftp/proftpd/work/proftpd-1.3.3a/contrib/mod_sql*

Сейчас рекомендую обновится, авторы исправили много ошибок о которых отписывались, хотя еще и не все.
До определенного момента мод sql был вообще достаточно дырявым при попытке использования не стандартных настроек.
По крайней мере та часть что относится к mysql, c postgre не работал.

На данный момент стоит
proftpd-1.3.3a
mysql-server-5.5.5_1

около 800-900 пользователей ftp.
С момента обновления, несколько раз отваливался мод clamav, но он и в предыдущих версиях на больших нагрузках пропускал.
Все остальное стабильно.

Re: Вопрос по SQL аутентификации proftpd

Добавлено: 2010-09-12 10:27:10
Orator
1.Есть несколько сотен пользователей, у них доступ ко всем папкам - на чтение и к папке 'UserFiles' - еще и на запись
2.Есть несколько пользователей, у которых полный доступ к некоторым папкам (у каждого свои).
3. Есть готовая база пользователей с логинами и паролями, которая и используется для доступа к серверу.[/quote]

1. Просто правами в системе оставляем анонимный доступ xx5 для директорий хх4 для файлов.
2. Всем пользователям которым нужен полный доступ даем uid пользователя существующего в системе с правильными правами
Если необходимо по директориям еще разбить, то описать доступ к директории в конфиге сервера на группу, а потом в mysql в группы вносить нужных пользователей.
3. У меня табличка с пользователями и паролями, вообще отдельно, ftp таблицы содержат только имена а пароль вытягивают из общей таблицы.

Re: Вопрос по SQL аутентификации proftpd

Добавлено: 2010-09-16 13:54:37
kolossus
Orator писал(а):
kolossus писал(а):
Orator писал(а):
kolossus писал(а):Если имя пользователя состоит только из цифр (например - 12548746614) - не пускает.
Может кто знает, как это перебороть?
Поменять имя - не предлагать :)
Спасибо...
Какой тип аутентификации используете?

Код: Выделить всё

SQLAuthTypes            Plaintext
SQLAuthenticate         users
В Вашем случае достаточно будет обновить proftpd до последней версии.

Код: Выделить всё

proftpd-mysql-1.3.3a
С цифровыми логинами не пускает.
Есть варианты?

Re: Вопрос по SQL аутентификации proftpd

Добавлено: 2010-09-16 15:53:54
risk94
както видел статью на сайте с настройкой квотирования места для юзера (юзера хранятся в мусе). подскажит, не могу ее найти

Re: Вопрос по SQL аутентификации proftpd

Добавлено: 2010-09-17 10:43:40
risk94
люди добрые, ткните носом в статью про proftpd + mysql + quote была на серваке, не могу найти, 3-й день ищу!

Re: Вопрос по SQL аутентификации proftpd

Добавлено: 2010-09-17 11:41:08
kolossus
risk94 писал(а):люди добрые, ткните носом в статью про proftpd + mysql + quote была на серваке, не могу найти, 3-й день ищу!
Не было такой. Была:
Proftpd - квоты и авторизация из файлов. Мониторинг.

Re: Вопрос по SQL аутентификации proftpd

Добавлено: 2010-09-17 15:46:05
risk94
kolossus писал(а):
risk94 писал(а):люди добрые, ткните носом в статью про proftpd + mysql + quote была на серваке, не могу найти, 3-й день ищу!
Не было такой. Была:
Proftpd - квоты и авторизация из файлов. Мониторинг.

была однозначно! Ну да хрен с ней. Официальный мануал + гугля спасли!
Настроил я квоты для юзеров в мусе. Если кому интересно - позже отпишусь как.

Re: Вопрос по SQL аутентификации proftpd

Добавлено: 2010-09-26 10:44:08
Orator
[/quote]

Код: Выделить всё

proftpd-mysql-1.3.3a
С цифровыми логинами не пускает.
Есть варианты?[/quote]

Даже не знаю, я ставил недавно еще на двух фирмах аналогичную конфигурацию, проверил все нормально.
Глупо вроде, но всякое может быть:
у вас proftpd-mysql-1.3.3a
я же ставил с порта proftpd просто указывая опцию мускуля, тобиш proftpd-1.3.3a.

И еще если не трудно то отключите используемые фильтры
DenyFilter PathDenyFilter и прочее
когда-то копал исходный код модуля, видел там проверку фильтров
может там?

Re: Вопрос по SQL аутентификации proftpd

Добавлено: 2010-10-01 8:06:29
flash_br
Парни, всем здарова!!!
Мускл - сила .. но если у юзера в мускле проставлен пароль "null" (ну так надо) ... а в системе он есть, он коннектится по пассу из системы ... как полечить?

да.. и ещё коннектится зараза по пассу из базы и по пассу из системы .... а надо тока из базы :st:
heeeeeeeeeeeeeeeeelp!!!!!!!!!!!!!!

Re: Вопрос по SQL аутентификации proftpd

Добавлено: 2010-10-01 8:20:49
flash_br
всё .. разобрался

Код: Выделить всё

RequireValidShell       off
AuthPAM                 off
:oops: :oops: :oops:

Re: Вопрос по SQL аутентификации proftpd

Добавлено: 2010-10-22 22:39:39
risk94
flash_br писал(а):всё .. разобрался

Код: Выделить всё

RequireValidShell       off
AuthPAM                 off
:oops: :oops: :oops:
мужИкк!! :good:

Re: Вопрос по SQL аутентификации proftpd

Добавлено: 2010-10-23 9:59:15
flash_br
хорошая это штука .... а главное удобная)))))

Re: Вопрос по SQL аутентификации proftpd

Добавлено: 2010-10-27 9:49:24
Anton_Astrogor
Вопрос про дерективы SQLRatios и SQLRatioStats не сумел отыскать нормального описания, может кто что подскажет?

Re: Вопрос по SQL аутентификации proftpd

Добавлено: 2010-10-27 10:15:51
Anton_Astrogor
Так же есть интересует возможность хранения RLimitCPU, RLimitMemory, RLimitOpenFiles, MaxClients, а вообще интересует возможность переноса максимального количества параметров в MySQL

Re: Вопрос по SQL аутентификации proftpd

Добавлено: 2011-02-02 15:52:56
o2x
Приветствую.
Относительно части дампа:

Код: Выделить всё

DROP TABLE IF EXISTS `users`;
CREATE TABLE `users` (
  `username` varchar(20) NOT NULL,
  `password` varchar(50) NOT NULL,
  `mail` varchar(255) NOT NULL,
  `groupname` varchar(24) NOT NULL,
  `uid` int(11) NOT NULL DEFAULT '1003',
  `gid` int(11) NOT NULL DEFAULT '1003',
  `homedir` varchar(50) NOT NULL DEFAULT '/ftp',
  `shell` varchar(20) NOT NULL DEFAULT '/bin/nonexistent',
  `last_login` int(15) NOT NULL DEFAULT '0',
  `count` int(15) NOT NULL DEFAULT '0',
  `last_err_login` int(15) NOT NULL DEFAULT '0',
  `err_login_count` int(15) NOT NULL DEFAULT '0',
  `closed` int(1) NOT NULL DEFAULT '1',
  `admin` int(1) NOT NULL DEFAULT '0',
  PRIMARY KEY  (`userid`)
) ENGINE=MyISAM COMMENT='Таблица пользователей';
Не удается создать таблицу, так как нету поля:

Код: Выделить всё

  `userid` int(32) NOT NULL auto_increment,
Так, как вы ее создавали? Если дамп рабочий.

Re: Вопрос по SQL аутентификации proftpd

Добавлено: 2011-02-03 10:31:06
Starshiy
Народ, простите юзера - только начал в никсовых системах разбираться.. Куда вообще прикручивается этот php файлик, чтобы логи через web морду смотреть?? не могу понять с какой стороны вообще к нему подойти?

Re: Вопрос по SQL аутентификации proftpd

Добавлено: 2011-02-04 14:15:04
harmless
o2x писал(а):Приветствую.
Относительно части дампа:

Код: Выделить всё

DROP TABLE IF EXISTS `users`;
CREATE TABLE `users` (
  `username` varchar(20) NOT NULL,
  `password` varchar(50) NOT NULL,
  `mail` varchar(255) NOT NULL,
  `groupname` varchar(24) NOT NULL,
  `uid` int(11) NOT NULL DEFAULT '1003',
  `gid` int(11) NOT NULL DEFAULT '1003',
  `homedir` varchar(50) NOT NULL DEFAULT '/ftp',
  `shell` varchar(20) NOT NULL DEFAULT '/bin/nonexistent',
  `last_login` int(15) NOT NULL DEFAULT '0',
  `count` int(15) NOT NULL DEFAULT '0',
  `last_err_login` int(15) NOT NULL DEFAULT '0',
  `err_login_count` int(15) NOT NULL DEFAULT '0',
  `closed` int(1) NOT NULL DEFAULT '1',
  `admin` int(1) NOT NULL DEFAULT '0',
  PRIMARY KEY  (`userid`)
) ENGINE=MyISAM COMMENT='Таблица пользователей';
Не удается создать таблицу, так как нету поля:

Код: Выделить всё

  `userid` int(32) NOT NULL auto_increment,
Так, как вы ее создавали? Если дамп рабочий.
В Вашем случае это поле будет не а

Код: Выделить всё

username
Весь дамп

Код: Выделить всё

DROP TABLE IF EXISTS `users`;
CREATE TABLE `users` (
  `username` varchar(20) NOT NULL,
  `password` varchar(50) NOT NULL,
  `mail` varchar(255) NOT NULL,
  `groupname` varchar(24) NOT NULL,
  `uid` int(11) NOT NULL DEFAULT '1003',
  `gid` int(11) NOT NULL DEFAULT '1003',
  `homedir` varchar(50) NOT NULL DEFAULT '/ftp',
  `shell` varchar(20) NOT NULL DEFAULT '/bin/nonexistent',
  `last_login` int(15) NOT NULL DEFAULT '0',
  `count` int(15) NOT NULL DEFAULT '0',
  `last_err_login` int(15) NOT NULL DEFAULT '0',
  `err_login_count` int(15) NOT NULL DEFAULT '0',
  `closed` int(1) NOT NULL DEFAULT '1',
  `admin` int(1) NOT NULL DEFAULT '0',
  PRIMARY KEY  (`username`)
) ENGINE=MyISAM COMMENT='Таблица пользователей';

Re: Вопрос по SQL аутентификации proftpd

Добавлено: 2011-02-04 15:52:40
o2x
Приветствую.
Использовал ваш архив: proma.tar.
Создавался пользователь:

Код: Выделить всё

INSERT INTO `users` (`userid`, `name`, `mail`, `uid`, `gid`, `passwd`, `shell`, `homedir`, `note`, `last_login`, `count`, `last_err_login`, `err_login_count`, `admin`, `closed`, `groupname`) VALUES ('admin', 'admin', 'admin@domain', 1003, 80, 'admin_pass', '/bin/nonexistent', '/var/ftp', '', 0, 0, 0, 0, 0, 0, 'admin');
После создания, при попытке авторизоваться:

Код: Выделить всё

http://host/proma/?page=admin
выдает ошибку:
Wrong username or password, or you're not an admin.

Параметры авторизации:
user: admin
pass: admin_pass


В чем проблема? Спасибо.

Re: Вопрос по SQL аутентификации proftpd

Добавлено: 2011-02-04 17:31:49
o2x

Код: Выделить всё

mysql> select * from users where name='admin';
+--------+-------+--------------+------+------+------------+------------------+----------+------+------------+-------+----------------+-----------------+-------+--------+-----------+
| userid | name  | mail         | uid  | gid  | passwd     | shell            | homedir  | note | last_login | count | last_err_login | err_login_count | admin | closed | groupname |
+--------+-------+--------------+------+------+------------+------------------+----------+------+------------+-------+----------------+-----------------+-------+--------+-----------+
| admin  | admin | admin@domain |    0 |   80 | admin_pass | /bin/nonexistent | /var/ftp |      |          0 |     0 |              0 |               0 |     0 |      0 | admin     |
+--------+-------+--------------+------+------+------------+------------------+----------+------+------------+-------+----------------+-----------------+-------+--------+-----------+
1 row in set (0.01 sec)

Re: Вопрос по SQL аутентификации proftpd

Добавлено: 2011-02-06 14:10:17
harmless
o2x писал(а):Приветствую.
Использовал ваш архив: proma.tar.
Создавался пользователь:

Код: Выделить всё

INSERT INTO `users` (`userid`, `name`, `mail`, `uid`, `gid`, `passwd`, `shell`, `homedir`, `note`, `last_login`, `count`, `last_err_login`, `err_login_count`, `admin`, `closed`, `groupname`) VALUES ('admin', 'admin', 'admin@domain', 1003, 80, 'admin_pass', '/bin/nonexistent', '/var/ftp', '', 0, 0, 0, 0, 0, 0, 'admin');
После создания, при попытке авторизоваться:

Код: Выделить всё

http://host/proma/?page=admin
выдает ошибку:
Wrong username or password, or you're not an admin.

Параметры авторизации:
user: admin
pass: admin_pass


В чем проблема? Спасибо.
Приветствую!
На даном этапе группы еще не реализованы...
Так что в Вашем случае нужно еще и добавить флаг админа при заведении пользователя

Код: Выделить всё

INSERT INTO `users` (`userid`, `name`, `mail`, `uid`, `gid`, `passwd`, `shell`, `homedir`, `note`, `last_login`, `count`, `last_err_login`, `err_login_count`, `admin`, `closed`, `groupname`) VALUES ('admin', 'admin', 'admin@domain', 1003, 80, 'admin_pass', '/bin/nonexistent', '/var/ftp', '', 0, 0, 0, 0, 1, 0, 'admin');

Код: Выделить всё

`admin` = 1

Re: Вопрос по SQL аутентификации proftpd

Добавлено: 2011-02-07 11:29:38
o2x

Код: Выделить всё

mysql> select * from users where name='admin';
+--------+-------+--------------+------+------+------------+------------------+----------+------+------------+-------+----------------+-----------------+-------+--------+-----------+
| userid | name  | mail         | uid  | gid  | passwd     | shell            | homedir  | note | last_login | count | last_err_login | err_login_count | admin | closed | groupname |
+--------+-------+--------------+------+------+------------+------------------+----------+------+------------+-------+----------------+-----------------+-------+--------+-----------+
| admin  | admin | admin@domain |    0 |   80 | admin_pass | /bin/nonexistent | /var/ftp |      |          0 |     0 |              0 |               0 |     1 |      0 | admin     |
+--------+-------+--------------+------+------+------------+------------------+----------+------+------------+-------+----------------+-----------------+-------+--------+-----------+
1 row in set (0.00 sec)
Результат анологичен(((

Re: Вопрос по SQL аутентификации proftpd

Добавлено: 2011-02-08 12:10:13
harmless
o2x писал(а):

Код: Выделить всё

mysql> select * from users where name='admin';
+--------+-------+--------------+------+------+------------+------------------+----------+------+------------+-------+----------------+-----------------+-------+--------+-----------+
| userid | name  | mail         | uid  | gid  | passwd     | shell            | homedir  | note | last_login | count | last_err_login | err_login_count | admin | closed | groupname |
+--------+-------+--------------+------+------+------------+------------------+----------+------+------------+-------+----------------+-----------------+-------+--------+-----------+
| admin  | admin | admin@domain |    0 |   80 | admin_pass | /bin/nonexistent | /var/ftp |      |          0 |     0 |              0 |               0 |     1 |      0 | admin     |
+--------+-------+--------------+------+------+------------+------------------+----------+------+------------+-------+----------------+-----------------+-------+--------+-----------+
1 row in set (0.00 sec)
Результат анологичен(((
Заметил странность в том что без пароля не пускает)
И пароли хранятся шифрованными, а вы добавляете plain, так что :pardon:

Re: Вопрос по SQL аутентификации proftpd

Добавлено: 2011-02-08 15:48:34
o2x

Код: Выделить всё

mysql>  UPDATE users SET passwd=PASSWORD('admin_pass') WHERE name='admin';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> select * from users where name='admin';
+--------+-------+--------------+------+------+-------------------------------------------+------------------+----------+------+------------+-------+----------------+-----------------+-------+--------+-----------+
| userid | name  | mail         | uid  | gid  | passwd                                    | shell            | homedir  | note | last_login | count | last_err_login | err_login_count | admin | closed | groupname |
+--------+-------+--------------+------+------+-------------------------------------------+------------------+----------+------+------------+-------+----------------+-----------------+-------+--------+-----------+
| admin  | admin | admin@domain |    0 |   80 | *67ACDEBDAB923990001F0FFB017EB8ED41861105 | /bin/nonexistent | /var/ftp |      |          0 |     0 |              0 |               0 |     1 |      0 | admin     |
+--------+-------+--------------+------+------+-------------------------------------------+------------------+----------+------+------------+-------+----------------+-----------------+-------+--------+-----------+
1 row in set (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql> exit
Необходимо изначально было sql дамп в архиве поправить.