linux下拒绝用户登录,Linux系统用户管理之禁止用户登录

一、问题描述

今天在CentOS上切换用户的时候提示This account is currently not available

su elasticsearch

This account is currently not available.

开始并没有理解这句话,想当然的认为是用户不存在。

注:用户不存在的提示是user does not exist

su elasticsearch2

su: user elasticsearch2 does not exist

检查/etc/passwd文件存在这个用户

grep -nr 'elasticsearch' /etc/passwd

115:elasticsearch:x:496:494:elasticsearch user:/usr/home/elasticsearch:/sbin/nologin

搜索了下这个问题,发现是用户的shell登录禁止了,意外发现了对用户的这个限制。

只需要把/etc/passwd中对于用户的登录命令由/sbin/nologin改为/bin/bash即可

当然也可以通过usermod命令来改

usermod -s /bin/bash elasticsearch

二、nologin用户

0、什么是nologin用户

nologin用户是指被限制登录的用户,但是可以使用ftp和samba等。

1、如何设置nologin用户

方式一:

# 设置

usermod -s /sbin/nologin + 用户名

# 去掉

usermod -s /bin/bash + 用户名

方式二:

手动更改/etc/passwd中对于用户信息为/sbin/nologin

2、为什么需要nologin用户

2.0、Linux下做系统维护的时候,希望个别用户或者所有用户不能登录系统,保证系统在维护期间正常运行。这个时候我们就要禁止用户登录。如果设置为nologin用户就会给出很礼貌的拒绝提示This account is currently not available,是不是感觉特别友好。

2.1、nologin用户也可以给启动服务的账号所用,这只是让服务启动起来,但是不能登录系统

典型的还是elasticsearch用户, 我们在看一次

grep -nr 'elasticsearch' /etc/passwd

115:elasticsearch:x:496:494:elasticsearch user:/usr/home/elasticsearch:/sbin/nologin

即使我们改为非nologin用户,进不到这个用户下面(具体原因,待研究)。需要使用指定用户启动服务的方式

115:elasticsearch:x:496:494:elasticsearch user:/usr/home/elasticsearch:/bin/bash

su elasticsearch

bash-4.1$

发现原来很多用户账号都是nologin

cat /etc/passwd | grep '/sbin/nologin'

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

adm:x:3:4:adm:/var/adm:/sbin/nologin

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

mail:x:8:12:mail:/var/spool/mail:/sbin/nologin

uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin

operator:x:11:0:operator:/root:/sbin/nologin

games:x:12:100:games:/usr/games:/sbin/nologin

gopher:x:13:30:gopher:/var/gopher:/sbin/nologin

ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin

nobody:x:99:99:Nobody:/:/sbin/nologin

dbus:x:81:81:System message bus:/:/sbin/nologin

rpc:x:32:32:Rpcbind Daemon:/var/cache/rpcbind:/sbin/nologin

nscd:x:28:28:NSCD Daemon:/:/sbin/nologin

vcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologin

abrt:x:173:173::/etc/abrt:/sbin/nologin

saslauth:x:499:76:"Saslauthd user":/var/empty/saslauth:/sbin/nologin

postfix:x:89:89::/var/spool/postfix:/sbin/nologin

haldaemon:x:68:68:HAL daemon:/:/sbin/nologin

rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin

nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin

ntp:x:38:38::/etc/ntp:/sbin/nologin

tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin

sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin

mailnull:x:47:47::/var/spool/mqueue:/sbin/nologin

smmsp:x:51:51::/var/spool/mqueue:/sbin/nologin

nslcd:x:65:55:LDAP Client User:/:/sbin/nologin

tcpdump:x:72:72::/:/sbin/nologin

oprofile:x:16:16:Special user account to be used by OProfile:/home/oprofile:/sbin/nologin

mysql:x:3306:3306::/usr/local/mysql:/sbin/nologin

www:x:80:80::/usr/local/sinasrv2:/sbin/nologin

dockerroot:x:498:496:Docker User:/var/lib/docker:/sbin/nologin

redis:x:497:495:Redis Database Server:/var/lib/redis:/sbin/nologin

kibana:x:495:493:kibana service user:/usr/home/kibana:/sbin/nologin

三、指定用户名启动服务

对于elasticsearch服务的启动需要指定非root用户名

# 方式一,通过daemon, 可能需要单独安装一些扩展

daemon --user=username command

# 方式二, sudo -u

sudo -u elasticsearch /data2/elk/elasticsearch-6.2.4/bin/elasticsearch >/dev/null 2>&1 &

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值