今天公司突然要把所有测试环境ROOT密码收回,只发放普通用户权限。因为测试环境要经常改时间来测试,Linux下普通用户无修改时间权限。原本我的思路是写一个脚本(自动sodu到ROOT用户执行修改时间在切换回普通用户)脚本如下:
#!/bin/bash
exp () {
expect -c "
spawn su - root -c \"$2\"
expect \": \"
send \"$1\r\"
expect eof
"
}
echo "时间格式:'2015-01-01 12:30:00'"
echo "可以使用shift+backspace删除错误输入。"
read -p "请输入将要修改的时间:" tmp_date
#if [ -n $tmp_date ] ;then
# echo "请输入时间"
#fi
echo $tmp_date
export
if [ -n "$tmp_date" ] ;then
exp "111111" "date -s '$tmp_date'"
else
echo "请输入将要修改的时间。"
exit 1
fi
今天上网无意当中看到原来还可以这么玩,不用写脚本什么的那么麻烦。
由root用户执行chmod 4755 /bin/date
备注:也就是给date命令增加s权限位即设置setuid(4000),这样普通用户就可以执行date命令了,缺点也是很明显的,相当于去掉了date命令的root权限限制。