Страница 1 из 1

бэкап - rsync, jail, ACL

Добавлено: 2010-12-22 13:11:50
dmtr
скрипт бэкапа запускается на основной системе и бэкапит данные jail на отдельный винт.
в jail ACL установлены

Код: Выделить всё

[web]# getfacl project
# file: project
# owner: username
# group: groupname
user::rwx
user:www:rwx
group::rwx
group:www:rwx
mask::rwx
other::---
винт бэкапов смонтирован также с опцией acls. проблема в том что rsync не переносит ACL

rsync запускается с ключами

Код: Выделить всё

rsync -aAv --ignore-errors --delete --delete-excluded --exclude-from="$EXCLUDES"
в /var/mail/root пишется

Код: Выделить всё

rsync: set_acl: sys_acl_set_file(clients/project, ACL_TYPE_ACCESS): Operation not supported (45)
rsync: set_acl: sys_acl_set_file(clients/project, ACL_TYPE_DEFAULT): Operation not supported (45)
rsync: set_acl: sys_acl_set_file(clients/project/host.conf, ACL_TYPE_ACCESS): Operation not supported (45)
rsync: set_acl: sys_acl_set_file(clients/project/nginx.conf, ACL_TYPE_ACCESS): Operation not supported (45)
rsync: set_acl: sys_acl_set_file(clients/project/cgi-bin, ACL_TYPE_ACCESS): Operation not supported (45)
rsync: set_acl: sys_acl_set_file(clients/project/cgi-bin, ACL_TYPE_DEFAULT): Operation not supported (45)
в man rsync говорится:

Код: Выделить всё

 -A, --acls
              This option causes rsync to update the destination  ACLs  to  be
              the same as the source ACLs.  The option also implies --perms.

              The  source  and  destination  systems  must have compatible ACL
              entries for this option to work properly.  See the  --fake-super
              option for a way to backup and restore ACLs that are not compat-
              ible.
в чем может заключаться "incompatible ACL entries"?

Re: бэкап - rsync, jail, ACL

Добавлено: 2010-12-22 22:51:41
unix-admin
rsync запускается внутри клетки?
отдельный винт примонтирован в клетке ?

Re: бэкап - rsync, jail, ACL

Добавлено: 2010-12-23 9:53:28
Alex Keda
его когда собираешь галочка есть - про ACL как раз

Re: бэкап - rsync, jail, ACL

Добавлено: 2010-12-23 10:55:42
dmtr
rsync запускается внутри клетки?
отдельный винт примонтирован в клетке ?
запускается на основной системе, отдельный винт смонтирован на основной системе. каталог бэкапов смонтирован в jail через nullfs
его когда собираешь галочка есть - про ACL как раз

Код: Выделить всё

# cat /var/db/ports/rsync/options|grep ACL
WITH_ACL=true

Re: бэкап - rsync, jail, ACL

Добавлено: 2010-12-23 11:37:51
unix-admin
пользователи/uid-ы не пересекаются в основной системе и jail ?

Re: бэкап - rsync, jail, ACL

Добавлено: 2010-12-23 12:02:54
dmtr
нет

Re: бэкап - rsync, jail, ACL

Добавлено: 2010-12-23 12:50:54
unix-admin
Значит смотрите, что у вас с правами

Код: Выделить всё

The  source  and  destination  systems  must have compatible ACL entries for this option to work properly. 

Re: бэкап - rsync, jail, ACL

Добавлено: 2010-12-23 13:19:46
dmtr
э... собственно в первом посте вопрос сформулирован
в чем может заключаться "incompatible ACL entries"?

Re: бэкап - rsync, jail, ACL

Добавлено: 2010-12-23 13:29:12
unix-admin
в том, что в source и destination разные ACL

Re: бэкап - rsync, jail, ACL

Добавлено: 2010-12-23 14:05:51
dmtr
ладно, сдаюсь, попробую --fake-super

Re: бэкап - rsync, jail, ACL

Добавлено: 2010-12-23 14:39:19
unix-admin
Сдавайся уже до конца...
Зачем тогда вообще использовать acl?

Re: бэкап - rsync, jail, ACL

Добавлено: 2010-12-23 15:23:23
dmtr
эта, когда тогда?

Re: бэкап - rsync, jail, ACL

Добавлено: 2010-12-24 0:16:11
unix-admin
dmtr писал(а):эта, когда тогда?
Когда нет возможности поиграться (попробовать запустить ту же команду хотя бы в др. директорию, или для др. директории).

Кстати, из man rsync:

Код: Выделить всё

        -a, --archive               archive mode; equals -rlptgoD (no -H,-A,-X)

Re: бэкап - rsync, jail, ACL

Добавлено: 2010-12-24 10:16:11
dmtr
no -H,-A,-X
значит, что эти опции не включены или несовместимы? я так понял что не включены, и если надо, то указывать дополнительно

Re: бэкап - rsync, jail, ACL

Добавлено: 2010-12-24 10:40:53
dmtr
--fake-super не помогла, но проблема походу не в rsync, руками в основной системе тоже не ставится ACL

Код: Выделить всё

# setfacl -m u:2001:rw,g:2001:rw,m::rw host.conf
setfacl: acl_get_file() failed: Operation not supported
в jail ставится.

Re: бэкап - rsync, jail, ACL

Добавлено: 2010-12-24 10:48:47
dmtr

Код: Выделить всё

# man setfacl|grep acl_get_file
# man 3 acl|grep acl_get_file
что-то в манах про acl_get_file() ничего нету :cz2:

Re: бэкап - rsync, jail, ACL

Добавлено: 2010-12-24 11:00:59
unix-admin
dmtr писал(а):

Код: Выделить всё

# setfacl -m u:2001:rw,g:2001:rw,m::rw host.conf
setfacl: acl_get_file() failed: Operation not supported
в jail ставится.
да, и я это уже вот тут увидел:
http://varsync.googlecode.com/svn-histo ... unk/acls.c:

Код: Выделить всё

		if (sys_acl_set_file(fname, type, duo_item->sacl) < 0) {
			rsyserr(FERROR_XFER, errno, "set_acl: sys_acl_set_file(%s, %s)",
				fname, str_acl_type(type));
			return -1;
		}
Ошибка происходит в процессе установки acl.

p.s. на счет -аА я погорячился, прошу прощения.

Re: бэкап - rsync, jail, ACL

Добавлено: 2010-12-24 11:42:28
dmtr
причем проблема не в системе, а c винтом для бэкапов.

/etc/fstab:

Код: Выделить всё

# Device                Mountpoint      FStype  Options         Dump    Pass#
/dev/mirror/gm0s1b      none            swap    sw              0       0
/dev/mirror/gm0s1a      /               ufs     rw              1       1
/dev/mirror/gm0s1d      /tmp            ufs     rw              2       2
/dev/mirror/gm0s1f      /usr            ufs     rw              2       2
/dev/mirror/gm0s1h      /usr/local      ufs     rw,userquota,groupquota,acls            2       2
/dev/mirror/gm0s1g      /usr/src        ufs     rw              2       2
/dev/mirror/gm0s1e      /var            ufs     rw              2       2
/dev/acd0               /cdrom          cd9660  ro,noauto       0       0
/dev/ad4s1d             /usr/local/_backup ufs  rw,acls         2       2
на файлы в /usr/local/ acl ставятся нормально, в /usr/local/_backup не ставятся

Код: Выделить всё

# fdisk -s /dev/ad4s1d
/dev/ad4s1d: 969015 cyl 16 hd 63 sec
Part        Start        Size Type Flags
   4:           0       50000 0xa5 0x80
# fdisk -p /dev/ad4s1d
# /dev/ad4s1d
g c969015 h16 s63
p 4 0xa5 0 50000
a 4
0xa5 - это же ufs2?

Re: бэкап - rsync, jail, ACL

Добавлено: 2010-12-24 13:41:20
dmtr
разобрался. не была включена поддержка acl для диска бэкапов.

строка в /etc/fstab

Код: Выделить всё

/dev/ad4s1d             /usr/local/_backup ufs  rw,acls         2       2
похоже была добавлена после создания раздела и монтирования руками /dev/ad4s1d, для следующих перезагрузок (которые так до сих пор и не последовали) :)

проблему решил установкой флага ACL в заголовке файловой системы:
при отмонтированном диске

Код: Выделить всё

# tunefs -a enable /dev/ad4s1d
tunefs: ACLs set
сейчас руками acl ставится, работу rsync с флагом -А покажет ночной бэкап ))

полезные ссылки
http://www.freebsd.org/doc/ru/books/han ... s-acl.html
http://www.opennet.ru/base/sec/freebsd_acl.txt.html

спасибо за помощь

Re: бэкап - rsync, jail, ACL

Добавлено: 2010-12-29 23:54:05
FiL
dmtr писал(а):винт бэкапов смонтирован также с опцией acls. проблема в том что rsync не переносит ACL
Вот так обычно и бывает. Человек с самого начала выдаёт ложные вводные, а потом долго мучается с тем, чтоб заставить нечто работать.