@@ -7,9 +7,9 @@ print_help () {
7
7
echo " OPTIONS:"
8
8
echo " --local Use locally built docker-wine image instead of pulling"
9
9
echo " image from DockerHub"
10
- echo " --as-root Run as root"
11
- echo " --as-me Run using your current username, UID and GID (default "
12
- echo " when alternate --home value specified)"
10
+ echo " --as-root Start the container as root"
11
+ echo " --as-me Start the container using your current username, UID and"
12
+ echo " GID (default when alternate --home value specified)"
13
13
echo " --rdp Shortcut for --rdp=interactive"
14
14
echo " --rdp=OPTION Runs docker-wine container with Remote Desktop Protocol"
15
15
echo " server"
@@ -57,9 +57,16 @@ print_help () {
57
57
}
58
58
59
59
add_run_arg () {
60
- local arg=" $1 "
60
+ RUN_ARGS+=(" $1 " )
61
+ }
61
62
62
- RUN_ARGS+=(" ${arg} " )
63
+ add_run_args_for_as_me () {
64
+ USER_HOME=" ${HOME} "
65
+ WORKDIR=" ${USER_HOME} "
66
+ add_run_arg --env=" USER_NAME=$( whoami) "
67
+ add_run_arg --env=" USER_UID=$( id -u) "
68
+ add_run_arg --env=" USER_GID=$( id -g) "
69
+ add_run_arg --env=" USER_HOME=${USER_HOME} "
63
70
}
64
71
65
72
@@ -81,15 +88,10 @@ while [ $# -gt 0 ]; do
81
88
;;
82
89
--as-root)
83
90
add_run_arg --env=" RUN_AS_ROOT=yes"
84
- WORKDIR=" /root "
91
+ WORKDIR=" /"
85
92
;;
86
93
--as-me)
87
- USER_HOME=" ${HOME} "
88
- WORKDIR=" ${USER_HOME} "
89
- add_run_arg --env=" USER_NAME=$( whoami) "
90
- add_run_arg --env=" USER_UID=$( id -u) "
91
- add_run_arg --env=" USER_GID=$( id -g) "
92
- add_run_arg --env=" USER_HOME=${USER_HOME} "
94
+ add_run_args_for_as_me
93
95
;;
94
96
--rdp)
95
97
USE_RDP_SERVER=" interactive"
@@ -106,6 +108,9 @@ while [ $# -gt 0 ]; do
106
108
;;
107
109
--home-volume=* )
108
110
USER_VOLUME=" ${1#* =} "
111
+
112
+ # Start container as self to prevent unintentionally changing ownership of a user's local filesystem by wineuser
113
+ add_run_args_for_as_me
109
114
;;
110
115
--password=* )
111
116
add_run_arg --env=" USER_PASSWD=$( openssl passwd -1 " ${1#* =} " ) "
244
249
elif [ " $( uname) " == " Linux" ]; then
245
250
246
251
# Check for .Xauthority command -v is required for authenticating as the current user on the host's X11 server
247
- if [ -z " ${XAUTHORITY} " ] && [ -s " ${HOME} /.Xauthority" ]; then
252
+ if [ -z " ${XAUTHORITY} " -a -s " ${HOME} /.Xauthority" ]; then
248
253
echo " ERROR: No valid .Xauthority file found for X11"
249
254
exit 1
250
255
fi
0 commit comments