为什么samba用户需要先登录服务器?

为什么samba用户需要先登录服务器?

对于我的学生,我正在设置一个 ubuntu 服务器作为 web 服务器和 Samaba 文件服务器。所有学生都有一个本地帐户。我已将文件夹添加到 Samba 以与学生共享。他们正在从 Windows 计算机访问共享。

一切都很顺利,但我目前有一个无法解决的问题。

学生必须至少登录服务器(而不是共享)一次,然后才能访问共享,然后才能根据需要进行读写。如果他们没有登录服务器,他们就无法连接共享。我收到错误:系统错误 86。指定的网络密码不正确。

目前这是我添加用户的脚本

#!/bin/bash
file="/var/www/html/data/users.txt"
while  IFS=: read -r f1 f2 f3
do
    # display fields using f1, f2, f3 from IFS separated file
        pass=$(perl -e 'print crypt($ARGV[0], "password")' $f3)
        useradd -M -N -G $f2 -p $pass $f1
        echo $f3 | tee - |  smbpasswd -s -a $f1
        [ $? -eq 0 ] && echo "User has been added to system!" || echo "Failed to add a user!"
        printf 'Username: %s, Groups: %s, Password: %s %s\n' "$f1" "$f2" "$f3" crypt $f3 $pass
done <$file
echo done read $file

其中 f1 是用户名 f2 是组 (= users,leerlingen,sambashare ) 并且 f3 是文本格式的用户密码。

smbpasswd 行实际上可以省略,尽管它并没有什么帮助。组 sambashare 也可以省略。

由于我选择自动将学生注册到系统和 Samba,因此我不愿意为每个学生单独进行登录。

我尝试自动执行登录过程

echo passwd | sudo su -c "whoami| more| exit" userX

但它并没有产生让 Samba 信服的日志。执行

sudo su userX

并且登录并直接退出工作正常

那么你能帮助我吗?

约翰·瓦尔

答案1

如果您在 Ubuntu 上使用 Samba4,并且不需要学生 shell 登录 Samba 服务器,那么您很可能需要期待 Samba AD。

http://www.cyberciti.biz/faq/adding-a-user-to-a-samba-smb-share/#samba4

关于在 Samba 4.x 版本上添加用户的说明

与 Samba 3.x 及更早版本不同,Samba 4.x 版本不需要为创建的每个 Samba 用户都提供本地 Unix/Linux 用户。将用户添加到 Samba Active Directory 的命令如下:

samba-tool user add USERNAME-HERE

请参阅 Samba AD DC 操作指南以了解更多信息 -https://wiki.samba.org/index.php/Samba_AD_DC_HOWTO

http://www.cyberciti.biz/faq/adding-a-user-to-a-samba-smb-share/#samba4

相关内容