您的位置:首页 > 运维架构 > Shell

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

2015-12-30 19:28 921 查看
在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 这个文件(默认源码安装的不会有这个文件),因此除了匿名用户外本地用户无法登录。所以只要删除了就可以了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: