gifts2017

ubuntu + 1Cv8. Как правильно задать права доступа к базе в терминальном режиме

Опубликовал Виктор Пинчуков (viptextil) в раздел Администрирование - Защита, права, пароли

Очень часто возникает проблема с установкой прав доступа в Linux. Один пользователь заходит в базу 1С нормально, а вот второго уже не пускает. Решение проблемы очень простое.

Статья предназначена для начинающих сисадминов, которые молодцы и переходят с Windows server на Ubuntu server.

Вы установили терминальный сервер с помощью статьи Установка терминального сервера на базе Ubuntu Server 12.04 LTS 64-bit для работы c платформой 1C 8.3. и у Вас возникают проблемы с запуском 1С.  Или не пускает второго и последующего пользователя.

Самая главная проблема, из-за которой возникает данная ошибка, это неправильно выставленная маска umask

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

Запустите терминал под обычным пользователем  и наберите

umask

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

Под администратором нужно отредактировать два файла

/etc/pam.d/common-session

/etc/pam.d/common-session-noninteractive

и отредактировать строку session    optional     pam_umask.so к виду

session    optional     pam_umask.so umask=0002

Перегрузите сервер и снова проверьте umask под обычным пользователем. Результат должен быть 0002

Далее нужно просто установить права доступа на программу и базы.

 

Предполагаем, что программа установлена в каталог /opt/1C

Базы находятся в в каталоге /usr/local/1c_bases

Тогда устанавливаем пользователя и группу на каталог и подкаталоги программы

sudo chown -R usr1cv8:grp1cv8 /opt/1C

устанавливаем права доступа и владельцев на каталоги и подкаталоги баз данных

sudo chown -R usr1cv8:grp1cv8 /usr/local/1c_bases

sudo chmod -R g+sw /usr/local/1c_bases


Ну, и конечно, все пользователи, которые работают с 1С, должны принадлежать группе grp1cv8.


Все, можно работать. А как настроить печать, я написал в этой статье.

См. также

Подписаться Добавить вознаграждение
Комментарии
1. Олег Дмитров (baracuda) 02.04.16 08:47
Спасибо, позновательно. Наверное в скором времени решусь поставить 1с на Linux.
2. Виктор Пинчуков (viptextil) 04.04.16 08:51
(1) baracuda, Ставьте обязательно. Только сначала тестируйте. Там не все функции работают так как в винде.Есть определенные проблемы. Но разработчики программу дорабатывают. Так что пробовать нужно. Возможно, скоро все будем работать на чем-то вроде Linux.
3. Антонио (Fragster) 05.04.16 10:23
(1) baracuda, сейчас в линуксе намного проще через веб-сервер и тонкий клиент работать.
4. Виктор Пинчуков (viptextil) 05.04.16 12:10
(3) Fragster, А файловый режим при этом поддерживается?
5. Антонио (Fragster) 05.04.16 16:00
6. Пётр Сидоров (jeromi) 16.06.16 19:26
Я не далее как три дня назад ставил файловый вариант Бух.8.3 (x64) на Ubuntu Server 16.04.
Да, действительно, с правами на Linux всё жестко. Особенно, после входа через web клиента, файлам блокировки присваивался владелец www-data.
Я папке базы 1с присвоил права:
Чтение: Владелец и группа
Запись: Владелец и группа.
При этом, база закачивалась под первым созданным пользователем Ubuntu - user. К нему в группу я добавил, всех других создаваемых пользователей и www-data.
А в группу www-data - этих же пользователей и user.
www-data создаёт 1с при публикации веб сервера.
Пользователя grp1cv8 и его группу при администрировании я никак не задействовал.
7. Пётр Сидоров (jeromi) 16.06.16 23:19
Уточняю свой пост выше.
Сейчас получил лицензию на одного пользователя, к сожалению, при регистрации 1С в Ubuntu не было кнопки регистрации сетевой лицензии (5комп.) сразу на комп, надо регистрировать отдельно на каждого пользователя.
И так, пользователя www-data создает апач и если заходить через web браузер на 1с, то файлы блокировки создаются от его имени. Первую лицензию я получил для пользователя term1, поэтому web доступ не работал. Я изменил в /etc/apache2/envvars
export APACHE_RUN_USER=www-data
export APACHE_RUN_GROUP=www-data
на своего term1
и вставил строку в этот файл, чтоб апач создавал файлы с правами 666 на файлы и 777 на папки:
umask 000
web доступ к 1с заработал.
8. Пётр Сидоров (jeromi) 17.06.16 01:13
Дополнение.
web доступ заработал, только если пользователь term1 не был в терминальной сессии.
export APACHE_RUN_USER=www-data
export APACHE_RUN_GROUP=www-data
www-data в файле etc/apache2/envvars я вернул назад, umask 000 оставил.
зарегистрировал вторую лицензию на пользователя, лицензии складываются в пользовательский профиль:
/home/Пользователь/.1cv8/1C/1cv8/conf (включите показ скрытых файлов)
я их перенёс, в папку /var/1C/licenses
!!НЕ Копировать!!, (для сохранности можно за архивировать) если 1С при запуске найдёт на компе две одинаковые лицензии, будет ругаться.
Теперь одновременно может работать один терминальный + один web.
Более лицензии активировать не стану, пусть бухи потренируются.
Спасибо, viptextil, наставил меня командой umask на путь истинный. :)
9. Виктор Пинчуков (viptextil) 17.06.16 09:48
(8) jeromi, Я не использую web доступ к базе, но все же, может стоило попробовать
export APACHE_RUN_USER=usr1cv8
export APACHE_RUN_GROUP=grp1cv8
10. Пётр Сидоров (jeromi) 17.06.16 15:17
(9) viptextil, может быть, если бы мне удалось активировать лицензию (5комп) "На этот компьютер", но 1С дала только "Для текущего пользователя".
Но думаю, что не получится, так как при web доступе, апач создаёт файл блокировки 1Cv8.1CL c правами на
чтение: Владелец и группа , а вот запись: только Владелец. , а надо бы Владелец и группа.
То есть, на запись и изменения были бы права только у usr1cv8 и для остальных база была бы залочена.
Так, что я поправил etc/apache2/envvars, внеся umask 000 и апач стал создавать файлы блокировок доступные на запись: Владельца + группа
1с базу я загружал на Ubuntu под именем user, он Владелец базы 1С, его группа выглядит так (/etc/group):
user:x:1000:term1,term2,term3,user,www-data
Сейчас заходим и с web браузера (2подключения) + терминально, всё гуд.
ещё раз, Спасибо за статью.
11. Виктор Пинчуков (viptextil) 20.06.16 10:18
(10) jeromi, владельца и группу файла всегда поменять можно. sudo chown Так что не важно, под каким пользователем загружалась база.
12. makus (makus) 24.08.16 13:28
Спасибо за статью!

Некоторые поправки (мое ИМХО):
1. Не уверен, что нужно менять владельцев на папку с самой платформой. Как они изменятся после ее обновления? Да и нужно ли это? Не уверен.
2. Очень важно устанавливать umask именно в /etc/pam.d, т.к. установка в ~/.bashrc, как я делал раньше, не помогает, файлы блокировок все равно создаются с неверными правами.
3. При этом, мне хватило установки umask=0007, как рекомендуется в документации Wine@ETERSOFT (да, у меня на терминале еще и 7-ка работает :)).
4. В той же документации от Этерсофта говорится, что нежелательно устанавливать sticky bit на файлы, но только на папки, поэтому я применил к папке с базами данных 8.3 скрипт setwineshare от Этерсофта, который устанавливает права на каталоги с базами в 2770 (rwxrws---). Ссылка на эту документацию.
13. Виктор Пинчуков (viptextil) 25.08.16 10:20
(12) makus, Да, правы Вы. Но только отсутствие прав доступа для всех периодически создает проблемы при расшаривании ресурсов через samba. А так, да, Вы правы.