diff --git a/bigbluebutton-config/bin/bbb-conf b/bigbluebutton-config/bin/bbb-conf index b322cf6485169921821618cf4ec4978dff631577..5bcf801360b8614789199a7d739fb56a8297eecb 100755 --- a/bigbluebutton-config/bin/bbb-conf +++ b/bigbluebutton-config/bin/bbb-conf @@ -56,12 +56,20 @@ # 2016-08-15 GTR Archive more logs with zip option and show more applications with status # 2016-10-17 GTR Added redis to checked server components & added ownership check for video and freeswitch recording directories # 2017-04-08 FFD Cleanup for 1.1-beta +# 2018-11-22 MNE Dynamically detect if sudo is needed #set -x #set -e PATH=$PATH:/sbin +if [ "$(id -u)" != "0" ] + then if [ -x "$(which sudo)" ] + then SUDO="$(which sudo)" + else echo "bbb-conf must be ran as root!" && exit 1 + fi +fi + source /etc/bigbluebutton/bigbluebutton-release # @@ -136,7 +144,7 @@ fi # if [ -f $SERVLET_DIR/bigbluebutton/WEB-INF/classes/bigbluebutton.properties ]; then if cat $SERVLET_DIR/bigbluebutton/WEB-INF/classes/bigbluebutton.properties | grep -q ^bigbluebutton.web.logoutURL=$; then - sudo sed -i s/^bigbluebutton.web.logoutURL=$/bigbluebutton.web.logoutURL=default/g $SERVLET_DIR/webapps/bigbluebutton/WEB-INF/classes/bigbluebutton.properties + "$SUDO" sed -i s/^bigbluebutton.web.logoutURL=$/bigbluebutton.web.logoutURL=default/g $SERVLET_DIR/webapps/bigbluebutton/WEB-INF/classes/bigbluebutton.properties fi fi @@ -530,7 +538,7 @@ enable_webrtc(){ echo echo "WebRTC audio enabled. To apply settings to your server, do" echo - echo " sudo bbb-conf --clean" + echo " $SUDO bbb-conf --clean" echo } @@ -554,7 +562,7 @@ disable_webrtc(){ echo echo "WebRTC audio disabled. To apply settings to your server, do" echo - echo " sudo bbb-conf --clean" + echo " $SUDO bbb-conf --clean" echo } @@ -730,7 +738,7 @@ if [ $SECRET ]; then echo "Changed BigBlueButton's shared secret to $SECRET" echo echo "You must restart BigBlueButton for the changes to take effect" - echo " sudo bbb-conf --restart" + echo " $SUDO bbb-conf --restart" echo fi @@ -745,7 +753,7 @@ if [ $SAMBA ]; then # Instal Samba # if ! dpkg-query -s samba > /dev/null 2>&1; then - sudo apt-get install -y --force-yes samba ant + "$SUDO" apt-get install -y --force-yes samba ant fi # @@ -764,9 +772,9 @@ if [ $SAMBA ]; then directory mask = 0775 guest ok = yes force user = $USER -" | sudo tee -a /etc/samba/smb.conf > /dev/null 2>&1 +" | "$SUDO" tee -a /etc/samba/smb.conf > /dev/null 2>&1 - sudo /etc/init.d/smbd restart + "$SUDO" /etc/init.d/smbd restart echo " You can now access your development folder through: @@ -1220,10 +1228,10 @@ check_state() { echo "# Warning: The installed ffmpeg version '${FFMPEG_VERSION}' is not recommended." echo "# Recommend you update to the 4.0.x version of ffmpeg. To upgrade, do the following" echo "#" - echo "# sudo apt-get install software-properties-common" - echo "# sudo add-apt-repository ppa:jonathonf/ffmpeg-4" - echo "# sudo apt-get update" - echo "# sudo apt-get dist-upgrade" + echo "# $SUDO apt-get install software-properties-common" + echo "# $SUDO add-apt-repository ppa:jonathonf/ffmpeg-4" + echo "# $SUDO apt-get update" + echo "# $SUDO apt-get dist-upgrade" echo "#" echo ;; @@ -1238,7 +1246,7 @@ check_state() { echo "# Warning: The voice application may not have registered with the sip server." echo "# Try running: " echo "#" - echo "# sudo bbb-conf --clean" + echo "# $SUDO bbb-conf --clean" echo "#" echo fi @@ -1383,7 +1391,7 @@ check_state() { if test ${SERVLET_DIR}/lti.war -nt ${SERVLET_DIR}/lti; then echo "# Error: The updated lti.war did not deploy. To manually deploy:" echo "#" - echo "# sudo touch ${SERVLET_DIR}/lti.war" + echo "# $SUDO touch ${SERVLET_DIR}/lti.war" echo "#" echo fi @@ -1393,7 +1401,7 @@ check_state() { if test ${SERVLET_DIR}/demo.war -nt ${SERVLET_DIR}/demo; then echo "# Error: The updated demo.war did not deploy. To manually deploy:" echo "#" - echo "# sudo touch ${SERVLET_DIR}/demo.war" + echo "# $SUDO touch ${SERVLET_DIR}/demo.war" echo "#" echo fi @@ -1415,7 +1423,7 @@ check_state() { echo "# to create/manage meetings and recordings. They are for testing purposes only." echo "# If you are running a production system, remove them by running:" echo "#" - echo "# sudo apt-get purge bbb-demo" + echo "# $SUDO apt-get purge bbb-demo" echo fi @@ -1492,7 +1500,7 @@ check_state() { echo "# Error: Detected that /usr/share/bbb-apps-akka/conf/application.conf has the default" echo "# configuration values. To update, run" echo "#" - echo "# sudo bbb-conf --setip $BBB_WEB_IP" + echo "# $SUDO bbb-conf --setip $BBB_WEB_IP" echo "#" fi @@ -1555,10 +1563,10 @@ if [ $CHECK ]; then echo " useWebrtcIfAvailable: $WEBRTC_ENABLED_CLIENT" if grep -q ws-binding $FREESWITCH_EXTERNAL; then - WEBRTC_SOCKET=$(sudo cat $FREESWITCH_EXTERNAL | sed -n '/ws-binding/{s/.*value="//;s/".*//;p}') + WEBRTC_SOCKET=$("$SUDO" cat $FREESWITCH_EXTERNAL | sed -n '/ws-binding/{s/.*value="//;s/".*//;p}') fi if grep -q wss-binding $FREESWITCH_EXTERNAL; then - WEBRTC_SOCKET=$(sudo cat $FREESWITCH_EXTERNAL | sed -n '/wss-binding/{s/.*value="//;s/".*//;p}') + WEBRTC_SOCKET=$("$SUDO" cat $FREESWITCH_EXTERNAL | sed -n '/wss-binding/{s/.*value="//;s/".*//;p}') fi echo echo "$FREESWITCH_EXTERNAL (FreeSWITCH)" @@ -1723,7 +1731,7 @@ if [ $DEBUG ]; then rm -rf /tmp/t - sudo grep --directories=skip Exception $SERVLET_LOGS/* | grep -v CacheExceptionHandlerFactory > /tmp/t + "$SUDO" grep --directories=skip Exception $SERVLET_LOGS/* | grep -v CacheExceptionHandlerFactory > /tmp/t if [ -s /tmp/t ]; then echo " -- Exceptions found in $SERVLET_LOGS/ -- " cat /tmp/t @@ -1742,7 +1750,7 @@ if [ $DEBUG ]; then if [ $DISTRIB_ID == "Ubuntu" ]; then rm -rf /tmp/t - sudo grep --directories=skip -i exception /var/log/syslog > /tmp/t + "$SUDO" grep --directories=skip -i exception /var/log/syslog > /tmp/t if [ -s /tmp/t ]; then echo " -- Errors found in /var/log/syslog -- " cat /tmp/t @@ -1752,7 +1760,7 @@ if [ $DEBUG ]; then rm -rf /tmp/t if [ -d /var/log/bigbluebutton ]; then - sudo grep --directories=skip ERROR /var/log/bigbluebutton/* > /tmp/t + "$SUDO" grep --directories=skip ERROR /var/log/bigbluebutton/* > /tmp/t if [ -s /tmp/t ]; then echo " -- Errors found in /var/log/bigbluebutton -- " cat /tmp/t @@ -1762,7 +1770,7 @@ if [ $DEBUG ]; then rm -rf /tmp/t if [ -d /var/log/bigbluebutton ]; then - sudo grep --directories=skip -i exception /var/log/bigbluebutton/* > /tmp/t + "$SUDO" grep --directories=skip -i exception /var/log/bigbluebutton/* > /tmp/t if [ -s /tmp/t ]; then echo " -- Exceptions found in /var/log/bigbluebutton -- " cat /tmp/t @@ -1789,13 +1797,13 @@ if [ -n "$HOST" ]; then # Just use the IP for port test in /var/www/bigbluebutton/client/conf/config.xml # echo "Assigning $HOST for testing for firewall in /var/www/bigbluebutton/client/conf/config.xml" - sudo sed -i "s/porttest host=\(\"[^\"]*\"\)/porttest host=\"$PROTOCOL_RTMP:\/\/$HOST\"/g" /var/www/bigbluebutton/client/conf/config.xml + "$SUDO" sed -i "s/porttest host=\(\"[^\"]*\"\)/porttest host=\"$PROTOCOL_RTMP:\/\/$HOST\"/g" /var/www/bigbluebutton/client/conf/config.xml echo "Assigning $HOST for rtmp:// in /var/www/bigbluebutton/client/conf/config.xml" - sudo sed -i "s/rtmp[s]*:\/\/\([^\"\/]*\)\([\"\/]\)/$PROTOCOL_RTMP:\/\/$HOST\2/g" /var/www/bigbluebutton/client/conf/config.xml + "$SUDO" sed -i "s/rtmp[s]*:\/\/\([^\"\/]*\)\([\"\/]\)/$PROTOCOL_RTMP:\/\/$HOST\2/g" /var/www/bigbluebutton/client/conf/config.xml echo "Assigning $HOST for servername in /etc/nginx/sites-available/bigbluebutton" - sudo sed -i "s/server_name .*/server_name $HOST;/g" /etc/nginx/sites-available/bigbluebutton + "$SUDO" sed -i "s/server_name .*/server_name $HOST;/g" /etc/nginx/sites-available/bigbluebutton # # Update configuration for BigBlueButton client (and preserve hostname for chromeExtensionLink if exists) @@ -1805,26 +1813,26 @@ if [ -n "$HOST" ]; then chromeExtensionLinkURL=$(cat /var/www/bigbluebutton/client/conf/config.xml | sed -n '/chromeExtensionLink/{s/.*https*:\/\///;s/\/.*//;p}') echo "Assigning $HOST for http[s]:// in /var/www/bigbluebutton/client/conf/config.xml" - sudo sed -i "s/http[s]*:\/\/\([^\"\/]*\)\([\"\/]\)/$PROTOCOL_HTTP:\/\/$HOST\2/g" \ + "$SUDO" sed -i "s/http[s]*:\/\/\([^\"\/]*\)\([\"\/]\)/$PROTOCOL_HTTP:\/\/$HOST\2/g" \ /var/www/bigbluebutton/client/conf/config.xml if ! echo "$chromeExtensionLinkURL" | grep -q '""'; then - sudo sed -i "s/chromeExtensionLink=\"https:\/\/[^\/]*/chromeExtensionLink=\"https:\/\/$chromeExtensionLinkURL/g" \ + "$SUDO" sed -i "s/chromeExtensionLink=\"https:\/\/[^\/]*/chromeExtensionLink=\"https:\/\/$chromeExtensionLinkURL/g" \ /var/www/bigbluebutton/client/conf/config.xml fi echo "Assigning $HOST for publishURI in /var/www/bigbluebutton/client/conf/config.xml" - sudo sed -i "s/publishURI=\"[^\"]*\"/publishURI=\"$HOST\"/" /var/www/bigbluebutton/client/conf/config.xml + "$SUDO" sed -i "s/publishURI=\"[^\"]*\"/publishURI=\"$HOST\"/" /var/www/bigbluebutton/client/conf/config.xml # # Update configuration for BigBlueButton web app # echo "Assigning $HOST for web application URL in ${SERVLET_DIR}/bigbluebutton/WEB-INF/classes/bigbluebutton.properties" - sudo sed -i "s/bigbluebutton.web.serverURL=http[s]*:\/\/.*/bigbluebutton.web.serverURL=$PROTOCOL_HTTP:\/\/$HOST/g" \ + "$SUDO" sed -i "s/bigbluebutton.web.serverURL=http[s]*:\/\/.*/bigbluebutton.web.serverURL=$PROTOCOL_HTTP:\/\/$HOST/g" \ ${SERVLET_DIR}/bigbluebutton/WEB-INF/classes/bigbluebutton.properties - sudo sed -i "s/screenshareRtmpServer=.*/screenshareRtmpServer=$HOST/g" \ + "$SUDO" sed -i "s/screenshareRtmpServer=.*/screenshareRtmpServer=$HOST/g" \ ${SERVLET_DIR}/bigbluebutton/WEB-INF/classes/bigbluebutton.properties change_var_value /usr/share/red5/webapps/screenshare/WEB-INF/screenshare.properties streamBaseUrl rtmp://$HOST/screenshare @@ -1832,7 +1840,7 @@ if [ -n "$HOST" ]; then change_var_value /usr/share/red5/webapps/screenshare/WEB-INF/screenshare.properties jnlpFile $PROTOCOL_HTTP://$HOST/screenshare/screenshare.jnlp if ! grep -q server_names_hash_bucket_size /etc/nginx/nginx.conf; then - sudo sed -i "s/gzip on;/gzip on;\n server_names_hash_bucket_size 64;/g" /etc/nginx/nginx.conf + "$SUDO" sed -i "s/gzip on;/gzip on;\n server_names_hash_bucket_size 64;/g" /etc/nginx/nginx.conf fi # @@ -1857,7 +1865,7 @@ if [ -n "$HOST" ]; then if [ -f ${SERVLET_DIR}/demo/bbb_api_conf.jsp ]; then echo "Assigning $HOST for api demos in ${SERVLET_DIR}/demo/bbb_api_conf.jsp" - sudo sed -i "s/BigBlueButtonURL = \"http[s]*:\/\/\([^\"\/]*\)\([\"\/]\)/BigBlueButtonURL = \"$PROTOCOL_HTTP:\/\/$HOST\2/g" \ + "$SUDO" sed -i "s/BigBlueButtonURL = \"http[s]*:\/\/\([^\"\/]*\)\([\"\/]\)/BigBlueButtonURL = \"$PROTOCOL_HTTP:\/\/$HOST\2/g" \ ${SERVLET_DIR}/demo/bbb_api_conf.jsp fi