产品使用与售后服务帮助
发布时间:2021-03-22 09:13 来源:A5数据
在Linux服务器中创建用户账户时,默认情况下,用户将明确拥有SSH访问权限。在某些情况下,用户账户不需要shell访问FTP、邮件或ssh。
在本教程中,让我们学习如何为现有的Linux用户禁用shell访问权限或创建一个没有shell访问权限的新用户。
创建一个没有shell访问权限的新用户
默认情况下,当创建用户账户时,会按照/etc/default/useradd文件中的定义给用户分配一个shell。
在创建用户账户时,你可以明确指定用户应该登录的shell。
Linux自带的/sbin/nologin shell会在用户试图连接时显示 "This account is currently not available "的信息。这是一种禁止用户访问登录shell的方法。
让我们检查两个命令来创建一个禁用shell的用户。
使用 useradd。
语法:
chsh -s /sbin/nologin {username}
使用adduser。
语法:
adduser --shell /sbin/nologin {username}
禁用现有用户的Shell
使用chsh或usermod命令改变现有用户的shell。
语法:
chsh -s /sbin/nologin {username}。
要将名为bob的用户的shell改为nologin,键入:$ sudo chsh -s /sbin/nologin bob。
$ sudo chsh -s /sbin/nologin bob
使用usermod。
语法。
usermod {username} -s {shell path}
要将名为bob的用户的shell改为/sbin/ftpnologin,键入。
$ sudo usermod bob -s /sbin/ftpnologin
你可以自定义shell在用户通过ftp登录时显示信息。
cat /sbin/ftpnologin
!/bin/sh
No shell access. Only FTP access allowed.
要给予可执行的权限,键入
$ sudo chmod a+x /sbin/ftpnologin
所有的shell都在/etc/shell中,将新的shell追加到这个列表中。
$ echo "/sbin/ftpnologin" | sudo tee -a /etc/shells
不做上面的方法,你可以通过编辑/etc/password文件来手动更改shell,这样也可以。
结束语
在本教程中,我们学习了如何禁用用户账户访问默认shell。