web-dev-qa-db-fra.com

Comment ajouter un utilisateur pour le partage samba via un script Shell

Normalement, lorsque je veux ajouter un utilisateur pour le dossier partagé Samba, j'utilise cette commande:

Sudo smbpasswd -a <username>

et puis cela apparaît

New SMB password:
Retype new SMB password:

et maintenant je veux le faire dans un script mais pour que cela ne s'arrête pas là et me demande d'insérer un mot de passe

c'est mon script:

##################################################################
#!/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

... Comment puis-je coder en dur le mot de passe?

1
lewis4u

J'ai trouvé la solution par moi-même depuis ce site web

Le principe de base est donc que si vous souhaitez créer un script pour ajouter un utilisateur spécifique au partage samba, procédez comme suit:

Cette partie du script est "standard" et ne nécessite aucune modification, à l'exception du chemin du dossier que vous souhaitez partager:

##################################################################
#!/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

et maintenant si vous voulez:

ajouter un utilisateur existant: ajoutez ceci au 'script standard' ci-dessus:

username='<existing_user_name>'
(echo "<password_for_user>"; sleep 1; echo "<password_for_user>" ) | Sudo smbpasswd -s -a $username

ajouter un nouvel utilisateur qui n'existe pas dans le système d'exploitation: ajoutez ceci au 'script standard' ci-dessus:

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