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 &
總結
以上是生活随笔為你收集整理的linux下拒绝用户登录,Linux系统用户管理之禁止用户登录的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux命令怎么打开优盘,Linux下
- 下一篇: linux 其他常用命令