我有一个.sh文件(比如adduser.sh),它通过一个cronjob执行,该cronjob包含创建FTP用户的命令。
adduser.sh文件看起来是这样。。。
#!/bin/bash
mkdir /var/www/vhosts/domain/path;
useradd -d /var/www/vhosts/domain/path -ou <uid> -g <group> -s /bin/false <username>;
echo <password> | passwd <username> --stdin;
现在是我的问题。如果我直接通过SSH使用。。。
sh adduser.sh
…没有问题,而且工作正常。
但是如果我让cronjob运行它,则会创建目录,但不会添加用户。
给什么?
最佳答案
就目前的情况来看,有一种称为useradd
的adduser
替代方案。在Debian或Ubuntu中,adduser
是一个perl脚本,执行顺序函数,比如使用adduser
创建用户、将其分配给组、创建主目录等。
根据adduser
手册页-adduser
和addgroup
对于低级工具来说是更友好的前端
像useradd、groupadd和usermod程序一样,默认情况下选择
符合Debian策略的UID和GID值,创建主目录
使用骨架配置、运行自定义脚本和其他
特征。
在Fedora、RedHat和CentOS中,adduser
只是指向useradd
的符号链接。
[root@hobbit ~]# which /usr/sbin/adduser
lrwxrwxrwx 1 root root 7 2012-09-20 20:20 /usr/sbin/adduser -> useradd
如果您在上述操作系统上的任何一个上,那么您可以尝试将
adduser
重定向到2>
文件,并检查该文件是否出错。关于linux - 通过bash脚本添加FTP用户,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12521829/