最近內部風險整改, 各類進程使用root身份進行啓動不符合要求, redis
因而各路神仙各施其法,爲的就是讓 某進程不以root 啓動:bash
先以 redis 爲例: 測試
原有進程以下:spa
#超一流標準的執行文件位置及配置文件位置日誌
root 9602 1 0 23:25 ? 00:00:00 /usr/bin/redis-server /etc/redis/redis.conf server
因而有了如下操做:進程
一 、簡單直接類ip
# kill -9 9602get
# su redisit
This account is currently not available
# usermod -s /bin/bash
# su redis
# /usr/bin/redis-server /etc/redis/redis.conf
因而redis由一個非登陸用戶變成了一個登錄用戶,並且下次開機仍是要手動啓動一次進程。。
2、開機啓動類
# 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用戶啓動了,是否是很高大上?