web-dev-qa-db-ja.com

シェルスクリプトを介して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
lewis4u

このウェブサイト から自分で解決策を見つけました

基本的なことは、特定のユーザーを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

oSに存在しない新しいユーザーを追加します。これを上記の「標準スクリプト」に追加します。

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
2
lewis4u