Debian, Dojo, Django, Python

Делюсь опытом в описанных технологиях. Блог в первую очередь выполняет роль памяток для меня самого.

Установка и настройка ProFTPd в Ubuntu

Комментариев нет

I. Установка и настройка сервера.

Все действия производятся от имени root.

  1. Ставим:

    apt-get install proftpd
  2. Указываем, как запускать, через inetd (маленькая нагрузка) или самостоятельно (десятки пользователей). Если выбрать inetd, то сервер, скорее всего, не стартанёт. Этот глюк был замечен мной и на Ubuntu Server 12.04.1, и на Debian 6.0.6. Если у вас то же самое, то смотрите ниже.

    vi /etc/proftpd/proftpd.conf

    Если надо, переименовываем сервер:

    ServerName "Ultimate Super Mega FTP Server"

    Меняем ServerType, если он не запускается как демон inetd

    ServerType standalone

    Раскомментируем вот эту строку, чтобы разрешить пользователям работать только в своих домашних каталогах.

    DefaultRoot ~

    Разрешаем пользователям пользоваться FTP, даже если им запрещено логиниться в системе:

    RequireValidShell off
  3. После всех настроек не забываем перезапустить демон proftpd

    /etc/init.d/proftpd restart

    Также работает команда

    service proftpd restart

    Сервер готов к использованию.

Добавление пользователей.

У нас есть рабочий FTP-сервер, необходимо добавить его пользователей. Пусть все они, для удобства, хранят свои данные в каталоге /var/ftp/%имя_пользователя%. Добавим одного такого пользователя, создав для подобных ему группу ftp_users.

  1. Создадим группу:

    addgroup ftp_users
  2. Добавим пользователя ftp01, указав расположение его домашнего каталога, оболочку, запрет на вход в систему и группу.

    adduser ftp01 --home /var/ftp/ftp01 --shell /bin/false --disabled-login --ingroup ftp_users
  3. Зададим пароль свежесозданному пользователю (на экране не будет видно ничего, даже звездочек):

    passwd ftp01
    Password:
    Confirm password:
    Password succesfully changed.

Комментариев нет :

Отправить комментарий

Установка и настройка PostgreSQL в CentOS

Комментариев нет

По-умолчанию в CentOS 6.4 идет Postgresql версии 8.4. Нам не надо такую старую, поэтому первым делом нужно добавить официальный репозиторий и запретить установку старых пакетов. Все операции выполняются под root'ом.

Идем сюда и смотрим ссылку на последнюю стабильную версию для CentOS. На момент написания статьи это была версия 9.2, ссылка на пакет была такой

Скачиваем его командой wget:

wget http://yum.postgresql.org/9.2/redhat/rhel-6-x86_64/pgdg-centos92-9.2-6.noarch.rpm

Если система выдает сообщение, что wget - неизвестная команда, его нужно установить:

yum install wget -y

После успешной установки повторяем запрос. Итак, Файл репозитория скачался, пора его импортировать:

rpm -i pgdg-centos92-9.2-6.noarch.rpm

Теперь необходимо запретить системе устанавливать старые пакеты из стандартного репозитория. Открываем любым редактором файл /etc/yum.repos.d/CentOS-Base.repo и добавляем в секции [base] и [updates] строку

exclude=postgresql*

Должно получиться примерно так (комментарии удалены):


[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
exclude=postgresql*

[updates]
name=CentOS-$releasever - Updates
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
exclude=postgresql*

[extras]
name=CentOS-$releasever - Extras
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras
#baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

[centosplus]
name=CentOS-$releasever - Plus
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus
#baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

[contrib]
name=CentOS-$releasever - Contrib
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=contrib
#baseurl=http://mirror.centos.org/centos/$releasever/contrib/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

Теперь нужно обновить локальную копию списка пакетов:

yum update

А вот теперь можно установить сервер:

yum install postgresql92-server -y

Теперь сервер нужно настроить. Инициализируем его:

service postgresql-9.2 initdb

и добавим в автозагрузку:

chkconfig postgresql-9.2 on

Все настройки сервера хранятся в каталоге /var/lib/pgsql/9.2/data/. Отредактируем файл pg_hba.conf

vim /var/lib/pgsql/9.2/data/pg_hba.conf

В этом файле несколько строк, которые отвечают за параметры доступа к серверу. Следует обратить внимание на строку

local   all   all   ident

Не вдаваясь в детали скажу, что эта строка разрешает подключение локальных пользователей к серверу без ввода логина и пароля, если пользователь авторизован в системе. Пока не будем ничего менять, вернемся сюда позже. Сейчас нужно войти в систему под именем пользователя postgres:

su postgres

Запускаем оболочку psql

bash-4.1$ psql

Нас пускают без ввода пароля, выдавая окно приветствия:

psql (9.2.4)
Введите "help", чтобы получить справку.

postgres=#

Зададим пользователю postgres пароль, чтобы иметь возможность более простым способом авторизоваться в СУБД. Ввод точки с запятой в конце команды обязателен.

ALTER ROLE postgres WITH PASSWORD 'postgres';

Система ответит:

ALTER ROLE

Можно покинуть интерпретатор, для этого вводим в консоли команду

postgres=# \q

Выходим из-под пользователя postgres:

bash-4.1$ exit

Теперь внесем изменения в вышеуказанный файл pg_hba, приведя его примерно к такому виду:

# "local" is for Unix domain socket connections only
local   all             all                                     md5
# IPv4 local connections:
host    all             all             127.0.0.1/32            md5
host    all             all             192.168.1.2/32          md5

Первая строка разрешает подключение к СУБД для всех локальных пользователей, но при этом требует с них ввод пароля. Вторая делает практически то же самое, но мы эту строку оставим для того, чтобы подключаться к СУБД могли даже те пользователи, у кого нет системной учетной записи, а есть только роль в СУБД. Например, Вы добавили несколько баз данных и указали для них владельцев, но при этом не хотите, чтобы они имели возможность входить в систему. При этом эти люди не будут ограничены в работе со своей базой данных.

Последняя строка разрешает подключаться к любой базе любому пользователю с адреса 192.168.1.2, требуя взамен логин и пароль. Чтобы эта настройка работала, необходимо в файле postgresql.conf раскомментировать и изменить строку

#listen_addresses = 'localhost'

на

listen_addresses = '*'

Это заставит СУБД слушать все сетевые интерфейсы в поисках входящих подключений. Удобно (и очень опасно), если Вы хотите управлять СУБД через pgAdmin удаленно. Остальные настройки можно оставить по-умолчанию.

Перезапускаем службу:

service postgresql-9.2 restart

Если всё нормально, видим:

Останавливается служба postgresql-9.2:                     [  OK  ]
Запускается служба postgresql-9.2:                         [  OK  ]

Пробуем подключиться от имени пользователя postgres:

psql -U postgres

Поздравляю! Можете приступать к изучению консольных команд PostgreSQL. В самом простом случае Вам нужно будет создать пользователя СУБД и добавить для него базу данных. Запустите интерпретатор psql:

psql -U postgres

Введите команды:

CREATE ROLE abcd WITH PASSWORD 'dcba' LOGIN;
CREATE DATABASE aabbccdd WITH OWNER abcd;

Вы только что создали пользователя abcd с паролем dcba, разрешили ему вход в СУБД и добавили базу данных, указав, что ее владельцем является этот новый пользователь, т. е. он имеет все необходимые привилегии для работы с этой базой. Если захотите подключиться к БД aabbccdd от имени пользователя abcd, введите в консоли команду psql с вот этими ключами:

psql -U abcd -d aabbccdd

Если не указать ключ -d и имя БД следом за ним, PostgreSQL попытается подключиться к БД с тем же названием, что и имя текущего пользователя, не найдет ее и выдаст сообщение об ошибке.

Комментариев нет :

Отправить комментарий