欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

redis 进程使用root用户启动 -- 整改方案

程序员文章站 2022-07-03 18:46:34
最近内部风险整改, 各种进程使用root身份进行启动不符合要求, 于是各路神仙各施其法,为的就是让 某进程不以root 启动: 先以 redis 为例: 原有进程如下: #超一流标准的执行文件位置及配置文件位置 root 9602 1 0 23:25 ? 00:00:00 /usr/bin/redi ......

 

 

最近内部风险整改, 各种进程使用root身份进行启动不符合要求,

于是各路神仙各施其法,为的就是让 某进程不以root 启动:

 

先以 redis 为例: 

原有进程如下:

#超一流标准的执行文件位置及配置文件位置

root     9602      1  0 23:25 ?        00:00:00   /usr/bin/redis-server  /etc/redis/redis.conf   

 

于是有了以下操作:

一 、简单直接类

# kill -9 9602

# su   redis

this account is currently not available

# usermod -s /bin/bash

# su redis 

# /usr/bin/redis-server  /etc/redis/redis.conf   

于是redis由一个非登录用户变成了一个登陆用户,而且下次开机还是要手动启动一次进程。。 

 

二、开机启动类

# echo 'su -c "/usr/bin/redis-server  /etc/redis/redis.conf" redis ' >> /etc/rc.local

测试了一下

#  /bin/bash /etc/rc.local

this account is currently not available

# vi  /etc/rc.local  

把redis改为了 newuser

# useradd newuser

#  /bin/bash /etc/rc.local

于是服务开机启动设置成功,但redis被弃用了。。

 

三 、 服务设置类 (推荐)

# echo '

[unit]
description=redis daemon

[service]

type=forking

#这个是配置启动用户
user=redis
execstart= /usr/bin/redis-server  /etc/redis/redis.conf   
execreload=/bin/kill -hup $mainpid
killmode=process
restart=on-failure
restartsec=42s

[install]
wantedby=multi-user.target

'  >  /usr/lib/systemd/system/redisd.service

# chown -r redis /var/log/redis/     (日志文件redis需要有读写权限,具体日志文件位置不细说 我的就当作放在这里)

# systemctl start redisd

# systemctl enable redisd 

created symlink from /etc/systemd/system/multi-user.target.wants/redisd.service to /usr/lib/systemd/system/redisd.service

# ps -ef|grep redisd

redis     10175      1  0 23:52 ?        00:00:00 /usr/bin/redis-server *:6379

设置成了服务自启动,还是以redis用户启动了,是不是很高大上?