Update samba / fix minor bugs (#22)

* Update samba / fix minor bugs

* fix lint
This commit is contained in:
Pascal Vizeli
2017-04-30 23:25:51 +02:00
committed by GitHub
parent fe8cf8e36a
commit dbe6648082
8 changed files with 90 additions and 24 deletions

View File

@@ -6,7 +6,8 @@
"startup": "once",
"boot": "manual",
"ports": {
"80/tcp": 80
"80/tcp": 80,
"443/tcp": 443
},
"map": ["ssl"],
"options": {

View File

@@ -5,7 +5,7 @@ ENV VERSION %%VERSION%%
ENV LANG C.UTF-8
# Setup base
RUN apk add --no-cache samba-server jq
RUN apk add --no-cache jq samba-server samba-common-tools
# Copy data
COPY run.sh /

View File

@@ -7,3 +7,6 @@ Expose HassIO folders to samba share.
- `guest`: default true. Allow access without login
- `username`: username without guest access
- `password`: password for login.
- `map_config`: Expose config folder.
- `map_addons`: Expose addons folder.
- `map_ssl`: Expose ssl folder.

View File

@@ -1,6 +1,6 @@
{
"name": "Samba share",
"version": "0.1",
"version": "0.2",
"slug": "samba",
"description": "Expose HassIO folders with samba",
"startup": "after",
@@ -10,14 +10,20 @@
},
"map": ["config", "ssl", "addons"],
"options": {
"workgroup": "WORKGROUP",
"guest": true,
"username": "",
"password": ""
"workgroup": "WORKGROUP",
"guest": true,
"map_config": true,
"map_addons": true,
"map_ssl": false,
"username": "",
"password": ""
},
"schema": {
"workgroup": "str",
"guest": "bool",
"map_config": "bool",
"map_addons": "bool",
"map_ssl": "bool",
"username": "str",
"password": "str"
}

View File

@@ -7,24 +7,85 @@ WORKGROUP=$(jq --raw-output ".workgroup // empty" $CONFIG_PATH)
GUEST=$(jq --raw-output ".guest // empty" $CONFIG_PATH)
USERNAME=$(jq --raw-output ".username // empty" $CONFIG_PATH)
PASSWORD=$(jq --raw-output ".password // empty" $CONFIG_PATH)
MAP_CONFIG=$(jq --raw-output ".map_config // empty" $CONFIG_PATH)
MAP_ADDONS=$(jq --raw-output ".map_addons // empty" $CONFIG_PATH)
MAP_SSL=$(jq --raw-output ".map_ssl // empty" $CONFIG_PATH)
SMB_CONFIG="
[config]
browseable = yes
writeable = yes
path = /config
#guest ok = yes
#guest only = yes
#public = yes
#valid users = $USERNAME
#force user = root
#force group = root
"
SMB_SSL="
[ssl]
browseable = yes
writeable = yes
path = /ssl
#guest ok = yes
#guest only = yes
#public = yes
#valid users = $USERNAME
#force user = root
#force group = root
"
SMB_ADDONS="
[addons]
browseable = yes
writeable = yes
path = /addons
#guest ok = yes
#guest only = yes
#public = yes
#valid users = $USERNAME
#force user = root
#force group = root
"
sed -i "s/%%WORKGROUP%%/$WORKGROUP/g" /etc/smb.conf
if [ $GUEST == "true" ]; then
echo " guest ok = yes" >> /etc/smb.conf
echo " guest only = yes" >> /etc/smb.conf
echo " public = yes" >> /etc/smb.conf
##
# Write shares to config
if [ "$MAP_CONFIG" == "true" ]; then
echo "$SMB_CONFIG" >> /etc/smb.conf
fi
if [ "$MAP_ADDONS" == "true" ]; then
echo "$SMB_ADDONS" >> /etc/smb.conf
fi
if [ "$MAP_SSL" == "true" ]; then
echo "$SMB_SSL" >> /etc/smb.conf
fi
##
# Set authentication options
if [ "$GUEST" == "true" ]; then
sed -i "s/#guest ok/guest ok/g" /etc/smb.conf
sed -i "s/#guest only/guest only/g" /etc/smb.conf
sed -i "s/#guest account/guest account/g" /etc/smb.conf
sed -i "s/#map to guest/map to guest/g" /etc/smb.conf
sed -i "s/#public/public/g" /etc/smb.conf
else
echo " valid users = $USERNAME" >> /etc/smb.conf
echo " force user = root" >> /etc/smb.conf
echo " force group = root" >> /etc/smb.conf
sed -i "s/#valid users/valid users/g" /etc/smb.conf
sed -i "s/#force user/force user/g" /etc/smb.conf
sed -i "s/#force group/force group/g" /etc/smb.conf
addgroup -g 1000 $USERNAME
adduser -D -H -G $USERNAME -s /bin/false -u 1000 $USERNAME
echo -e "$PASSWORD\n$PASSWORD" | smbpasswd -a -s -c /etc/smb.conf $USERNAME
addgroup -g 1000 "$USERNAME"
adduser -D -H -G "$USERNAME" -s /bin/false -u 1000 "$USERNAME"
echo -e "$PASSWORD\n$PASSWORD" | smbpasswd -a -s -c /etc/smb.conf "$USERNAME"
fi
exec smbd -F -S -s /etc/smb.conf < /dev/null

View File

@@ -10,8 +10,3 @@
#guest account = root
#map to guest = Bad User
[config]
browseable = yes
writeable = yes
path = /config

View File

@@ -1,6 +1,6 @@
{
"name": "SSH server",
"version": "0.3",
"version": "0.4",
"slug": "ssh",
"description": "Connect to your server over SSH",
"startup": "before",

View File

@@ -27,4 +27,4 @@ else
fi
# start server
exec /usr/bin/sshd -D -f /etc/sshd_config < /dev/null
exec /usr/sbin/sshd -D < /dev/null