Ранее мы писали о том, как в Mac OS X предоставить не административному пользователю возможность управления принтерами. Всего-то и надо, что добавить его учетную запись в группу lpadmin, на локальной машине это делается простой командой:
dseditgroup -o edit -n . -a $USER -t user lpadmin
Если в организации больше одного компьютера, возникает соблазн выполнить ее на всех машинах сразу при помощи Send UNIX Command в Apple Remote Desktop. Однако, если выполнять команду от имени текущего пользователя, то у него не хватит прав для изменения локального каталога. Если же делать это от имени администратора, то в группу lpadmin будет добавлена его учетная запись вместо пользовательской.
Что же делать? В Mac OS X при интерактивном входе в систему создается процесс loginwindow, запущенный от имени пользователя, выполнившего вход. Достаточно найти его в списке процессов, вычленить имя учетной записи, от которой он выполняется, и использовать вместо переменной $USER:
ps aux | grep loginwindow | grep -v grep | awk ‘{ print $1 } ‘ | xargs -I {} dscl . append /Groups/lpadmin GroupMembership {}
Остается только разослать от имени root приведенную выше команду на все 300 компьютеров и навсегда (ха!) забыть о проблемах, связанных с управлением принтерами.