<listitem><para><command>get_nt_acl</command> - VFS get_nt_acl()</para></listitem>
<listitem><para><command>fset_nt_acl</command> - VFS fset_nt_acl()</para></listitem>
<listitem><para><command>set_nt_acl</command> - VFS open() and fset_nt_acl()</para></listitem>
- <listitem><para><command>fchmod_acl</command> - VFS fchmod_acl()</para></listitem>
<listitem><para><command>sys_acl_get_file</command> - VFS sys_acl_get_file()</para></listitem>
<listitem><para><command>sys_acl_get_fd</command> - VFS sys_acl_get_fd()</para></listitem>
<listitem><para><command>sys_acl_blob_get_file</command> - VFS sys_acl_blob_get_file()</para></listitem>
return NT_STATUS_OK;
}
-static NTSTATUS cmd_fchmod_acl(struct vfs_state *vfs, TALLOC_CTX *mem_ctx, int argc, const char **argv)
-{
- int fd;
- mode_t mode;
- if (argc != 3) {
- printf("Usage: fchmod_acl <fd> <mode>\n");
- return NT_STATUS_OK;
- }
-
- fd = atoi(argv[1]);
- mode = atoi(argv[2]);
- if (fd < 0 || fd >= 1024) {
- printf("fchmod_acl: error=%d (file descriptor out of range)\n", EBADF);
- return NT_STATUS_OK;
- }
- if (vfs->files[fd] == NULL) {
- printf("fchmod_acl: error=%d (invalid file descriptor)\n", EBADF);
- return NT_STATUS_OK;
- }
-
- if (SMB_VFS_FCHMOD_ACL(vfs->files[fd], mode) == -1) {
- printf("fchmod_acl: error=%d (%s)\n", errno, strerror(errno));
- return NT_STATUS_UNSUCCESSFUL;
- }
-
- printf("fchmod_acl: ok\n");
- return NT_STATUS_OK;
-}
-
-
static NTSTATUS cmd_chown(struct vfs_state *vfs, TALLOC_CTX *mem_ctx, int argc, const char **argv)
{
struct smb_filename *smb_fname = NULL;
"fset_nt_acl <fd>\n" },
{ "set_nt_acl", cmd_set_nt_acl, "VFS open() and fset_nt_acl()",
"set_nt_acl <file>\n" },
- { "fchmod_acl", cmd_fchmod_acl, "VFS fchmod_acl()", "fchmod_acl <fd> <mode>" },
{ "sys_acl_get_file", cmd_sys_acl_get_file, "VFS sys_acl_get_file()", "sys_acl_get_file <path>" },
{ "sys_acl_get_fd", cmd_sys_acl_get_fd, "VFS sys_acl_get_fd()", "sys_acl_get_fd <fd>" },
{ "sys_acl_blob_get_file", cmd_sys_acl_blob_get_file,