История изменений
Исправление constin, (текущая версия) :
В результате я решил подсовывать не только конфиг, но и папку /etc/cups целиком.
Может быть мой скрипт кому-нибудь пригодится.
Скрипт лежит в /etc/profile.d/
Требования: linux клиент интегрирован в ldap, те видит по getent ldap группы. В ldap пользователь имеет группу вида cups_XXXXX. Так же на шаре имеется папка темплейт с тем же названием, которую мы будем биндит. Скрипт имеет защиту от того, что польльователь по ошибке состоит в несколких группах cups или же не имеет вообще никакой. В первом случае ему выдаста одна их групп, во-втором случае он получит группу со всеми принтерами. Пользователь должен иметь sudo права без пароля на mount * и /etc/init.d/cups *
#/etc/profile.d/cups_template.sh
#avoid root
[ $USER == "root" ] && return 0
_CUPS () {
#getting user cups group
cups_groups=(`groups | grep -oh "cups_\w*"| sed 's/\@//g'`)
#choose last group if many.
for x in ${cups_groups[@]}; do cups_profile=$x; done
#check if template exist, place all printers if not exist
[ -d /mnt/_software/cups_groups/$cups_profile ] || cups_profile=cups_all
#mount cups template
sudo mount -o bind /mnt/_software/cups_groups/$cups_profile/ /etc/cups/
#restart cups
sudo /etc/init.d/cups restart
}
_CUPS
Исправление constin, :
В результате я решил, подсовывать не только конфиг, но и папку /etc/cups целиком.
Может быть мой скрипт кому-нибудь пригодится.
Скрипт лежит в /etc/profile.d/
Требования: linux клиент интегрирован в ldap, те видит по getent ldap группы. В ldap пользователь имеет группу вида cups_XXXXX. Так же на шаре имеется папка темплейт с тем же названием, которую мы будем биндит. Скрипт имеет защиту от того, что польльователь по ошибке состоит в несколких группах cups или же не имеет вообще никакой. В первом случае ему выдаста одна их групп, во-втором случае он получит группу со всеми принтерами. Пользователь должен иметь sudo права без пароля на mount * и /etc/init.d/cups *
#/etc/profile.d/cups_template.sh
#avoid root
[ $USER == "root" ] && return 0
_CUPS () {
#getting user cups group
cups_groups=(`groups | grep -oh "cups_\w*"| sed 's/\@//g'`)
#choose last group if many.
for x in ${cups_groups[@]}; do cups_profile=$x; done
#check if template exist, place all printers if not exist
[ -d /mnt/_software/cups_groups/$cups_profile ] || cups_profile=cups_all
#mount cups template
sudo mount -o bind /mnt/_software/cups_groups/$cups_profile/ /etc/cups/
#restart cups
sudo /etc/init.d/cups restart
}
_CUPS
Исправление constin, :
В результате я решил, подсовывать не только конфиг, но и папку /etc/cups целиком.
Может быть мой скрипт кому-нибудь пригодится.
Скрипт лежит в /etc/profile.d/
Требования: linux клиент интегрирован в ldap, те видит по getent ldap группы. В ldap пользователь имеет группу вида cups_XXXXX. Так же на шаре имеется папка темплейт с тем же названием, которую мы будем биндит. Скрипт имеет защиту от того, что польльователь по ошибке состоит в несколких группах cups или же не имеет вообще никакой. В первом случае ему выдаста одна их групп, во-втором случае он получит группу со всеми принтерами. Пользователь должен иметь sudo права без пароля на mount * и /etc/init.d/cups *
#avoid root
[ $USER == "root" ] && return 0
_CUPS () {
#getting user cups group
cups_groups=(`groups | grep -oh "cups_\w*"| sed 's/\@//g'`)
#choose last group if many.
for x in ${cups_groups[@]}; do cups_profile=$x; done
#check if template exist, place all printers if not exist
[ -d /mnt/_software/cups_groups/$cups_profile ] || cups_profile=cups_all
#mount cups template
sudo mount -o bind /mnt/_software/cups_groups/$cups_profile/ /etc/cups/
#restart cups
sudo /etc/init.d/cups restart
}
_CUPS
Исходная версия constin, :
В результате я решил, подсовывать не только конфиг, но и папку /etc/cups целиком.
Может быть мой скрипт кому-нибудь пригодится.
Скрипт лежит в /etc/profile.d/
Требования: linux клиент интегрирован в ldap, те видит по getent ldap группы. В ldap пользователь имеет группу вида cups_XXXXX. Так же на шаре имеется папка темплейт с тем же названием, которую мы будем биндит. Скрипт имеет защиту от того, что польльователь по ошибке состоит в несколких группах cups или же не имеет вообще никакой. В первом случае ему выдаста одна их групп, во-втором случае он получит группу со всеми принтерами. Пользователь должен иметь sudo права без пароля на mount * и /etc/init.d/cups *
#avoid root
[ $USER == "root" ] && return 0
_CUPS () {
cups_groups=(`groups | grep -oh "cups_\w*"| sed 's/\@//g'`) # #getting user cups group
for x in ${cups_groups[@]}; do cups_profile=$x; done #choose last group if many.
[ -d /mnt/_software/cups_groups/$cups_profile ] || cups_profile=cups_all #check if template exist, place all printers if not exist
sudo mount -o bind /mnt/_software/cups_groups/$cups_profile/ /etc/cups/ #mount cups template
sudo /etc/init.d/cups restart
}
_CUPS