ubuntu环境下的用户添加 - 指定用户shell



在ubuntu环境下,首先创建一个文件夹 /home/test, 然后使用命令 useradd test -g ftp -d /home/test -s /sbin/nologin来添加一个用户,并指定用户的主目录为 /home/test。 

至于-s选项表示用户使用的shell。 


创建完毕之后,我们切换用户来看一下

root@vm65:~# su - test

Cannot execute /sbin/nologin: No such file or directory

这个就说明-s设置的目录不对,我们查看了一下,确实没有这个目录。 


这时候,可以打开/etc/passwd文件看看其他用户的shell是怎么设置的。 打开之后我们发现,其他用户的shell都是如下

/bin/bash

/bin/sh

/usr/sbin/nologin

从这里可以看到是我们之前的设置是不对的,正确的设置应该是/usr/sbin/nologin。 更改之后,我们再切换用户看一下,

root@vm65:/sbin# su - test
This account is currently not available.

这次没有提示路径不存在的错误。  出现这个提示的原因,是因为我们创建这个用户只是为了ftp操作等内容,我们并不期望这个用户登录进来做什么其他的操作。


此外,还可以将用户的shell设置成/bin/false

我们现在开始试验一下:

hai@MaHai:~/config$ ftp 10.0.1.165
Connected to 10.0.1.165.
220 (vsFTPd 2.3.5)
Name (10.0.1.165:haiqinma): test
331 Please specify the password.
Password:
530 Login incorrect.
Login failed.
ftp> by


在网上搜罗了一下, 解决方法是:

sudo apt-get remove vsftpd
sudo rm /etc/pam.d/vsftpd
sudo apt-get install vsftpd  

这个是因为ubuntu启用了PAM,所在用到vsftp时需要用到 /etc/pam.d/vsftpd 这个文件(默认源码安装的不会有这个文件),因此除了匿名用户外本地用户无法登录。所以只要删除了就可以了。



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值