MultiUser RU
Многопользовательский режим
Начиная с версии 2.03, MLdonkey получил возможность работать как многопользовательская (MultiUser) система.
Раннее MLdonkey использовал разные системы хранения пароля для каждого интерфейса. Теперь же используется общая база пар логин\пароль для всех интерфейсов (telnet, http, gui).
Многопользовательская аутентификация может быть пока использована для ограничения доступа пользователя к информации и доступным командам для каждого отдельного пользователя, но это пока не реализовано.
(Пере) и определение паролей
Изначально, определена только специальная учётная запись пользователя admin, с пустым паролем. Пользователь admin может добавлять пользователей с паролями или изменять их прежние пароли на новые, используя команду
useradd <пользователь> <пароль>
Пример:
useradd admin secret
для создания или смены пароля пользователю admin, в данном случае пароль будет secret
Пользователи не являющиеся администраторами (не имеют прав admin) могут сменять свой пароль командой passwd
Удалить пользователя можно командой userdel
.
Пример:
[userdel]] baduser
- удалит пользователя с именем baduser
Аутентификация
Синтаксис команды auth, используемой для соединения через телнет интерфейс, такой(квад. скобки не писать в команде)
auth [пользователь] [пароль]
Пример:
auth myuser [пароль]
- где myuser это созданный вами новый пользователь.
GUI(ГИП) был расширен так, что вы можете указать логин в дополнение к паролю. Вэб интерфейс спрашивает комбинацию логин\пароль сразу.
Замечание: пользователь "admin" подразумевается в telnet или графическом(gui) интерфейсах только если пароль указан.
Список команд связных с многопользовательскими функциями
- chgrp
- сменить группу для загрузки
- chown
- сменить хозяина для загрузки
- dgroup
- вывести группу по-умолчанию для залогинившегося пользователя
- groupadd
- добавить новую группу
- groupadmin
- смена админ-статуса группы
- groupdel
- удалить неиспользуемую группу
- groups
- вывести группы для залогинившегося пользователя (того под которым вы вводите эту команду)
- passwd
- команда чтобы изменить собственный пароль
- useradd
- добавить нового пользователя/сменить пользовательский пароль (если такой пользователь уже существует)
- usercommit
- сменить определённую для пользователя commit-directory(папку окончательной загрузки)
- userdel
- удалить пользователя
- userdgroup
- изменить группу пользователя по умолчанию
- userdls
- изменить количество одновременных загрузок
- usergroupadd
- добавить группу для пользователя (позволяет добавлять пользователя сразу в несколько групп)
- usergroupdel
- удалить группу у пользователя (позволяет удалить одну из групп, в которую входит пользователь)
- usermail
- сменить адрес электронной почты пользователя
- users
- вывести список пользователей, а также групп
- whoami
- вывести имя залогинившегося пользователя (того под которым вы вводите эту команду)
Временное решение для ограничения доступа к администрированию, если у вас есть вэб-сервер, на той же машине, что и MLdonkey:
Если вы хотите видеть ваши загрузки, без доступа к администрировани, вы можете поместить в ваш вэб-сервер следующую страницу (для примера назоваём её 1.php):
<?php $adr<code>'http://127.0.0.1:4080/submit?q</code>vd'; $screen=file($adr); $k=0; $m=sizeof($screen); for ($i<code>$k; $i<</code>$m; $i++) { echo $screen[[$i]]; } ?>
Теперь вы можете смотреть состояние ваших загрузок через эту ссылку http://your.server.name/1.php если вы поместили вышеописанное содержимое в файл сназванием 1.php в корень каталога вашего вэб-сервера.
Замечание: Вам необходим сервер, с поддержкой PHP. Например http://www.apache.org/.
Замечание2: Вы будете видеть несколько адимистраторских кнопок, но они не будут работать ! Я думаю для временного решения, это нормально.
Замечание3: Я полагаю что поздние PHP дополнения портят эту страницу (но это уже слишком сложно поправить полагаю).
Комментарии к новой многопользовательской системе
Большинство вещей упомянутых в старой версии этой статьи выполняются в MLdonkey.
Смотрите файлmultiuser.txt из репозитория (на англ.) для подробностей.
Хотелось бы сделать
- Сделать возможным интеграцию в существующие пользовательско-групповые системы, такие как phpbb, wikis, CMS(системы управления содержимым), с простым скриптом для конвертации пользователей и групп в их формат
- Графический (GUI) протокол:
- Так же как ставить на паузу или в очередь файлы, пользователь может выбрать файлы для просмотра только из конкретной группы в GUI(ГИП) (если GUI(ГИП) поддерживает это), но подобное тому как сделаны постановка на паузу или в очередь, определение что пользователю доступно путём фильтрации показа должно быть сделано не средствами ядра.
- Отсылать источники только для тех файлов, к которым пользвоатель имеет доступ
- Если пользователь "Vasya" имеет только 1 свою загрузку и подключается через GUI протокол, а у MLDonkey в этот момент загружается 1000 файлов(разных пользователей), ядро не должны посылать источники для других файлов "Vasya"-е через GUI протокол (если это не было настроено отдельно).
- Отсылать источники только для тех файлов, к которым пользвоатель имеет доступ
- Расширения
- Потенциально, в будущем группы могут иметь флаги доступа для расширения функциональности
- Пример: группа "groupA" имеет флаг "уведомление", группа "groupB" же, не имеет такого флага
- When FileX completes and is in groupA, notification email is sent to all members, FileY completes and is in groupB, but no noticiation mail is sent to the group members (only owner). This allows flexibility at the group level.
- Пример: группа "groupA" имеет флаг "уведомление", группа "groupB" же, не имеет такого флага
- Потенциально, в будущем группы могут иметь флаги доступа для расширения функциональности
- Когда файл "FileX" загрузился полностью и он принадлежит группе "GroupA", уведомление по электронной почте направляется всем членам этой группы, файл "FileY" завершается и принадлежит группе "groupB", но уведомление по электронной почте не отправляется для всех членов группы (а только лишь владельцу файла). Это обеспечивает гибкость на уровне группы.
- Нечто подобное можно сделать в виде флага отображающего символические ссылки на свежескачанные файлы, для всех членов группы, в общей папке загрузки, или допустим разрешить всем пользователям группы отменять загрузку файлов принадлежащих этой группе
- Когда файл "FileX" загрузился полностью и он принадлежит группе "GroupA", уведомление по электронной почте направляется всем членам этой группы, файл "FileY" завершается и принадлежит группе "groupB", но уведомление по электронной почте не отправляется для всех членов группы (а только лишь владельцу файла). Это обеспечивает гибкость на уровне группы.