Compare commits
5 Commits
setsmbpass
...
main
Author | SHA1 | Date |
---|---|---|
|
d0260dccad | |
|
48e1602433 | |
|
a77a393d4d | |
|
b24c2e5db9 | |
|
7fdc68563c |
|
@ -233,41 +233,6 @@ function downloadMenu() {
|
|||
'{downloads: $downloads}'
|
||||
}
|
||||
|
||||
|
||||
# Show a menu to select and download an ogLive ISO image from the OpenGnsys website.
|
||||
function download_old() {
|
||||
local OGLIVE NISOS i HTTPCODE TARGETFILE
|
||||
local ISOREL
|
||||
[ $# -gt 1 ] && raiseError usage
|
||||
[ ! -d $DOWNLOADDIR ] && raiseError notfound "Download directory."
|
||||
[ ! -w $DOWNLOADDIR ] && raiseError access "Download directory."
|
||||
# Check parameter.
|
||||
if [ -n "$1" ]; then
|
||||
# ogLive to download.
|
||||
OGLIVEFILE="$1"
|
||||
else
|
||||
# Show download menu.
|
||||
OGLIVE=( $(curl -k --silent $DOWNLOADURL | grep "$DEFOGLIVE.*iso") )
|
||||
NISOS=${#OGLIVE[@]}
|
||||
echo "Available downloads (+ = installed, * = full compatibility):"
|
||||
for i in $(seq 1 $NISOS); do
|
||||
[ -e $DOWNLOADDIR/${OGLIVE[i-1]} ] && OGLIVE[i-1]="(+) ${OGLIVE[i-1]}"
|
||||
ISOREL=${OGLIVE[i-1]##*-r}; ISOREL=${ISOREL%%.*}
|
||||
[ $ISOREL -ge $MINREL ] && OGLIVE[i-1]="(*) ${OGLIVE[i-1]}"
|
||||
done
|
||||
select opt in "${OGLIVE[@]}"; do
|
||||
[ -n "$opt" ] && OGLIVEFILE=${opt##* } && break
|
||||
done
|
||||
fi
|
||||
# Get download size.
|
||||
SOURCELENGTH=$(curl -k --head --retry 5 --retry-delay 5 --max-time 30 $DOWNLOADURL/$OGLIVEFILE | awk -F: '/Content-Length:/ {print $2}')
|
||||
[ -n "$SOURCELENGTH" ] || raiseError download "$OGLIVEFILE"
|
||||
# Download ogLive.
|
||||
TARGETFILE=$DOWNLOADDIR/$OGLIVEFILE
|
||||
trap "rm -f $TARGETFILE" 1 2 3 6 9 15
|
||||
curl -k --retry 5 --retry-delay 5 --max-time 30 $DOWNLOADURL/$OGLIVEFILE -o $TARGETFILE || raiseError download "\"$OGLIVEFILE\"."
|
||||
}
|
||||
|
||||
update_json() {
|
||||
local key=$1
|
||||
local value=$2
|
||||
|
|
|
@ -95,7 +95,18 @@ echo "Modificando el archivo tftpboot"
|
|||
|
||||
install_oglive(){
|
||||
echo "Download ogLive"
|
||||
/opt/opengnsys/ogboot/bin/oglivecli download "$DEFAULT_OGLIVE"
|
||||
MAX_ATTEMPTS=3
|
||||
ATTEMPT=1
|
||||
SUCCESS=0
|
||||
while [ $ATTEMPT -le $MAX_ATTEMPTS ]; do
|
||||
/opt/opengnsys/ogboot/bin/oglivecli download "$DEFAULT_OGLIVE" && SUCCESS=1 && break
|
||||
echo "Intento $ATTEMPT de descarga de ogLive fallido."
|
||||
ATTEMPT=$((ATTEMPT+1))
|
||||
sleep 2
|
||||
done
|
||||
if [ $SUCCESS -eq 0 ]; then
|
||||
echo "Error: No se pudo descargar ogLive después de $MAX_ATTEMPTS intentos. Continuando..."
|
||||
fi
|
||||
}
|
||||
|
||||
configure_ipxe(){
|
||||
|
|
|
@ -1,3 +1,52 @@
|
|||
opengnsys ALL=(ALL) NOPASSWD: /opt/bin/oglivecli
|
||||
opengnsys ALL=(root) NOPASSWD: /usr/bin/chmod, /usr/bin/chown, /usr/bin/md5sum, /usr/bin/smbpasswd, /usr/bin/cat, /usr/bin/tee, /usr/bin/sed, /usr/bin/gzip, /usr/bin/lz4, /usr/bin/cpio, /usr/bin/find, /bin/tee, /usr/bin/dd, /usr/bin/mkfs.ext4, /usr/bin/rsync
|
||||
opengnsys ALL=(root) NOPASSWD: __OGBOOT_TARGET__/lib/*.iso /mnt
|
||||
# Variables para facilitar la lectura
|
||||
Cmnd_Alias MOUNT_RECOVERY = \
|
||||
/usr/bin/mkdir -p /mnt/recovery, \
|
||||
/usr/bin/mount /dev/* /mnt/recovery, \
|
||||
/usr/bin/mount --bind /dev /mnt/recovery/dev, \
|
||||
/usr/bin/mount --bind /proc /mnt/recovery/proc, \
|
||||
/usr/bin/mount --bind /sys /mnt/recovery/sys, \
|
||||
/usr/bin/umount /mnt/recovery/dev, \
|
||||
/usr/bin/umount /mnt/recovery/proc, \
|
||||
/usr/bin/umount /mnt/recovery/sys, \
|
||||
/usr/bin/umount -l /mnt/recovery
|
||||
|
||||
|
||||
Cmnd_Alias OGBOOT = \
|
||||
/opt/bin/oglivecli, \
|
||||
/usr/bin/chmod, \
|
||||
/usr/bin/chown, \
|
||||
/usr/bin/md5sum, \
|
||||
/usr/bin/smbpasswd, \
|
||||
/usr/bin/cat, \
|
||||
/usr/bin/tee, \
|
||||
/usr/bin/sed, \
|
||||
/usr/bin/gzip, \
|
||||
/usr/bin/lz4, \
|
||||
/usr/bin/cpio, \
|
||||
/usr/bin/find, \
|
||||
/bin/tee, \
|
||||
/usr/bin/dd, \
|
||||
/usr/bin/mkfs.ext4, \
|
||||
/usr/bin/rsync, \
|
||||
/opt/opengnsys/ogboot/lib/*.iso /mnt
|
||||
|
||||
|
||||
Cmnd_Alias CHROOT_GRUB = \
|
||||
/usr/sbin/chroot /mnt/recovery /usr/sbin/grub-install --target=i386-pc *, \
|
||||
/usr/sbin/chroot /mnt/recovery /usr/sbin/grub-mkconfig -o /boot/grub/grub.cfg
|
||||
|
||||
Cmnd_Alias LOOP_KPARTX = \
|
||||
/usr/sbin/losetup -d *, \
|
||||
/usr/sbin/kpartx -av /opt/opengnsys/ogrepository/images_virtual/*, \
|
||||
/usr/sbin/kpartx -d /opt/opengnsys/ogrepository/images_virtual/*, \
|
||||
/usr/sbin/blkid /dev/mapper/*
|
||||
|
||||
Cmnd_Alias KILL_BT = \
|
||||
/usr/bin/pkill -9 btlaunchmany, \
|
||||
/usr/bin/pkill -9 bttrack, \
|
||||
/usr/bin/kill -9 *
|
||||
|
||||
Cmnd_Alias PYTHON_OGREPO = /usr/bin/python3 /opt/opengnsys/ogrepository/bin/*
|
||||
|
||||
# Permitir al usuario opengnsys ejecutar estos comandos sin contraseña
|
||||
opengnsys ALL=(root) NOPASSWD: MOUNT_RECOVERY, CHROOT_GRUB, LOOP_KPARTX, OGBOOT, KILL_BT, PYTHON_OGREPO
|
||||
|
|
Loading…
Reference in New Issue