LINUX.ORG.RU

История изменений

Исправление 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