我使用命令useradd -m -p PASS_HASH -s /usr/sbin/nologin USERNAME将用户添加到我的服务器。然后我尝试访问他们的samba家庭共享,但直到用户login时才显示出来:
root:~$sudo login failtest Password:###### Added user failtest.
有没有一些方法添加用户没有login?
编辑:问题是,用户添加useradd命令,但Ubuntu似乎运行initalisation脚本时,第一次用户login。 该脚本然后将该用户添加到tdbsam用户数据库。 查找initalisation脚本或者它用来添加用户到tdbsam数据库的方法,而不需要任何用户input(如smbpasswd -a USER提示用户input密码)。
所以我需要的是一种在不提示用户input密码(例如:samaba-add-user.sh USERNAME PASSWORD)的情况下向tdbsam数据库添加用户+密码的方法。
我相信你可以用“adduser”而不是“useradd”来解决这个问题。 adduser脚本应该创build你正在寻找的东西的其余部分。
我的直觉是一个PAM相关的问题。 login之前用户的主目录是否存在,或者您是否依靠pam_mkhomedir创build目录并拉入skel? 如果您正在使用pam_mkhomedir,是否在PAMconfiguration中正确configuration了samba?
你可以发布你的整个PAMconfiguration,如果你不介意?
这是因为在用户login后,samba与passwd同步。如果希望用户能够login到samba,则在执行任何shelllogin之前, smbpasswd -a failtest在创build用户之后运行smbpasswd -a failtest 。 这将添加正确的条目到dbsam。
您也可以使用pdbedit实用程序来执行manualy。