通常,当我想为 samba 共享文件夹添加用户时,我会使用此命令:
sudo smbpasswd -a <username>
然后弹出这个
New SMB password:
Retype new SMB password:
现在我想在脚本中执行此操作,但这样它就不会停在那里并要求我输入密码
这是我的脚本:
##################################################################
#!/bin/bash
mkdir /var/www/html/test
tee -a /etc/samba/smb.conf << EOF
[test]
comment = Test folder
path = /var/www/html/test
browsable = yes
valid users = tester
read only = no
EOF
smbpasswd -a tester
password
password
...我怎样才能对密码进行硬编码?
答案1
我已经找到了自己的解决方案本网站
因此,基本情况是,如果您想编写一个脚本来将特定用户添加到 samba 共享,请执行以下操作:
这部分脚本是“标准”的,除了要共享的文件夹的路径外,不需要更改:
##################################################################
#!/bin/bash
# make a folder if it doesn't exist
[ ! -d /var/www/html/test ] && mkdir -p /var/www/html/test
# append these lines at the end of the /etc/samba/smb.conf file
tee -a /etc/samba/smb.conf << EOF
[test]
comment = Test folder
path = /var/www/html/test
browsable = yes
valid users = tester
read only = no
EOF
现在如果你想:
添加现有用户:将其附加到上面的“标准脚本”:
username='<existing_user_name>'
(echo "<password_for_user>"; sleep 1; echo "<password_for_user>" ) | sudo smbpasswd -s -a $username
添加操作系统中不存在的新用户:将其附加到上面的“标准脚本”中:
username='<new_user_name>'
useradd -m $username
(echo "<password_for_user>"; sleep 1; echo "<password_for_user>";) | passwd $username
(echo "<password_for_user>"; sleep 1; echo "<password_for_user>" ) | sudo smbpasswd -s -a $username