Thiết lập

Đầu tiên, bạn cần xem các quyền truy cập gì sẽ được cấp phát cho các quản trị viên khác. Tốt nhất là thực hiện qua 1 script trên một test server.

Dưới đây là một script mẫu để bạn bắt đầu. Bạn tạo 1 file với tên delegate-admin với nội dung sau.

Tạo thư mục chứa script, đổi quyền sở hữu thành zimbra, với quyền root

mkdir /opt/scripts
chown zimbra:zimbra /opt/scripts

Tạo file delegate-admin với quyền zimbra user.

su - zimbra
cd /opt/scripts
vi /delegate-admin

Copy nội dung sau vào file.

#!/bin/bash
# Domain of concern to be changed
DOMAIN='example.com'
WHO=`whoami`
if [ $WHO != "zimbra" ]
then
 echo
 echo "Execute this scipt as user zimbra (\"su - zimbra\")"
 echo
 exit 1
fi

echo
echo
echo "Zimbra Delegate Admin control"
echo "*************************************************"
echo "Utility to grant/revoke delegated administrators"
echo
echo "Please choose R for revoke or G for grant (RG) or any other key to abort."
read -p "RG: " rg

if [ "$rg" == 'R' ]
then
 echo "Please enter the user name (example: user@example.com) you wish to revoke delegated domain admin rights from."
 read -p "username: " username
 zmprov ma $username zimbraIsDelegatedAdminAccount FALSE
elif [ "$rg" == 'G' ]
then
 echo "Please enter the user name (example: user@example.com) you wish to grant delegated domain admin rights."
 read -p "username: " username
 zmprov ma $username zimbraIsDelegatedAdminAccount TRUE
 zmprov ma $username +zimbraAdminConsoleUIComponents accountListView
 zmprov ma $username +zimbraAdminConsoleUIComponents DLListView 

 #Granting the rights
 zmprov grr domain $DOMAIN usr $username +listAccount
 zmprov grr domain $DOMAIN usr $username listDomain
 zmprov grr domain $DOMAIN usr $username set.account.zimbraAccountStatus
 zmprov grr domain $DOMAIN usr $username set.account.sn
 zmprov grr domain $DOMAIN usr $username set.account.displayName
 zmprov grr domain $DOMAIN usr $username +addDistributionListMember
 zmprov grr domain $DOMAIN usr $username +getDistributionListMembership
 zmprov grr domain $DOMAIN usr $username +getDistributionList
 zmprov grr domain $DOMAIN usr $username +listDistributionList
 zmprov grr domain $DOMAIN usr $username +removeDistributionListMember
 zmprov grr domain $DOMAIN usr $username domainAdminRights
 zmprov grr domain $DOMAIN usr $username domainAdminConsoleRights
 zmprov grr domain $DOMAIN usr $username adminConsoleAliasRights
 zmprov grr domain $DOMAIN usr $username modifyAccount
 zmprov grr domain $DOMAIN usr $username countAlias
 zmprov grr domain $DOMAIN usr $username -configureAdminUI
 zmprov grr domain $DOMAIN usr $username -get.account.zimbraAdminConsoleUIComponents
 zmprov grr domain $DOMAIN usr $username -get.dl.zimbraAdminConsoleUIComponents
 zmprov grr domain $DOMAIN usr $username -set.account.zimbraIsDelegatedAdminAccount
 zmprov grr domain $DOMAIN usr $username -set.dl.zimbraIsAdminGroup
 #Remove view mail right.
 zmprov grr domain $DOMAIN usr $username -adminLoginAs

else
 echo "Invalid option, abort"
 exit 0
fi

exit 0

Thay đổi DOMAIN=’example.com’ bằng tên domain của bạn và cấp quyền thực thi cho file này:

chmod +x delegate-admin

Chạy script này với quyền zimbra, ví dụ:

./delegate-admin

Chọn G để bắt đầu gán quyền truy cập và nhập tên của account mà bạn muốn trao các quyền quản trị.

Sau khi thực hiện xong, đăng nhập vào trang quản trị (cổng 9071 hoặc 7071) với account được phân quyền. Bạn sẽ thấy rằng account này được phép thực hiện các tác vụ quản lý cho account, distribution list. Ngoài ra account này không được phép thực hiện các tác vụ khác.

Bonus. Ngoài việc gán quyền cho account, bạn cũng có thể gán các mục sẽ hiển thị trên màn hình quản trị cho account này. Ví dụ, bạn gán tất cả các mục hiển thị cho account admin này ngoại trừ mục view mail.

zmprov ma delegatedadmin@example.com zimbraAdminConsoleUIComponents accountListView zimbraAdminConsoleUIComponents DLListView zimbraAdminConsoleUIComponents aliasListView zimbraAdminConsoleUIComponents resourceListView zimbraAdminConsoleUIComponents COSListView zimbraAdminConsoleUIComponents domainListView zimbraAdminConsoleUIComponents serverListView zimbraAdminConsoleUIComponents zimletListView zimbraAdminConsoleUIComponents adminZimletListView zimbraAdminConsoleUIComponents globalConfigView zimbraAdminConsoleUIComponents globalServerStatusView zimbraAdminConsoleUIComponents helpSearch zimbraAdminConsoleUIComponents saveSearch zimbraAdminConsoleUIComponents mailQueue zimbraAdminConsoleUIComponents backupsView zimbraAdminConsoleUIComponents certsView zimbraAdminConsoleUIComponents softwareUpdatesView zimbraAdminConsoleUIComponents bulkProvisionTasksView zimbraAdminConsoleUIComponents perServerStatisticsView zimbraAdminConsoleUIComponents globalPermissionView zimbraAdminConsoleUIComponents rightListView 

Bạn có thể tham khảo các tài liệu sau về các quyền của admin và một số tình huống phân quyền đặc thù:

zm-mailbox/RightConsts.java at develop · Zimbra/zm-mailbox · GitHub

UmaT-Implementing-Delegated-Administration – Zimbra :: Tech Center

Restrict Admin ‘View Mail’ – Zimbra :: Tech Center

Create a delegated admin to manage distribution lists only – Zimbra :: Tech Center