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

Очень часто возникает проблема с установкой прав доступа в 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.


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

13 Comments

  1. baracuda

    Спасибо, позновательно. Наверное в скором времени решусь поставить 1с на Linux.

    Reply
  2. viptextil

    (1) baracuda, Ставьте обязательно. Только сначала тестируйте. Там не все функции работают так как в винде.Есть определенные проблемы. Но разработчики программу дорабатывают. Так что пробовать нужно. Возможно, скоро все будем работать на чем-то вроде Linux.

    Reply
  3. Fragster

    (1) baracuda, сейчас в линуксе намного проще через веб-сервер и тонкий клиент работать.

    Reply
  4. viptextil

    (3) Fragster, А файловый режим при этом поддерживается?

    Reply
  5. Fragster

    (4) viptextil, да

    Reply
  6. jeromi

    Я не далее как три дня назад ставил файловый вариант Бух.8.3 (x64) на Ubuntu Server 16.04.

    Да, действительно, с правами на Linux всё жестко. Особенно, после входа через web клиента, файлам блокировки присваивался владелец www-data.

    Я папке базы 1с присвоил права:

    Чтение: Владелец и группа

    Запись: Владелец и группа.

    При этом, база закачивалась под первым созданным пользователем Ubuntu — user. К нему в группу я добавил, всех других создаваемых пользователей и www-data.

    А в группу www-data — этих же пользователей и user.

    www-data создаёт 1с при публикации веб сервера.

    Пользователя grp1cv8 и его группу при администрировании я никак не задействовал.

    Reply
  7. jeromi

    Уточняю свой пост выше.

    Сейчас получил лицензию на одного пользователя, к сожалению, при регистрации 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с заработал.

    Reply
  8. jeromi

    Дополнение.

    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 на путь истинный. 🙂

    Reply
  9. viptextil

    (8) jeromi, Я не использую web доступ к базе, но все же, может стоило попробовать

    export APACHE_RUN_USER=usr1cv8

    export APACHE_RUN_GROUP=grp1cv8

    Reply
  10. jeromi

    (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подключения) + терминально, всё гуд.

    ещё раз, Спасибо за статью.

    Reply
  11. viptextil

    (10) jeromi, владельца и группу файла всегда поменять можно. sudo chown Так что не важно, под каким пользователем загружалась база.

    Reply
  12. makus

    Спасибо за статью!

    Некоторые поправки (мое ИМХО):

    1. Не уверен, что нужно менять владельцев на папку с самой платформой. Как они изменятся после ее обновления? Да и нужно ли это? Не уверен.

    2. Очень важно устанавливать umask именно в /etc/pam.d, т.к. установка в ~/.bashrc, как я делал раньше, не помогает, файлы блокировок все равно создаются с неверными правами.

    3. При этом, мне хватило установки umask=0007, как рекомендуется в документации Wine@ETERSOFT (да, у меня на терминале еще и 7-ка работает :)).

    4. В той же документации от Этерсофта говорится, что нежелательно устанавливать sticky bit на файлы, но только на папки, поэтому я применил к папке с базами данных 8.3 скрипт setwineshare от Этерсофта, который устанавливает права на каталоги с базами в 2770 (rwxrws—). Ссылка на эту документацию.

    Reply
  13. viptextil

    (12) makus, Да, правы Вы. Но только отсутствие прав доступа для всех периодически создает проблемы при расшаривании ресурсов через samba. А так, да, Вы правы.

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *