diff --git a/linux-live/buildconfig b/linux-live/buildconfig index 4cda068..8f4a5d1 100644 --- a/linux-live/buildconfig +++ b/linux-live/buildconfig @@ -6,7 +6,7 @@ DISTRIBUTION_TYPE=debian # distribution # дистрибутив -DISTRIBUTION=buster +DISTRIBUTION=stretch # distribution arch # архитектура дистрибутива @@ -14,7 +14,7 @@ DISTRIBUTION_ARCH=amd64 # окружение рабочего стола # desktop environment -DESKTOP_ENVIRONMENT=mediaplayer +DESKTOP_ENVIRONMENT=xfce # system variant, indicates the used list of packages in modules # вариант системы, указывает на используемый список пакетов в модулях @@ -30,7 +30,7 @@ DISTRIBUTION_VARIANT="minbase" # if core, then executing scripts will not build modules. # если core, то выполнение скриптов не будет собирать модули. -#SYSTEM_TYPE="core" +SYSTEM_TYPE="core" # path of the log file # путь файла лога diff --git a/linux-live/initramfs/static/minios-configure b/linux-live/initramfs/static/minios-configure index c4be2da..01ab9cd 100755 --- a/linux-live/initramfs/static/minios-configure +++ b/linux-live/initramfs/static/minios-configure @@ -517,6 +517,10 @@ if [ -f /minios-modules.tar.xz ]; then rm /minios-modules.tar.xz fi +if [ -f /usr/bin/x11vnc ]; then + x11vnc -storepasswd "$ROOT_PASSWORD" /etc/vncpassword +fi + systemctl enable minios-configure if [ "$SCRIPT_DIR" != "/usr/bin" ]; then diff --git a/linux-live/module_scripts/03-mediaplayer/install b/linux-live/module_scripts/03-mediaplayer/install index 3cbf333..64cfd37 100644 --- a/linux-live/module_scripts/03-mediaplayer/install +++ b/linux-live/module_scripts/03-mediaplayer/install @@ -14,43 +14,25 @@ if [ -f $SCRIPT_DIR/$PACKAGE_VARIANT.list ]; then $(grep -vE "^\s*#" $SCRIPT_DIR/$PACKAGE_VARIANT.list | tr "\n" " ") >>$OUTPUT 2>&1 fi -cat >/etc/samba/smb.conf <<'EOF' -[global] - dos charset = cp866 - server string = Samba Server - unix charset = UTF8 - log file = /var/log/samba/%m.log - max log size = 50 - disable spoolss = Yes - load printers = No - printcap name = /dev/null - show add printer wizard = No - unix extensions = No - map to guest = Bad User - security = USER - dns proxy = No - idmap config * : backend = tdb - wide links = Yes -[media] - comment = Media Folder - path = /mediasource - locking = No - read only = No - valid users = guest -EOF - -cat >/lib/systemd/system/x11vnc.service <<'EOF' +cat >/usr/lib/systemd/system/x11vnc.service <<'EOF' [Unit] -Description=Start x11vnc at startup. -After=multi-user.target +Description=x11vnc server +After=display-manager.service + [Service] -Type=simple -ExecStart=/usr/bin/x11vnc -auth guess -forever -loop -noxdamage -repeat -rfbauth /etc/x11vnc.pass -rfbport 5900 -shared +ExecStart=/usr/bin/x11vnc -many -shared -auth guess -noxdamage -rfbauth /etc/vncpasswd -rfbport 5900 -o /var/log/x11vnc.log +User=root + +Restart=on-failure +RestartSec=3 + [Install] -WantedBy=multi-user.target +WantedBy=graphical.target EOF -cat >/lib/systemd/system/novnc.service <<'EOF' +useradd -r novnc + +cat >/usr/lib/systemd/system/novnc.service <<'EOF' [Unit] Description=NoVNC After=network.target @@ -66,6 +48,8 @@ WantedBy=multi-user.target EOF cat >/mediaplayer.config <<'EOF' +root_password=P1ayMyVide0 +user_password=P1ayMyVide0 x11vnc_password=P1ayMyVide0 samba_password=P1ayMyVide0 vlc_password=P1ayMyVide0 @@ -79,8 +63,6 @@ vlc_options=" -f -R --no-video-title --extraintf=http --http-password $vlc_passw play_pause=1 EOF -chmod +x /usr/bin/mediaplayer - systemctl disable smbd -systemctl disable x11vnc -systemctl disable novnc +#systemctl disable x11vnc +#systemctl disable novnc diff --git a/linux-live/module_scripts/03-mediaplayer/rootcopy-install/usr/bin/mediaplayer b/linux-live/module_scripts/03-mediaplayer/rootcopy-install/usr/bin/mediaplayer old mode 100644 new mode 100755 index b50c1db..37723ac --- a/linux-live/module_scripts/03-mediaplayer/rootcopy-install/usr/bin/mediaplayer +++ b/linux-live/module_scripts/03-mediaplayer/rootcopy-install/usr/bin/mediaplayer @@ -1,22 +1,15 @@ #!/bin/bash . /etc/minios/config +. /etc/minios.conf function read_cmdline() { for i in $@; do case $i in - user_name=*) - user_name="${i#*=}" - shift # past argument=value - ;; playlocally) playlocally=true shift # past argument with no value ;; - *) - UNKNOWN=true - # unknown option - ;; esac done } @@ -33,18 +26,13 @@ fi read_cmdline /proc/cmdline -if [ $user_name = "root" ]; then +if [ $USER_NAME = "root" ]; then user_name=guest +else + user_name=$USER_NAME fi -sudo x11vnc -storepasswd "$x11vnc_password" /etc/x11vnc.pass >/dev/null 2>&1 -echo -e "$samba_password\n$samba_password" | (sudo smbpasswd -a -s $user_name) -sudo systemctl restart ssh -sudo systemctl restart x11vnc -sudo systemctl restart novnc -sudo systemctl restart smbd - -if [ $playlocally = "true" ]; then +if [ "$playlocally" = "true" ]; then if mount -L $local_source_label /mnt >/dev/null 2>&1; then media_source=/mnt$media_source playing_source=/mnt$playing_source @@ -53,6 +41,38 @@ if [ $playlocally = "true" ]; then fi fi +sudo bash -c "sudo cat >/etc/samba/smb.conf </dev/null 2>&1) +echo -e "$user_password\n$user_password" | (sudo passwd $user_name >/dev/null 2>&1) +sudo x11vnc -storepasswd "$x11vnc_password" /etc/vncpasswd >/dev/null 2>&1 +echo -e "$samba_password\n$samba_password" | (sudo smbpasswd -a -s $user_name) +sudo systemctl restart x11vnc +sudo systemctl restart smbd + if [ ! -d "$media_source" ]; then sudo mkdir -p $media_source sudo chown $user_name:$user_name $media_source @@ -70,13 +90,13 @@ if [ ! -d "/tmp/mediaplayer" ]; then sudo chown $user_name:$user_name /tmp/mediaplayer fi -if [ $playlocally != "true" ]; then - if mount -L $local_source_label $local_source ] >/dev/null 2>&1; then +if [ "$playlocally" != "true" ]; then + if mount -L $local_source_label $local_source >/dev/null 2>&1; then local_mounted="true" fi fi -if [ $local_mounted = "true" ]; then +if [ "$local_mounted" = "true" ]; then if [ ! -d "$local_source/media" ]; then sudo mkdir -p "$local_source/media" sudo chown $user_name:$user_name "$local_source/media" @@ -103,8 +123,13 @@ inotifywait -m $media_source -e close_write | find $playing_source ! -name "$file" -type f -exec rm -f {""} + if [ -d "$local_source/media" ] && [ -d "$local_source/mediaplayer" ]; then cp "$playing_source/$file" "$local_source/media/$file" + chown $user_name "$local_source/media/$file" echo "$local_source/media/$file" >$local_source/mediaplayer/lastplayed find $local_source/media ! -name "$file" -type f -exec rm -f {""} + fi - /usr/bin/$vlc_name $vlc_options $(cat /tmp/mediaplayer/lastplayed) >/dev/null 2>&1 & + if [ $USER_NAME = "root" ]; then + exec su -c "/usr/bin/$vlc_name $vlc_options '$(cat /tmp/mediaplayer/lastplayed)'" $user_name >/dev/null 2>&1 & + else + /usr/bin/$vlc_name $vlc_options $(cat /tmp/mediaplayer/lastplayed) >/dev/null 2>&1 & + fi done