summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDrunkard Zhang <gongfan193@gmail.com>2015-02-04 09:36:51 +0800
committerDrunkard Zhang <gongfan193@gmail.com>2015-02-04 09:36:51 +0800
commit4c5adb702caef0aebe0d10416521e24e68fa0801 (patch)
treeb350fbc56fd079cb8c370048d5b071f79f1f4fd5
parent704922c855a9741b5495db56ac266788a9c25c33 (diff)
downloadgitlab-ce-4c5adb702caef0aebe0d10416521e24e68fa0801.tar.gz
Specify shell while run me as git user
Some users disabled "git" user's shell after finished installation, this will lead to "This account is currently not available" and could not run /etc/init.d/gitlab, this dirty trick fix it. Signed-off-by: Drunkard Zhang <gongfan193@gmail.com>
-rwxr-xr-xlib/support/init.d/gitlab3
-rwxr-xr-xlib/support/init.d/gitlab.default.example6
2 files changed, 8 insertions, 1 deletions
diff --git a/lib/support/init.d/gitlab b/lib/support/init.d/gitlab
index b066a1a6935..946902e2f6d 100755
--- a/lib/support/init.d/gitlab
+++ b/lib/support/init.d/gitlab
@@ -35,13 +35,14 @@ pid_path="$app_root/tmp/pids"
socket_path="$app_root/tmp/sockets"
web_server_pid_path="$pid_path/unicorn.pid"
sidekiq_pid_path="$pid_path/sidekiq.pid"
+shell_path="/bin/bash"
# Read configuration variable file if it is present
test -f /etc/default/gitlab && . /etc/default/gitlab
# Switch to the app_user if it is not he/she who is running the script.
if [ "$USER" != "$app_user" ]; then
- eval su - "$app_user" -c $(echo \")$0 "$@"$(echo \"); exit;
+ eval su - "$app_user" -s $shell_path -c $(echo \")$0 "$@"$(echo \"); exit;
fi
# Switch to the gitlab path, exit on failure.
diff --git a/lib/support/init.d/gitlab.default.example b/lib/support/init.d/gitlab.default.example
index 9951bacedf5..4c5752766fa 100755
--- a/lib/support/init.d/gitlab.default.example
+++ b/lib/support/init.d/gitlab.default.example
@@ -29,3 +29,9 @@ web_server_pid_path="$pid_path/unicorn.pid"
# sidekiq_pid_path defines the path in which to create the pid file for sidekiq
# The default is "$pid_path/sidekiq.pid"
sidekiq_pid_path="$pid_path/sidekiq.pid"
+
+# shell_path defines the path of shell for "$app_user" in case you disabled
+# shell of "$app_user" by commands like `usermod -s /sbin/nologin $app_user"
+# for security decision.
+# The default is "/bin/bash"
+shell_path="/bin/bash"