вторник, 20 декабря 2011 г.

Lubuntu 11.10 - расшарить "Общедоступные"

Преамбула: средний непродвинутый офисный пользователь, пересаженный из-под оффтопика =) в какую-нибудь linux-based desktop operating system, обычно хочет в числе прочего лазить по сети на другие машины и скидывать туда свои файлы / забирать выложенные / редактировать их прямо по сети - и не хочет задумываться о том, как именно это работает =)
В Ubuntu 10.04.3 LTS - до сих пор используем, консервативный и вылизанный Gnome 2 без сырых нововведений незаменим на машинах пользователей - это почти решалось средствами GUI (большинство уже знает - контекстное меню каталога, "Общий доступ", как именно это работает без прав администратора - искать по ключевым словам samba usershare). Почти - потому что у пользователей возникали естественные вопросы: "А почему это он мне файл в общедоступные положил, а я теперь его ни редактировать, ни стереть не могу?"
Всё правильно, права доступа. Да, Ubuntu хватает интеллекта назначить доступному для всех на чтение-запись каталогу права rwxrwxrwx. Но "net usershare ..." почему-то не умеет писать от имени владельца юзершары - по крайней мере, я не нашёл, как это сделать именно в юзершаре. По умолчанию nobody/nogroup, и права доступа тоже по умолчанию - право на запись имеет только владелец.
Обходил проблему указанием в /etc/samba/smb.conf глобальных директив (всё равно шара будет одна) create mask = 0666 и directory mask = 0777 - некрасиво, невозможно сделать средствами GUI и тяжело объяснять пользователям...
Сейчас пытаюсь переходить на Lubuntu - минималистичный такой desktop, libreoffice & thunderbird заменили на abiword+gnumeric & sylpheed (как минимум abiword не очень хорошо понимает документы word, но никто не мешает снести и поставить то, что удобно и привычно)... в общем-то есть всё, что действительно необходимо, и нет ничего лишнего!
Отличная вещь.
Юзершар - нет.
В смысле, нет плагина (или что там в нём) к PCManFM (файловый менеджер в Lubuntu), который умел бы делать юзершары из GUI.
В процессе поиска решения была найдена утилита system-config-samba, про которую я как-то раньше не знал =) Решение тоже не идеальное, но для одного пользователя получилось сделать общедоступный каталог и заставить самбу работать с этой шарой от имени самого пользователя, а не nobody. Что не очень хорошо с точки зрения безопасности =) , но раз уж допускаем нецентрализованный бардак с доступными на запись сетевыми каталогами у каждого пользователя, то чего уж тут... пусть так =)

Итак, пошаговая инструкция.
Терминал.
sudo apt-get install samba system-config-samba python-glade2
Последнее нужно для system-config-samba, эта утилита написана на питоне, и в пакет явно забыли добавить зависимость... Без python-glade2 из GUI system-config-samba запускается на долю секунды и сразу закрывается - даже сам факт запуска трудно заметить, как будто вообще ничего не происходит...
GUI.
Кнопка с ласточкой - Системные - Samba.
Ваш пароль. Предполагается, что ваш пользователь имеет права администратора. После установки Lubuntu единственный созданный в процессе установки пользователь их имеет =)
В открывшемся окне уже указан один общедоступный каталог, с названием ресурса print$. Чтобы он вам когда-то пригодился, у вас должен быть установлен принтер, в сети должны быть Windows-машины, которые нужно подключать по сети к этому принтеру и при этом обязательно автоматически устанавливать драйвер принтера... который ещё надо скачать с сайта CUPS и положить в print$, да не просто так, а выполнив дополнительные действия с конфигом самбы... В общем, интересующиеся читают man cupsaddsmb, а я у себя так никогда этого и не делал - тут слишком мало машин с Windows, и их можно просто напрямую подключить к CUPS - они умеют печатать через IPP (кроме Windows 7 Starter Edition, увы...)
Offtopic off =) Просто не трогайте этот ресурс, он стандартный системный.
Настройка - Параметры сервера. При желании можно указать workgroup - вашу машину будут видеть в этой рабочей группе, здесь сделал рабочие группы по комнатам, среди полусотни пользователей искать нужную машину стало удобнее =)
Опять оффтопик: имя машины самба берёт по умолчанию из имени хоста. Если почему-то надо его сменить - редактировать (с правами администратора, конечно) /etc/hostname и затем поправить в /etc/hosts хотя бы строку, в которой старое имя хоста и 127.0.1.1. Разумеется, чтобы имя сменилось в самбе, нужно перезапустить хотя бы самбу =)
Вкладка Безопасность. Режим аутентификации меняем на Ресурс. Гостевая учётная запись - ставим того пользователя, для которого создаём общедоступный каталог, это важно!!!
Нажимаете OK. Нажимаете зелёный плюс (или Файл - Добавить ресурс, то же самое). Каталог: нажимаете Обзор, находите от корня файловой системы /home/user/Общедоступные (а почему мы не в домашней папке пользователя? - а потому, что вы сейчас root! =), OK. Ставите птички Запись разрешена и Виден. Вкладка Доступ: включаете радиокнопку Предоставить доступ всем.
Всё.
Конфигурация сетевого каталога записана в /etc/samba/smb.conf, можно полюбоваться. Самба уже перезапущена. Доступ по сети к данному конкретному каталогу осуществляется с правами вашего пользователя, так что даже менять права доступа к папке Общедоступные не нужно...
Очевидный недостаток: если в системе два и более пользователя - "общедоступные" можно сделать только кому-то одному. Но в офисах в основном один пользователь, автоматически логинящийся в систему, под которым за компьютером может сидеть кто угодно, правда ?-)

Необходимый бантик. Запустите PCManFM ("Файловый менеджер"). Введите в строку адреса network:///, нажмите ввод - знакомая картина? Теперь выберите Закладки - Добавить закладку, и у вас будет что ответить на вопрос "а как тут в сеть зайти?"
smb:/// - это, насколько я понял, почти то же самое, но через network:/// ещё должны быть видны AFP-шары. Когда-то хотел попробовать сделать "Общедоступные" через AFP, но столкнулся с (забыл какими) трудностями. Если есть быстрый и аккуратный метод использовать AFP для того же, что здесь сделано через SMB - оставьте, пожалуйста, в комментах ссылку, и комьюнити будет вам благодарно ;)
Менее необходимый, но тоже нужный бантик: если вы хотите, чтобы при просмотре network:/// сразу показывались машины, принадлежащие не к рабочей группе WORKGROUP, а, например, к YOUR_WG - введите в терминале gconftool-2 -t string -s /system/smb/workgroup YOUR_WG

четверг, 7 июля 2011 г.

Установка Debian Squeeze на маршрутизатор - с самого начала

Всё предельно просто и прозрачно. Почти всё: на экране Software selection убираем птички не только с Graphical desktop environment, но и со Standard system utilities. Зачем? А зачем туда NFS server запихали по умолчанию? Вот и я не знаю. Но он мне не нужен, и я не хочу его после установки удалять - я хочу, чтобы он и не устанавливался. Туда же почтовый сервер... не факт, что именно на этой машине он нужен... но даже если и нужен - вместе со Standard system utilities ставится exim, а я привык к postfix и не вижу смысла менять удобный привычный инструмент.
При снятии этой птички теряем очень нужный мне less. Потом доставляю.
В результате получается не очень-то компактная система, больше 200 МБ - ну да ладно уже... вроде бы с помощью debootstrap можно установить "совсем базовую" систему Debian, вообще без лишних деталей... но необходимое количество телодвижений для настройки такой системы начинает резко возрастать - придётся вспомнить всё, что нужно с вашей точки зрения для нормальной работы системы... и это при том, что про большую часть этих пакетов вы обычно и не вспоминаете - ну вот rsyslogd, скажем :) логи пишутся как-то сами, да? :)))
Так что - остановился на вот таком варианте.
Мне нужен там и apache, и php, и mysql - но птички Web server и SQL database я не ставил. Апач мне нужен не тот, что по умолчанию, а mpm-itk. А вместо привычной программистам MySQL инсталлятор Debian ставит PostgreSQL... я не хочу сказать, что это плохо, но программисты почему-то хотят MySQL. Хотя, возможно, здесь это уже будет MariaDB...
Правда, вот птички DNS server и SSH server я поставил :) - тут вроде нормально... Вместе с bind9, правда, ставится lwresd, я пока не разбирался, нужен ли он - разрешение имён работает, и хорошо...
Результат меня почти устроил.
В первую очередь на установленной системе делаю sudo apt-get update && sudo apt-get upgrade - обновлений мало, но они есть ;) (опять какая-то дыра в bind9, насколько я помню...)
Затем устанавливаю пакеты less, bash-completion - удобнейшая вещь, под Ubuntu я очень привык к работе автодополнения не только по файловой системе, но и по командам того же apt-get. И, что ещё приятнее, именам устанавливаемых / удаляемых пакетов - не всегда я помню имя пакета с точностью до каждого символа, да и длинные они бывают, запомнить трудно, набирать долго =) И command-not-found - не настолько нужная вещь, да и немаленький python за собой зависимостью тянет, но вот нравится мне, когда в ответ на имя отсутствующей в системе команды bash не просто отвечает command not found, а выдаёт внятную и иногда очень уместную подсказку - какой пакет нужно поставить, чтобы команда появилась :)

В следующей серии - настройка интернет-подключения через pptp ;) Простая вещь, правда? Аккуратная, правильная настройка, полностью соответствующая идеологии построения системы Debian =)

Переход на Debian

Ну что тут поделаешь... Старый маршрутизатор на 2 провайдера + тестовый хостинг + файлопомойка + хранилище бэкапов, когда-то поднятый под Gentoo, окончательно себя изжил. Надо поднимать новый, сообразуясь с обновившимися требованиями...
Gentoo, конечно, замечательно компактно инсталлируется, и все пакеты вместе и каждый в отдельности замечательно легко настраиваются - именно так, как мне это надо... Но обновления системы вызывают проблемы - и почему-то со временем их становится всё больше и больше :( На переход на новую систему именования слотов php (сейчас можно в Gentoo держать в системе 5.2 и 5.3 одновременно и выбирать, какой из них будет использоваться, скажем, апачем или php-fpm...) я потратил довольно много нервов, например.
Так что было принято решение - новый маршрутизатор + итп будет под... Debian :)
Почему не Ubuntu Server? Ну... это долго писать... Но, собственно, Ubuntu - это ведь просто модифицированный Debian. Системы очень похожи, управление пакетами одинаковое... никаких проблем, если знаком с Ubuntu, работать с Debian. И наоборот ;)
Дальше будет серия маленьких заметок по установке и настройке Debian - по возможности стараясь не нарушать идеологию системы, а встраиваться в неё со своими потребностями =)