Phân quyền user trong Zimbra
Việc phân quyền user trong Zimbra (delegation) thường cần thiết trong các tình huống sau:
Khi cần người hỗ trợ quản trị hệ thống (phân quyền admin phụ)
-
Mục đích: Không muốn chia sẻ tài khoản admin chính (
admin@domain.com
) cho nhiều người. -
Giải pháp: Tạo tài khoản admin phụ có quyền hạn giới hạn (chỉ xem logs, tạo user, quản lý domain…).
-
Ví dụ:
-
Nhân viên IT phụ trách riêng domain
abc.com
. -
Nhân viên Helpdesk chỉ có quyền reset password.
-
Khi muốn chia quyền quản lý theo domain (đa tổ chức)
-
Mục đích: Một server Zimbra quản lý nhiều domain (công ty con), mỗi quản trị viên chỉ được quyền trong phạm vi domain của họ.
-
Giải pháp: Tạo các tài khoản delegated admin, giới hạn phạm vi domain.
-
Ví dụ:
-
admin1@domainA.com
chỉ quản lý user trongdomainA.com
.
-
Cách thao tác:
SSH vào tài khoản mail server bằng quyền root
Tạo file permission-admin trong đường dẫn /usr/local/sbin
Chèn nội dung sau vào:
#!/bin/bash
# Domain of concern to be changed - thay domain.com thanh ten mien mail dang dung
DOMAIN='domain.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
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
else
echo "Invalid option, abort"
exit 0
fi
exit 0
Phân quyền cho file.
chmod +x /usr/local/sbin/permission-admin
Login vào user zimbra để chạy script:
su zimbra
/usr/local/sbin/permission-admin
Nhập G sau đó nhập user cần phân quyền
Sau khi script chạy xong chúng ta có thể login vào trang quản trị zimbra bằng email vừa set quyền để kiểm tra. Hiện tại quyền đã được giới hạn lại.
Ngoài ra để thu hồi quyền này lại ta có thể thao tác như trên nhưng nhập R để thu hồi.