如何通过 shell 脚本为 samba 共享添加用户

如何通过 shell 脚本为 samba 共享添加用户

通常,当我想为 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

相关内容