mirror of
https://github.com/aljazceru/addons.git
synced 2025-12-17 13:14:21 +01:00
Update samba / fix minor bugs (#22)
* Update samba / fix minor bugs * fix lint
This commit is contained in:
@@ -6,7 +6,8 @@
|
||||
"startup": "once",
|
||||
"boot": "manual",
|
||||
"ports": {
|
||||
"80/tcp": 80
|
||||
"80/tcp": 80,
|
||||
"443/tcp": 443
|
||||
},
|
||||
"map": ["ssl"],
|
||||
"options": {
|
||||
|
||||
@@ -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 /
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
|
||||
81
samba/run.sh
81
samba/run.sh
@@ -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
|
||||
|
||||
@@ -10,8 +10,3 @@
|
||||
|
||||
#guest account = root
|
||||
#map to guest = Bad User
|
||||
|
||||
[config]
|
||||
browseable = yes
|
||||
writeable = yes
|
||||
path = /config
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "SSH server",
|
||||
"version": "0.3",
|
||||
"version": "0.4",
|
||||
"slug": "ssh",
|
||||
"description": "Connect to your server over SSH",
|
||||
"startup": "before",
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user