linux redis 启动用户,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用戶啟動了,是不是很高大上?
總結
以上是生活随笔為你收集整理的linux redis 启动用户,redis 进程使用root用户启动 -- 整改方案的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c++语言 tcp例子,C++中TCP通
- 下一篇: linux 下nc-verilog 仿真