cl-setup ftp * WARNING: FTP server is configured.

Хочу переставить ftp … пишет:

# cl-setup ftp
# * WARNING: FTP server is configured.

Как граматно переснести службы которые были установленны с помощью cl-setup ?

Для переустановки всех сервисов нужно выполнить команду

cl-setup -f ldap

Затем установить остальные нужные сервисы.

Для переустановки только сервиса FTP, необходимо в файле /etc/calculate/calculate.env закоментировать или удалить строку

sr_ftp_set = on

например так

 # sr_ftp_set = on

Затем переустановить сервис.

cl_setup ftp

При этом созданные пользователи сервиса FTP останутся в сервисе UNIX.

Для их удаление используйте команду

cl-userdel имя_пользователя_ftp unix

Большое спасибо!Завтра проверю! Хорошобы пунктик удаление и переустановка описать в мануалах, вещь, согласитесь, очень полезная!

Лучше бы дописать утили по удалению сервисов и их последствий пребывания. Было бы время сам бы изучил перл и написал патч для утили calcalate-server :wink:

Такая возможность была и отключена осознанно, чтобы не привести к конфликту систему репликации между серверами. В будущем мы такую поддержку планируем вернуть.

P.S. Calcalate-server написан на питоне.

Не могу выдать нормально права группе, косяк какой-то! Группа ftp_writer_1c не может ни писать ни читать папку 1с!
Как правильно раздавать права?

 # pwd
/var/calculate/server-data/ftp

 # ls -l
total 0
drwxrwx--- 2 root ftp_writer_1c 48 2010-01-19 06:37 1c
drwxrwxr-x 2 root ftp_writer_all    48 2010-01-18 18:25 pub
drwxrwxr-x 2 root ftp_writer_all    48 2010-01-18 18:25 tmp

 # cl-info -u --full ftp
All users in LDAP for service FTP
+------+-----------+----------------+---------------+--------------------------------+----------+
| ID   | Login     | Name           | Primary group | Home directory                 | Password |
+------+-----------+----------------+---------------+--------------------------------+----------+
| 1001 | 1c        | Calculate user | ftp_writer_1c | /var/calculate/server-data/ftp | Yes      |
+------+-----------+----------------+---------------+--------------------------------+----------+

 # cl-info -u  unix
All users in LDAP for service Unix
+------+--------+----------------+---------------+----------------+
| ID   | Login  | Name           | Primary group | Home directory |
+------+--------+----------------+---------------+----------------+
| 1001 | 1c     | Calculate user | ftp_writer_1c | /home/1c       |
+------+--------+----------------+---------------+----------------+

 # id 1c
uid=1001(1c) gid=1001(ftp_writer_1c) groups=1003(ftp_writer_1c)

Протестировал на тестовом сервере. Группа работает.

Для того чтобы пользователь получил группу надо подключится к серверу используя логин

Пример адреса ftp://ftp_userftp.server.ru@

Для работы с ftp в firefox можно использовать плагин FireFTP (для записи), чтение возможно без плагина.

Пользователь у меня заходит нормально, вот только почему-то доступ к папке он не имеет, если 777 даю права все нормально и папки создаются и файлики видемы! может в конфиге что-то надо припасть.
Если не сложно может кто-нить выложить:

  1. свой конфиг профтпд
  2. вывод ls -l для папки ftp и ее внутренних папок (pub tmp и т.д.)
  3. какими командами (можно без коментариев) создается пользователь новый с выдачей прав на группу и внесение его в группу

Я думаю в конфиге дело (у меня стандартный) … он заточен под анонимный доступ, думаю еще деректив надо прописать и путь для анонимауса поправить (создать ему папочку отдельную)

P.S. Calcalate-server написан на питоне.

Упс! :slight_smile: Точно… :)))

Немного ошибся … на ftp у меня почему-то группа не сменилась … Подскажите как ее поменять!

 # cl-info -u --full ftp
All users in LDAP for service FTP
+------+-----------+----------------+---------------+--------------------------------+----------+
| ID   | Login     | Name           | Primary group | Home directory                 | Password |
+------+-----------+----------------+---------------+--------------------------------+----------+
| 1001 | 1c        | Calculate user | ftpdomain     | /var/calculate/server-data/ftp | Yes      |
+------+-----------+----------------+---------------+--------------------------------+----------+

А на unix “Primary group” нормально сменилась (как в табличке в предыдущем посте)!

Изменение группы пользователя FTP

1. Вариант (нужный пользователь с нужной первичной группой есть в unix сервисе)
удалить пользователя FTP

cl-userdel 1c ftp

cоздать пользователя FTP

cl-useradd -p 1c ftp

2. Вариант (пользователя в unix сервисе нет)
добавить пользователя с нужной группой

cl-useradd -p -g ftp_writer_1c 1c ftp

Спс, помогло! Т.е. получается одной командой сменить группу у пользователя ftp нельзя (только пересоздавать) … печально конечно.
Честно говоря почему-то не верится в любой базе данных можно изменить или заменить конкретное значение в базе указав параметры, неужеле нельзя одной командочкой и тут обойтись вместо удаления и создания заново пользователя, у него ведь может id сменить и т.д. и потянуть за собой еще какие-нить изменения. У меня к примеру при удалении пользователя по такой схеме удалилась и группа, может из-за того, что он у меня один был в этой группе, но это потянуло за собой удаление группы у папок, на которых стояла эта группа! А еслибы у меня была не одна папка а 100 папок к примеру, тогда как быть?

P.S. это ни в коем разе не критика, я просто хочу выяснить все нюансы, чтоб потом пошагово все описать в статейке! :slight_smile:

И надеюсь последний вопрос по поводу уже имеющихся в системе пользователей!

Допустим у меня в системе есть пользователь alektronik

 # id alektronik
uid=1000(alektronik) gid=1000(alektronik) groups=1000(alektronik),7(lp),10(wheel),18(audio),19(cdrom),27(video),80(cdrw),85(usb),440(plugdev)

Пытаюсь добавить этому пользователю группу “ftp_writer_1c”:

 # gpasswd -a alektronik ftp_writer_1c
unknown group: ftp_writer_1c

Группа в системе существует (по имени пользователя выводит его группы):

 # groups 1с
ftp_writer_1с

Не понятно правда каким макаром идет одновременный опрос и фалика /etc/group и LDAP базы, но это мелочи, т.к. в файле /etc/group
нет группы ftp_writer_1с, но при всем при этом команда chgrp (смена группы у файлика) видит мою группу ftp_writer_1с (она хранится только в базе LDAP)

Какже мне добавить пользователю, который изначально в системе, группу, которая была создана вот так:

Добавление группы осуществляется командой cl-groupadd:

 # добавить группу pubwriter
cl-groupadd pubwriter unix

???

Заранее спасибо!

cl-groupmod -a ftp_writer_1c alektronik unix

или

cl-usermod -a ftp_writer_1c alektronik unix

у всех команд есть опция --help

–help перечитана мной ни по одному разу …

Не может найти группу

 # cl-groupmod -a ftp_writer_1c alektronik unix
 * group name not found in Unix service


Но в LDAP она есть (ее нет только в файле /etc/group)
 # cl-info -g unix | grep ftp_writer_1с
| ftp_writer_1с | Calculate group   | 1005 |

Не может найти пользователя.

 # cl-usermod -a ftp_writer_1c alektronik unix
* User alektronik is not found in Unix service

Пользователь есть только в /etc/passwd

 # cl-info -U alektronik unix
Information about user alektronik for service Unix
+-------+-------+
| Field | Value |
+-------+-------+
+-------+-------+
(0 rows)

Т.е. в итоге группы нет в самой системе (/etc/group), но она есть в LDAP базе. Поэтому ни cl-groupmod, ни gpasswd не прокатывает.
А пользователь есть в /etc/passwd, но его нет в LDAP unix (в LDAP ftp - он есть).

Вот поэтому и интересуюсь какже выбраться из этой ситуевины!

Сорь за бунт

Порядок “группа-пользователь” немного не тот мне подсказали … хелпнул еще раз
Удалил пользователя на всякий из ftp и с помощью команды:

cl-groupmod -a alektronik ftp_writer_1c unix

Прокатило!

А вот:

cl-usermod -a ftp_writer_1c alektronik unix

НЕ прокатило.

Видимо так как “cl-”-команды изначально обрабатывают только свое (т.е. LDAP), то получается “cl-groupmod” может найти в ЛДАП базе изначально созданную в ней группу, а cl-usermod нет и соответственно понимает что добавлять нечего.
Эта проблемка в далльнейшем будет как-то решена? Может как-то синхронизацию групп и пользователей самой системы с LDAP unix?

А если допустим ситуация такая, что и пользователь и нужная группа изначально созданы в самой системе и в LDAP базах нету информации ни о группе ни о пользователе … ВСЕ НАКРОЕТСЯ МЕДНЫМ ТАЗОМ … :(((

Вариант решения

1. Удалить пользователя alektronik из /etc/passwd

userdel alektronik

2. Добавить его с нужной первичной группой в unix сервис

cl-useradd -g ftp_writer_1c alektronik unix

Плохо … значит вывод один - лучше для ftp не создавать пользователей с уже существующими в системе именами!!! Удаление из passwd не катит, т.к. я под ним сижу, если потом мне захочется удалить сервисы кулькулейта …

И последний вопросик:
Пользователь у меня находится в нескольких группах unix, но его главная группа в ftp прописана как его родная в системе и он не может писать в директории тех дополнительных групп. Т.е. получается что права начинают действовать если главной группой ему присвоена такая же как на папке группа. Получается если в LDAP ftp нет доп. групп (а они там не предусмотрены на сколько я понял), то LDAP unix ему не указ со своими прописанными доп группами. :frowning: Это так или я что-то напутал?
Пример ниже:

 # cl-info -u --full unix
All users in LDAP for service Unix
+------+--------+----------------+------+---------+-------------------+----------------+-----------+----------+----------------------+-----------+------+
| ID   | Login  | Name           | Lock | Visible | Primary group     | Home directory | Shell     | Password | Last change password | Jabber ID | Mail |
+------+--------+----------------+------+---------+-------------------+----------------+-----------+----------+----------------------+-----------+------+
| 1001 | 1с     | Calculate user | No   | No      | ftp_writer_1с     | /home/1с       | /bin/bash | No       | 20.01.2010           | No        | No   |
+------+--------+----------------+------+---------+-------------------+----------------+-----------+----------+----------------------+-----------+------+
(1 rows)
web ftp # cl-info -g --full unix
All groups in LDAP for service Unix
+-------------------+-------------------+------+------------------+
| Group             | Name              | GID  | Member UID       |
+-------------------+-------------------+------+------------------+
| ftpdomain         | Default FTP Users | 1001 | No               |
| ftp_writer_all    | Calculate group   | 1004 | 1с               |
| ftp_writer_1с     | Calculate group   | 1005 | 1с               |
+-------------------+-------------------+------+------------------+
(3 rows)

ls -l
total 0
drwxr-xr-x 2 root root               48 2010-01-22 06:57 anonymous
drwxrwx--- 4 root ftp_writer_1с     184 2010-01-22 07:17 1с
drwxrwx--- 2 root ftp_writer_all     48 2010-01-18 18:25 pub
drwxrwxr-x 2 root ftp_writer_all     48 2010-01-18 18:25 tmp

Это так.

Могу предложить переустановить proftpd добавив ключ acl при установке.
(acl был отключен для устранения проблем доступа к публичной директории пользователя аnonymous)

USE="acl" emerge proftpd

Затем используйте ACL в файловой системе и проблема будет решена.

Небольшое замечание: если пакет calculate-server будет обновлен или переустановлен он потребует отключить ключ acl у пакета proftpd. В вашем случае нужно еще раз переустановить proftpd добавив ключ acl при установке.

Alexey Samoukin wrote:

(acl был отключен для устранения проблем доступа к публичной директории пользователя аnonymous)

А если анонимусу выделить отдельную хоум папку … в корень тогда поидее при всем желании не пролезет … поидее!
Как думаете??? Есть в планах как-нибудь доточить работу ФТП-сервера?