当前位置:首页 > 生活 > 正文内容

创建不可登录的服务账号及启动定制服务

watrt3年前 (2021-08-02)生活10870

在服务器的管理中,我们经常需要启动mysql、elasticsearch、nginx服务,但又不希望以root的方式启动(有时候是强制性的,比如elasticsearch就禁止使用root账号启动服务),这时候就需要为它们创建单独的服务账号,同时为了安全性的考虑,一般都要禁止这些账号登录Shell,以nginx为例,详细的过程如下:


1. 创建用户组与用户

既然我们都不需要用户登录,所以也不用创建用户主目录,请注意useradd的“-M”参数。


# 创建nginx组

# -g代表直接指定group ID,可以省略

# -r 代表为系统账号

groupadd -g 2000 -r nginx


# 创建nginx用户

# -u表示直接指定user ID

# -M表示不创建用户目录,需要显示指定

useradd -u 2000 -g nginx -M

# 创建nginx组
# -g代表直接指定group ID,可以省略
# -r 代表为系统账号
groupadd -g 2000 -r nginx

# 创建nginx用户
# -u表示直接指定user ID
# -M表示不创建用户目录,需要显示指定
useradd -u 2000 -g nginx -M

2. 屏蔽独立的shell

按照上面的方法创建用户,其实这一步完全不需要,现在nginx是完全不可能登录进入shell,请注意是不能登录shell,不代表没有执行shell脚本的权限。


在这里,为了复习/sbin/nglogin的知识点,还是把此过程加入,用vi将/etc/passwd文件打开,将/home/nginx改为/sbin/nologin即可。


3. 创建nginx目录及解压

#   创建nginx目录

mkdir /opt/nginx

#   更改组所有者

chgrp nginx /opt/nginx

#   更改拥有者信息

chown nginx /opt/nginx

ls /opt/nginx

#   文件的目录信息如下

# drwxr-xr-x. 2 nginx nginx   22 Sep  9 21:55 nginx

#   解压过程略

#   创建nginx目录
mkdir /opt/nginx
#   更改组所有者
chgrp nginx /opt/nginx
#   更改拥有者信息
chown nginx /opt/nginx
ls /opt/nginx
#   文件的目录信息如下
# drwxr-xr-x. 2 nginx nginx   22 Sep  9 21:55 nginx
#   解压过程略

4. 用nginx用户启动服务

这里最困扰初学者的是,不登陆shell,怎么能执行shell脚本?其实,通过su -c命令完全可以达到此效果,如下:


# 以nginx用户启动服务

su -c /opt/nginx/nginx.sh nginx

# 以nginx用户启动服务
su -c /opt/nginx/nginx.sh nginx

这里,还需要说明的是,启动服务时,我们一般都会对内存、进程数量、网络服务等进行设置与优化,为了简化每次重复的工作,强烈建议以shell脚本文件的方式执行启动操作。


结论

通过“su -c”可以以服务账号的身份执行服务的启动、配置与管理操作。


分享给朋友:

相关文章

剑阁县金仙镇金城庙

剑阁县金仙镇金城庙

    内容收集中。。。。    金城庙在县南170时仙人领山角,明宏治五年勅建。 (县志)...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。