前言:以前一直以為sudo這個(gè)命令很雞肋、沒(méi)啥用裁蚁,遇到了需要用的時(shí)候设凹,才發(fā)現(xiàn)是我天真了sudo這個(gè)命令太好用了。
環(huán)境:zabbix-agent通過(guò)監(jiān)控腳本監(jiān)控docker容器的網(wǎng)絡(luò)連接數(shù)娃承,物理機(jī)的zabbix-agent docker容器 connection.sh腳本
問(wèn)題:
腳本中用到了docker和nsenter命令
nsenter -t docker inspect -f {{.State.Pid}} contaner_name
-n ss -an | grep 80
,但是zabbix-agent執(zhí)行這個(gè)腳本的時(shí)候報(bào)錯(cuò)/usr/bin/docker: Permission denied怕篷,
原因是zabbix-agent是通過(guò)zabbix程序用戶來(lái)執(zhí)行這個(gè)腳本的沒(méi)有docker這個(gè)命令的運(yùn)行權(quán)限历筝,所以前面要加sudo提高權(quán)限,同時(shí)在/etc/sudoers 文件下面設(shè)置zabbix用戶sudo提權(quán)后能有哪些權(quán)限廊谓。
解決方法梳猪、過(guò)程:
修改/etc/sudoers文件
root ALL=(ALL) ALL
zabbix ALL=(root) NOPASSWD:/usr/bin/docker
zabbix ALL=(root) NOPASSWD:/usr/bin/nsenter