redis 進程使用root用戶啟動 -- 整改方案


 

 

最近內部風險整改, 各種進程使用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用戶啟動了,是不是很高大上?


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM