多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
[TOC] # 基金生产权限控制方案 ## 方案目的 1. 通过禁止root账户远程登录(ssh)来避免root账户被破解的危险 2. 通过新建专用账号来启动相关服务以达到降权启动的目的 3. 通过对专用账号的权限控制达到减小危害的目的 ## 两种方案备选 ### 方案1: 禁止root账户远程登录,新建专用账户做远程登录,登录后使用su命令切换至root账号后做相关操作 **优点:** 简单,快速,不需要对现有操作方式做过多更改 **缺点:** 还是使用的root账号,权限过大 ### 方案2: 禁止root账户远程登录,新建专用账户,通过sudo命令控制其命令权限,以该用户来启动相关服务 **优点:** 避免了root账户的使用,控制了专用账户的操作权限,非root账号启动服务,避免了提权危害 **缺点:** 需要更改现有的操作方式,权限控制存在一定的不方便性 ~~每种服务需不同的用户名,要注意UID的统一~~ ## 方法2的具体实现[以java程序为例] 步骤1:新建专用账户 ``` useradd totodi password totodi ``` 步骤2:用visudo配置权限 ``` Cmnd_Alias TOTODI_CMD=/usr/bin/free,/usr/bin/iostat,/usr/bin/top,/bin/hostname,/sbin/ifconfig,\ /bin/netstat,/sbin/route,/sbin/iptables,/etc/init.d/network,/bin/nice,/bin/kill,\ /usr/bin/kill,/usr/bin/killall,/bin/rpm,/usr/bin/up2date,/usr/bin/yum,\ /sbin/fdisk,/sbin/sfdisk,/sbin/parted,/sbin/partprobe,/bin/mount,/bin/umount,\ /sbin/service,/sbin/chkconfig,/bin/cat,/bin/ls,\ !/usr/bin/passwd root,/usr/bin/passwd [A-Za-z]*,!/usr/bin/passwd root,\ !/bin/rm,!/bin/su totodi ALL=(root) NOPASSWD:TOTODI_CMD ``` 步骤3:切换用户并启动服务 以ttd-fund-message:10086程序为例 ``` #切换用户 su - totodi #修改日志文件夹权限 chown -R totodi.totodi /data/logs/ttd-fund-message-service/ #启动服务 java -server -jar -Xms256m -Xmx256m -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=256m -Dinstance.flag=server1 /data/server/ttd-message-service/lib/message-service.jar --server.port=10086 ``` 步骤4:禁用root使用ssh 略 步骤5:历史记录修改 https://www.cnblogs.com/morgana/p/8846965.html 通过对所有用户历史记录的配置,达到将历史记录输出到指定目录,增减时间选项,多终端共享history文件 创建目录并配置权限: ``` mkdir /var/history #配置目录权限,使得用户有权限创建自己的history文件 chmod 777 /var/history chmod a+t /var/history ``` 写入/etc/profile ``` if [ $UID -ge 500 ];then readonly HISTFILE=/var/history/$USER-$UID.log readonly HISTFILESIZE=50000 readonly HISTSIZE=10000 readonly HISTTIMEFORMAT='%F %T ' readonly HISTCONTROL=ignoredups shopt -s histappend readonly PROMPT_COMMAND="history -a" fi ```