постинг отчетов по nntp с авторизацией

From
Igor Mitichev (2:6001/9.9)
To
Pavel Osipov
Date
2005-11-04T17:17:32Z
Area
RU.UNIX.FTN
Привет Pavel!

04 Ноя 05 года (а было тогда 09:00)
Pavel Osipov в своем письме к All писал:

У тебя localhost не авторизуется. Там идет авторизация сверху вниз, при чем последовательно проверяются все auth. Пользователь авторизуется под тем auth, который стоит последним и к которому он подойдет по критериям. Если по-русски, то тебе auth "localhost" надо прописать после auth "users from net", Я для наглядности все auth вынес в начало файла. Вот смотри что получается с локальным процессом:

 PO> auth "localhost" {
 PO>     hosts: "localhost, 127.0.0.1, stdin"
 PO>     default: "<localhost>"
 PO> }

Сначала он авторизуется по auth "localhost" и ему присавивается имя "<localhost>" на основании того, что он hosts: "localhost". Но дальше inn продолжает проверять его по другим auth.

 PO> auth "users from net" {
 PO>     hosts: "*"
 PO>     auth: "ckpasswd -f /usr/local/news/etc/users.passwd"
 PO>     default: "<local-users>"
 PO> }

Здесь он проверяется по файлу паролей. И поскольку эта авторизация не прошла успешно, то имя <localhost> заменяется на имя по умолчанию <local-users>

 PO> access "localhost" {
 PO>     users: "<localhost>"
 PO>     newsgroups: "*"
 PO>     access: RPA
 PO> }
 PO> auth "users from net" {
 PO>     hosts: "*"
 PO>     auth: "ckpasswd -f /usr/local/news/etc/users.passwd"
 PO>     default: "<local-users>"
 PO> }
 PO> access "anybody" {
 PO>     users: "<local-users>"
 PO>     newsgroups: "*"
 PO>     access: R
 PO> }

Ну и вот здесь у нашего процесса определяются права access: R

 PO> access "posters" {
 PO>     users: "ozzy, robot"
 PO>     newsgroups: "*"
 PO>     access: RPA
 PO> }

Я бы переписал твой файл таким образом:

auth "not known user" {
hosts: "*"
default: "<fail>"
}

# Сначала всем пользователям присваивается имя по умолчанию "fail"

auth "local-users" {
    hosts: "192.168.0.0/16"
    default: "<local-users>"
}

# Если этот пользователь оказывается из нашей сети, то его имя меняется на
# "local-users".

auth "localhost" {
    hosts: "localhost, 127.0.0.1, stdin"
    default: "<localhost>"
}

# Далее, если пользователь имеет IP 127.0.0.1 его имя переназначается на # "localhost"

auth "password users" {
hosts: "*"
auth: "ckpasswd -f /usr/local/news/etc/users.passwd"
 }

# Ну и наконец, если он знает пароль, то ему будет присвоено имя из файла # паролей.


Ну а дальше уже прописывай access как надо:

access "localhost" {
    users: "<localhost>, ozzy"
    newsgroups: "*"
}

# Localhost'у и ozzy доступны все группы


access "full_all" {
  users: "<local-users>"
  read: "*, !control*, !junk"
  post: "local.*"
}

# юзерам из нашей сети доступны почти ;) все группы но только для чтения и
# группы иерархии local.* на запись


access fail {
  users: "<fail>"
  newsgroups: !*
}

# прочие пользователи идут лесом

С уважением                                             04 Ноя 05 года
Igor Mitichev                                           garick33 на hotbox.ru

       Развитие индивида обусловлено развитием всех других индивидов,
         с которыми он находится в прямом или косвенном общении.(с)
--- Я писать стихи не могу, по натуре я не Пушкин. Я по натуре Белинский.(с)
 * Origin: Задавайте мне любые вопросы, я вам дам любые ответы. (2:6001/9.9)
SEEN-BY: 46/50 50/12 400/814 450/1024 5000/5000 5010/53 5011/13 5012/46
SEEN-BY: 5015/10 28 5019/31 5020/545 715 2871 4441 5021/29 5025/3 5027/16
SEEN-BY: 5030/115 5035/38 5036/34 5053/16 5054/1 8 9 18 37 45 63 67 81
SEEN-BY: 5060/900 5063/3 5069/7 5077/70 5080/1003 5085/13 5095/20 5096/18
SEEN-BY: 6000/12 254 6001/9 10
PATH: 6001/9 10 5020/545 5054/1 37