我编写了一个 shell 脚本,用于添加用户:
useradd $1 --password $2 --create-home --shell /bin/false --system
此用户应仅登录 FTP,而不应登录 SSH 或其他任何内容。但问题是,目前此用户既不能登录 FTP,也不能登录 SSH。我添加了/bin/false到/etc/shells。
答案1
您尝试使用 /bin/false 登录,然后... 什么都没有。是因为 false 代表“...除了返回退出状态 1(表示失败)外不执行任何操作。”(虚假的调用
首先,我认为你已经安装了vsftpd包裹。
创建用户帐户以便能够登录 FTP 服务器而不是登录 SSH 或其他任何东西的方法应该是(在 Ubuntu 中):
# useradd -m user -s /usr/sbin/nologin
# passwd user
然后将这一行添加到/etc/shells文件
/usr/sbin/nologin
在脚本中根据您的需要进行调整。
要完成答案,请按照适合您需求的脚本进行操作(原始脚本可以找到这里
#!/bin/bash
# Script to add a user to Linux system
if [ $(id -u) -eq 0 ]; then
read -p "Enter username : " username
read -s -p "Enter password : " password
egrep "^$username" /etc/passwd >/dev/null
if [ $? -eq 0 ]; then
echo "$username exists!"
exit 1
else
pass=$(perl -e 'print crypt($ARGV[0], "password")' $password)
useradd -m --shell /usr/sbin/nologin --system -p $pass $username
[ $? -eq 0 ] && echo "User has been added to system!" || echo "Failed to add a user!"
fi
else
echo "Only root may add a user to the system"
exit 2
fi
保存为“adduser.txt”
然后
$ chmod 755 adduser.txt
$ sudo bash ./adduser.txt
会要求你输入用户名和密码。
控制是否创建用户(用户名:用户)
$ cat /etc/passwd | grep 用户
然后您只需使用新用户登录 FTP。
附言:抱歉我的英语不太好。