CAP_FTRUNCATE
cap_rights_set(&rights, CAP_FTRUNCATE, CAP_IOCTL, CAP_WRITE);
CAP_FSTAT, CAP_FTRUNCATE, CAP_EVENT)) < 0 &&
CAP_FTRUNCATE, CAP_SEEK, CAP_WRITE);
CAP_FSTATFS, CAP_PREAD, CAP_SYMLINKAT, CAP_FTRUNCATE, CAP_UNLINKAT,
const cap_rights_t cap_ftruncate_rights = CAP_RIGHTS_INITIALIZER(CAP_FTRUNCATE);
cap_rights_set_one(rightsp, CAP_FTRUNCATE);
RIGHTS_INFO(CAP_FTRUNCATE),
CHECK_RIGHT_RESULT(ftruncate(cap_fd, 0), rights, CAP_FTRUNCATE);
TRY_FILE_OPS(fd, CAP_FTRUNCATE);
CHECK_RIGHT_RESULT(rc, rights, CAP_FTRUNCATE, CAP_READ, CAP_LOOKUP);
CHECK_RIGHT_RESULT(rc, rights, CAP_FTRUNCATE, CAP_WRITE, CAP_LOOKUP);
CHECK_RIGHT_RESULT(rc, rights, CAP_FTRUNCATE, CAP_READ, CAP_WRITE, CAP_LOOKUP);
TRY_DIR_OPS(dfd, CAP_FTRUNCATE, CAP_READ, CAP_LOOKUP);
TRY_DIR_OPS(dfd, CAP_FTRUNCATE, CAP_WRITE, CAP_LOOKUP);
TRY_DIR_OPS(dfd, CAP_FTRUNCATE, CAP_READ, CAP_WRITE, CAP_LOOKUP);
CHECK_RESULT(ftruncate, CAP_FTRUNCATE, ret == 0);
CAP_FTRUNCATE | CAP_READ | CAP_LOOKUP, ret >= 0);
CAP_FTRUNCATE | CAP_WRITE | CAP_LOOKUP, ret >= 0);
CAP_FTRUNCATE | CAP_READ | CAP_WRITE | CAP_LOOKUP, ret >= 0);
TRY(CAP_FTRUNCATE);
TRY(CAP_FTRUNCATE | CAP_READ | CAP_LOOKUP);
TRY(CAP_FTRUNCATE | CAP_WRITE | CAP_LOOKUP);
TRY(CAP_FTRUNCATE | CAP_READ | CAP_WRITE | CAP_LOOKUP);
{ CAP_FTRUNCATE, "ft" },
CAP_CREATE, CAP_FCHMODAT, CAP_FCHOWNAT, CAP_FTRUNCATE,
cap_rights_init(&rights, CAP_FSTAT, CAP_FTRUNCATE, CAP_SEEK, CAP_WRITE);
cap_rights_init(&rights, CAP_CREATE, CAP_FSTAT, CAP_FTRUNCATE,
cap_rights_init(&rights, CAP_FSTAT, CAP_FTRUNCATE, CAP_WRITE);