Server : nginx/1.18.0 System : Linux localhost 6.14.3-x86_64-linode168 #1 SMP PREEMPT_DYNAMIC Mon Apr 21 19:47:55 EDT 2025 x86_64 User : www-data ( 33) PHP Version : 8.0.16 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, Directory : /lib/python3/dist-packages/uaclient/entitlements/ |
from typing import Callable, Dict, List, Tuple, Union
from uaclient.entitlements import repo
CIS_DOCS_URL = "https://ubuntu.com/security/cis"
USG_DOCS_URL = "https://ubuntu.com/security/certifications/docs/usg"
class CISEntitlement(repo.RepoEntitlement):
help_doc_url = USG_DOCS_URL
name = "cis"
description = "Security compliance and audit tools"
repo_key_file = "ubuntu-advantage-cis.gpg"
apt_noninteractive = True
@property
def messaging(self,) -> Dict[str, List[Union[str, Tuple[Callable, Dict]]]]:
if self._called_name == "usg":
return {
"post_enable": [
"Visit {} for the next steps".format(USG_DOCS_URL)
]
}
messages = {
"post_enable": [
"Visit {} to learn how to use CIS".format(CIS_DOCS_URL)
]
} # type: Dict[str, List[Union[str, Tuple[Callable, Dict]]]]
if "usg" in self.valid_names:
messages["pre_enable"] = [
"From Ubuntu 20.04 and onwards 'ua enable cis' has been",
"replaced by 'ua enable usg'. See more information at:",
USG_DOCS_URL,
]
return messages
@property
def packages(self) -> List[str]:
if self._called_name == "usg":
return []
return super().packages
@property
def title(self) -> str:
if self._called_name == "cis":
return "CIS Audit"
return "Ubuntu Security Guide"