Объявление

Хотите приглашение на сайт? Пишите: niikto@samovarchik.info


 

Статья в процессе, я еще "плаваю" в некоторых вопросах, но начало уже есть, значит можно выкладывать и обсуждать. Хочу описать каждый этап в мельчайших подробностях, но пояснения буду делать постепенно как и содержание, вещи которые я буду описывать могу показаться слишком банальны, но я делаю шпаргалку в первую очередь для себя, и людей которые в этом мало разбираются.

Хочу рассмотреть:
1. Общий ресурс с гостевым доступом и доступом через авторизацию + задать владельца для каталога + права на чтение и редактирование.
2. Возможные варианты автоматического резервного копирования файлов (бэкап полный + инкрементный)
3. Шифрование раздела или каталога который является общим ресурсом.
                                                                                     

Преднастройки:

Устанавливал debian6 с cd-диска, в локальной сети есть интернет-шлюз, поэтому на этапе установки настроил сетевой интерфейс и согласился установить все апдейты. На этапе установки выбрал:
Установить все в один раздел(рекоммендуется новичкам), из компонентов сервер ssh и gui, создал пользователя user.

1. Для удобства можно отключить устройства ввода/вывода и перейти к удаленной настройке по ssh. Создаю новую сессию в putty
Category->window->translation remote character set-> UTF-8  для корректного отображения кириллицы
Category->session вписываю ip/hostname 192.168.1.10, Connection type: SSH, Saved Sessions: debian жму кнопку save.
Теперь я всегда смогу создать новую сессию с заданными параметрами.

Все дальнейшие действия я буду делать авторизовавшись как root.

2. Следующий обязательный этап как мне кажется необходимо закомментировать cdrom в /etc/apt/source.list, чтобы при выполнении установке пакетов через apt-get install обращение было не к cdrom, а сразу к репозиториям.

nano /etc/apt/source.list

#deb cdrom:[Debian GNU/Linux 6.0.7 _Squeeze_ - Official i386 CD Binary-1 20130223-13:15]/ squeeze main

                                                                                     

Настройка Samba:

3. Устанавливаю необходимые пакеты
apt-get update
apt-get install samba

Перед началом редактирования /etc/samba/smb.conf переименую его:
mv /etc/samba/smb.conf /etc/samba.smb.conf.old
Пускай лежит в том же каталоге на всякий случай.
Создаю новый smb.conf
nano /etc/samba/smb.conf

4. Рассмотрим пример с расшаренным каталогом  /home/user/data
создаем mkdir /home/user/data
Даже если рашарить этот каталог никто не сможет создавать/удалять и редактировать файлы находящиеся а нем, кроме владельца каталога-родителя. Переходим в целевой каталог cd /home/user/data/. Командой chmod -R 777 * изменяем права доступа к каталогу и всем дочерним объектам рекурсивно. Теперь каждый пользователь может создавать/удалять и редактировать файлы в /home/user/data ( про chmod на wiki)

Расшариваю с помощу samba:

/etc/samba/smb.conf

[global]
workgroup = WORKGROUP
server string = %h
security = share
guest ok = yes
unix charset = utf8
dos charset = cp1251
display charset = cp1251

[data]
path = /home/user/data
guest ok = Yes
guest only = Yes
writeable = Yes

Применяю изменения в конфигурации
/etc/init.d/samba restart

5. Второй вариант конфигурации более подходит для корпоративных хранилищ, в этом примере есть три пользователя: user1, user2, user3. Причем user2 и user3 должны иметь полный доступ только к своим каталогам, и не иметь доступа к каталогам других пользователей. user1 должен иметь полный доступ нетолько в свой каталог, но и в каталог других пользователей.

mkdir /home/user/data

Создадим каталоги пользователей:

mkdir /home/user/data/user1
mkdir /home/user/data/user2
mkdir /home/user/data/user3

cd /home/user/data/. Командой chmod -R 777 * изменяем права доступа к каталогу и всем дочерним объектам рекурсивно.

Создадим пользователей в системе:

useradd -c "user1" -s /sbin/nologin user1
useradd -c "user2" -s /sbin/nologin user2
useradd -c "user3" -s /sbin/nologin user3

а затем в базе данных samba:

smbpasswd -a user1
password:

smbpasswd -a user2
password:

smbpasswd -a user3
password:

nano /etc/samba/smb.conf

[global]
workgroup = WORKGROUP
server string = %h server
security = user
guest ok = no
unix charset = utf8
dos charset = cp1251
display charset = cp1251

[user1]
browsable = yes
path = /home/user/data/user1
valid users = user1
write list = user1

[user2]
browsable = yes
path = /home/user/data/user2
valid users = user1, user2
write list = user1, user2

[user3]
browsable = yes
path = /home/user/data/user3
valid users = user1, user3
write list = user1, user3

Применяю изменения в конфигурации
/etc/init.d/samba restart

                                                                                     

Автоматическое резервное копирование

Итак предположим нужно один раз в сутки делать полный бэкап каталога /home/user/data в каталог /home/user/data/backup
Разовый бэкап можно сделать командой:

tar --create --ignore-failed-read --one-file-system --preserve-permissions --recursion --preserve-order --sparse --totals --wildcards --gzip --file=/home/user/backup/`date +%F--%H-%M`.tar.gz /home/user/data

cron может автоматизировать этот процесс, но нужен скрипт в тело которого можно поместить команду tar
nano /home/user/backup.script

#!/bin/
tar --create --ignore-failed-read --one-file-system --preserve-permissions --recursion --preserve-order --sparse --totals --wildcards --gzip --file=/home/user/backup/`date +%F--%H-%M`.tar.gz /home/user/data
Описание параметров tar

http://alex-at.ru/linux/tar-linux

1. /bin/tar - собственно, путь к нашему архиватору, если у вас архиватор в другом месте - укажите правильный путь.
2. --create - говорит, что мы создаем архив.
3. --ignore-failed-read - игнорируем файлы, которые не удалось прочитать, вместо останова с ошибкой - бэкап обычно идет автоматически, и лишние сбои бэкапа нам ни к чему.
4. --one-file-system - запрещает бэкапу выходить за пределы файловой системы. Вы спросите, почему бы нам не убрать эту опцию, и не бэкапить все целиком, указав в качестве пути корень (/). Да потому, что в этом случае в бэкап попадет все содержимое системных файловых систем - /dev /proc /sys, и т.д., чего нам в принципе не нужно, и что может послужить поводом для лишних ошибок в процессе развертывания архива. Не-корневые файловые системы со вложенными файловыми системами вы можете смело бэкапить рекурсивно и целиком, убирая этот параметр, но корневую файловую систему без грамотного создания списка исключений так бэкапить нельзя.
5. --preserve-permissions - эта опция говорит архиватору, что мы хотим сохранить все разрешения сохраняемых файлов.
6. --recursion - мы выполняем бэкап всех файлов и каталогов по указанному пути, а также всех файлов и каталогов всех подкаталогов.
7. --preserve-order - при бэкапе мы сохраняем порядок файлов в каталогах, чтобы после восстановления иметь более-менее точные копии и самих каталогов тоже.
8. --sparse - файлы с наличием "пустот" сохраняем именно с указанием мест и длин пустот, а не как файлы с огромным набором нулей.
9. --totals - в конце процесса выводим информацию о том, сколько данных мы сохранили.
10. --wildcards - разрешаем использовать маски (* и ?) в списке исключений - см. ниже.
11. --verbose - вывод подробной информации о процессе. Если вы не ведете лог, или вас не привлекает перспектива видеть весь список сохраняемых файлов на экране - уберите данный параметр.
12. --gzip - сжимаем архив с помощью GZIP. Если не нужно - уберите. --bzip2 не рекомендую, на практике он не дал выигрыша более 10% при сжатии разнородных данных, а вот потери во времени составили около 80%. Однако, если в сжимаемой файловой системе полно текстовых файлов - логи, например - можете попробовать, на тексте он дает ощутимое преимущество.
13. --file=файл_бэкапа - этот параметр указывает путь к создаваемому файлу бэкапа. Убедитесь, что сам этот путь не попадет в бэкап - а лучше - добавьте путь к файлам бэкапа в список исключений.
14. --listed-incremental=файл_метаданных - этот файл управляет говорит, что мы создаем именно бэкап, и управляет уровнем нашего бэкапа. Подробнее смотрите ниже.
15. --exclude-from=файл_исключений - этот файл содержит список исключений - файлов и каталогов, которые не попадут в бэкап. Пути указываются относительно основного пути бэкапа, без начального слеша. Т.е. если мы бэкапим корень (/) и хотим исключить всю папку /backup - пишем просто backup. Допускаются маски, причем на любых уровнях. Допустим, мы бэкапим каталог /www, в котором находятся подкаталоги пользователей, в которых находятся подкаталоги logs, файлы из которых мы не хотим включать в бэкап. Дописываем в файл исключений строчку */logs/*. Вуаля, сами каталоги вида пользователь/logs в бэкап попадают, а вот файлы из них, и подкаталоги - нет.
16. путь_который_бэкапим - это корневой путь, который мы бэкапим. Если бэкапим каталог /www - так и указываем: /www.

Теперь команду tar ... можно выполнить, выполнить гораздо проще
sh /home/user/backup.script
И каждые сутки cron будет делать это за меня, я лишь задам ему расписание:

crontab -u root -e

* */23 * * * /home/user/backup.script
Как работает cron

* * * * * выполняемая команда
- - - - -
| | | | |
| | | | ----- День недели (0 - 7) (Воскресенье =0 или =7)
| | | ------- Месяц (1 - 12)
| | --------- День (1 - 31)
| ----------- Час (0 - 23)
------------- Минута (0 - 59)

/etc/init.d/cron restart

Редактировался viktor (16.11.2013, 18:39:56)

По поводу резервного копирования, а что если пользователь работает с базой данных 1С и некоторые файлы в ней заблокированы, tar --ignore-failed-read просто пропустит эти файлы или можно их скопировать? В Acronis и Cobain backup в этом случае можно применить теневое резервное копирование, (я таким способом раздел с работающей Windows бэкапил).

Редактировался viktor (30.06.2013, 21:40:54)

Иногда в windows при доступе к расшаренному каталогу необходимо быстро разлогинится одним пользователем и залогинится другим, но windows некоторое время продолжает помнить учетные данные после первой авторизации, даже если не ставить галочку "запомнить". Для того, чтобы быстро разлогинится в cmd пишем net use * /delete.

Если всеже поставили галочку сохранить учетные данные удалить их их хранилища паролей:
в windows7 cmd->control userpasswords2->вкладка дополнительно->управление паролями-> удаляем учетные данные из списка

Редактировался viktor (28.07.2013, 20:49:32)

Все действия выполняются на виртуальной машине, предварительно сделав бэкап. Но в virtualbox не возможно добавить сделанную копию машины в список, из-за совпадающих uuid виртульного жесткого диска существующей и добавляемой машины, даже если предварительно сменить uuid на добавляемой машине, то всеравно будет конфликт при добавлении. Возможно только создание новой машины с резервной копией жесткого диска на которей поменян uuid.

Смена uuid виртуального жесткого диска в cmd windows

cd C:\Program files\Oracle\VirtualBox
vboxmanage intrnalcommands sethduuid "D:\debian\debian.vdi"

http://www.youtube.com/watch?v=y4mmQv-iHlI

В окне менеджера "Файл-> экспорт конфигурации" делает бэкап виртуального жесткого диска и конфигурации оборудования, правда исходный жесткий диск был с расширением .vdi, а после восстановления конфигурации стал .vmdk

Редактировался viktor (04.08.2013, 02:10:19)

 

Дизайн сайта отсутствует
оформление: Группа «САМОВАРчик»

[ Сгенерировано за 0.013 сек, 8 запросов выполнено - Использовано памяти: 1.91 MiB (Пик: 1.97 MiB) ]