def format_open(path, flags): path = abspath(path) if path in allowed_files: return None elif (flags & O_CREAT) and not exists(path): return "%s %s" % (T.cyan("create file"), T.underline(path)) elif (flags & O_TRUNC) and exists(path): return "%s %s" % (T.red("truncate file"), T.underline(path)) else: return None
def filter_mknod(path, type): if exists(path): return None, None elif (type & S_IFCHR): label = "create character special file" elif (type & S_IFBLK): label = "create block special file" elif (type & S_IFIFO): label = "create named pipe" elif (type & S_IFSOCK): label = "create socket" else: # mknod(2): "Zero file type is equivalent to type S_IFREG" label = "create file" return "%s %s" % (T.cyan(label), T.underline(path)), 0
def filter_open(process, path, flags): if path in allowed_files: return None, None if (flags & O_CREAT) and not exists(path): operation = "%s %s" % (T.cyan("create file"), T.underline(path)) elif (flags & O_TRUNC) and exists(path): operation = "%s %s" % (T.red("truncate file"), T.underline(path)) else: operation = None if (flags & O_WRONLY) or (flags & O_RDWR) or (flags & O_APPEND) or (operation is not None): # File might be written to later, so we need to track the file descriptor return_value = process.register_path(path) else: return_value = None return operation, return_value
def format_create_directory(path): return "%s %s" % (T.cyan("create directory"), T.underline(abspath(path)))
def format_create_link(path_source, path_target, symbolic): label = "create symbolic link" if symbolic else "create hard link" return "%s from %s to %s" % (T.cyan(label), T.underline(abspath(path_source)), T.underline(abspath(path_target)))
def filter_create_directory(path): return "%s %s" % (T.cyan("create directory"), T.underline(path)), 0
def filter_create_link(path_source, path_target, symbolic): label = "create symbolic link" if symbolic else "create hard link" return "%s from %s to %s" % (T.cyan(label), T.underline(path_source), T.underline(path_target)), 0