%PDF-
%PDF-
Mini Shell
Mini Shell
"""
This program is free software: you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License,
or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
Copyright © 2019 Cloud Linux Software Inc.
This software is also available under ImunifyAV commercial license,
see <https://www.imunify360.com/legal/eula>
Unmount sigs/v1 from CageFS."""
import logging
import subprocess
from pathlib import Path
logger = logging.getLogger(__name__)
def migrate(migrator, database, fake=False, **kwargs): # NOSONAR python:S1142
if fake:
return
try:
from im360.subsys import clcagefs
filename = clcagefs.CAGEFS_MP_FILENAME
except ImportError:
filename = "/etc/cagefs/cagefs.mp"
try:
text = Path(filename).read_text()
except FileNotFoundError: # indication of a non-cagefs system
return # nothing to do
except Exception as e: # NOSONAR pylint:W0703
logger.exception("Can't read %s, reason: %s", filename, e)
return
else:
if "/var/imunify360/files/sigs/v1" not in text:
return # nothing to do
try:
subprocess.check_call(
r"sed -i.im360-bak '\:/var/imunify360/files/sigs/v1:d' %s"
" && grep /var/imunify360/files/sigs/v1 /proc/mounts"
" | awk '{ print $2 }' | xargs -rn1 umount"
" && /usr/sbin/cagefsctl --wait-lock --unmount-all"
" && /usr/sbin/cagefsctl --wait-lock --force-update-etc"
" && /usr/sbin/cagefsctl --wait-lock --remount-all" % (filename,),
shell=True,
executable="/bin/bash",
)
except Exception as e: # NOSONAR pylint:W0703
logger.exception("Can't unmount sigs/v1, reason: %s", e)
def rollback(migrator, database, fake=False, **kwargs):
pass
Zerion Mini Shell 1.0