'\" t
.\" Title: smbcacls
.\" Author: [see the "AUTHOR" section]
.\" Generator: DocBook XSL Stylesheets v1.78.1
.\" Date: 02/21/2015
.\" Manual: User Commands
.\" Source: Samba 4.0
.\" Language: English
.\"
.TH "SMBCACLS" "1" "02/21/2015" "Samba 4\&.0" "User Commands"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.\" http://bugs.debian.org/507673
.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.\" -----------------------------------------------------------------
.\" * set default formatting
.\" -----------------------------------------------------------------
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
.ad l
.\" -----------------------------------------------------------------
.\" * MAIN CONTENT STARTS HERE *
.\" -----------------------------------------------------------------
.SH "NAME"
smbcacls \- Set or get ACLs on an NT file or directory names
.SH "SYNOPSIS"
.HP \w'\ 'u
smbcacls {//server/share} {/filename} [\-D|\-\-delete\ acls] [\-M|\-\-modify\ acls] [\-a|\-\-add\ acls] [\-S|\-\-set\ acls] [\-C|\-\-chown\ name] [\-G|\-\-chgrp\ name] [\-I\ allow|romove|copy] [\-\-numeric] [\-t] [\-U\ username] [\-d] [\-e] [\-m|\-\-max\-protocol\ LEVEL] [\-\-query\-security\-info\ FLAGS] [\-\-set\-security\-info\ FLAGS] [\-\-sddl] [\-\-domain\-sid\ SID]
.SH "DESCRIPTION"
.PP
This tool is part of the
\fBsamba\fR(7)
suite\&.
.PP
The
smbcacls
program manipulates NT Access Control Lists (ACLs) on SMB file shares\&.
.SH "OPTIONS"
.PP
The following options are available to the
smbcacls
program\&. The format of ACLs is described in the section ACL FORMAT
.PP
\-a|\-\-add acls
.RS 4
Add the ACLs specified to the ACL list\&. Existing access control entries are unchanged\&.
.RE
.PP
\-M|\-\-modify acls
.RS 4
Modify the mask value (permissions) for the ACLs specified on the command line\&. An error will be printed for each ACL specified that was not already present in the ACL list
.RE
.PP
\-D|\-\-delete acls
.RS 4
Delete any ACLs specified on the command line\&. An error will be printed for each ACL specified that was not already present in the ACL list\&.
.RE
.PP
\-S|\-\-set acls
.RS 4
This command sets the ACLs on the file with only the ones specified on the command line\&. All other ACLs are erased\&. Note that the ACL specified must contain at least a revision, type, owner and group for the call to succeed\&.
.RE
.PP
\-C|\-\-chown name
.RS 4
The owner of a file or directory can be changed to the name given using the
\fI\-C\fR
option\&. The name can be a sid in the form S\-1\-x\-y\-z or a name resolved against the server specified in the first argument\&.
.sp
This command is a shortcut for \-M OWNER:name\&.
.RE
.PP
\-G|\-\-chgrp name
.RS 4
The group owner of a file or directory can be changed to the name given using the
\fI\-G\fR
option\&. The name can be a sid in the form S\-1\-x\-y\-z or a name resolved against the server specified n the first argument\&.
.sp
This command is a shortcut for \-M GROUP:name\&.
.RE
.PP
\-I|\-\-inherit allow|remove|copy
.RS 4
Set or unset the windows "Allow inheritable permissions" check box using the
\fI\-I\fR
option\&. To set the check box pass allow\&. To unset the check box pass either remove or copy\&. Remove will remove all inherited acls\&. Copy will copy all the inherited acls\&.
.RE
.PP
\-\-numeric
.RS 4
This option displays all ACL information in numeric format\&. The default is to convert SIDs to names and ACE types and masks to a readable string format\&.
.RE
.PP
\-m|\-\-max\-protocol PROTOCOL_NAME
.RS 4
This allows the user to select the highest SMB protocol level that smbcacls will use to connect to the server\&. By default this is set to NT1, which is the highest available SMB1 protocol\&. To connect using SMB2 or SMB3 protocol, use the strings SMB2 or SMB3 respectively\&. Note that to connect to a Windows 2012 server with encrypted transport selecting a max\-protocol of SMB3 is required\&.
.RE
.PP
\-t|\-\-test\-args
.RS 4
Don\*(Aqt actually do anything, only validate the correctness of the arguments\&.
.RE
.PP
\-\-query\-security\-info FLAGS
.RS 4
The security\-info flags for queries\&.
.RE
.PP
\-\-set\-security\-info FLAGS
.RS 4
The security\-info flags for queries\&.
.RE
.PP
\-\-sddl
.RS 4
Output and input acls in sddl format\&.
.RE
.PP
\-\-domain\-sid SID
.RS 4
SID used for sddl processing\&.
.RE
.PP
\-d|\-\-debuglevel=level
.RS 4
\fIlevel\fR
is an integer from 0 to 10\&. The default value if this parameter is not specified is 0\&.
.sp
The higher this value, the more detail will be logged to the log files about the activities of the server\&. At level 0, only critical errors and serious warnings will be logged\&. Level 1 is a reasonable level for day\-to\-day running \- it generates a small amount of information about operations carried out\&.
.sp
Levels above 1 will generate considerable amounts of log data, and should only be used when investigating a problem\&. Levels above 3 are designed for use only by developers and generate HUGE amounts of log data, most of which is extremely cryptic\&.
.sp
Note that specifying this parameter here will override the
\m[blue]\fBlog level\fR\m[]
parameter in the
smb\&.conf
file\&.
.RE
.PP
\-V|\-\-version
.RS 4
Prints the program version number\&.
.RE
.PP
\-s|\-\-configfile=
.RS 4
The file specified contains the configuration details required by the server\&. The information in this file includes server\-specific information such as what printcap file to use, as well as descriptions of all the services that the server is to provide\&. See
smb\&.conf
for more information\&. The default configuration file name is determined at compile time\&.
.RE
.PP
\-l|\-\-log\-basename=logdirectory
.RS 4
Base directory name for log/debug files\&. The extension
\fB"\&.progname"\fR
will be appended (e\&.g\&. log\&.smbclient, log\&.smbd, etc\&.\&.\&.)\&. The log file is never removed by the client\&.
.RE
.PP
\-\-option==
.RS 4
Set the
\fBsmb.conf\fR(5)
option "" to value "" from the command line\&. This overrides compiled\-in defaults and options read from the configuration file\&.
.RE
.PP
\-N|\-\-no\-pass
.RS 4
If specified, this parameter suppresses the normal password prompt from the client to the user\&. This is useful when accessing a service that does not require a password\&.
.sp
Unless a password is specified on the command line or this parameter is specified, the client will request a password\&.
.sp
If a password is specified on the command line and this option is also defined the password on the command line will be silently ingnored and no password will be used\&.
.RE
.PP
\-k|\-\-kerberos
.RS 4
Try to authenticate with kerberos\&. Only useful in an Active Directory environment\&.
.RE
.PP
\-C|\-\-use\-ccache
.RS 4
Try to use the credentials cached by winbind\&.
.RE
.PP
\-A|\-\-authentication\-file=filename
.RS 4
This option allows you to specify a file from which to read the username and password used in the connection\&. The format of the file is
.sp
.if n \{\
.RS 4
.\}
.nf
username =
password =
domain =
.fi
.if n \{\
.RE
.\}
.sp
Make certain that the permissions on the file restrict access from unwanted users\&.
.RE
.PP
\-U|\-\-user=username[%password]
.RS 4
Sets the SMB username or username and password\&.
.sp
If %password is not specified, the user will be prompted\&. The client will first check the
\fBUSER\fR
environment variable, then the
\fBLOGNAME\fR
variable and if either exists, the string is uppercased\&. If these environmental variables are not found, the username
\fBGUEST\fR
is used\&.
.sp
A third option is to use a credentials file which contains the plaintext of the username and password\&. This option is mainly provided for scripts where the admin does not wish to pass the credentials on the command line or via environment variables\&. If this method is used, make certain that the permissions on the file restrict access from unwanted users\&. See the
\fI\-A\fR
for more details\&.
.sp
Be cautious about including passwords in scripts\&. Also, on many systems the command line of a running process may be seen via the
ps
command\&. To be safe always allow
rpcclient
to prompt for a password and type it in directly\&.
.RE
.PP
\-S|\-\-signing on|off|required
.RS 4
Set the client signing state\&.
.RE
.PP
\-P|\-\-machine\-pass
.RS 4
Use stored machine account password\&.
.RE
.PP
\-e|\-\-encrypt
.RS 4
This command line parameter requires the remote server support the UNIX extensions or that the SMB3 protocol has been selected\&. Requests that the connection be encrypted\&. Negotiates SMB encryption using either SMB3 or POSIX extensions via GSSAPI\&. Uses the given credentials for the encryption negotiation (either kerberos or NTLMv1/v2 if given domain/username/password triple\&. Fails the connection if encryption cannot be negotiated\&.
.RE
.PP
\-\-pw\-nt\-hash
.RS 4
The supplied password is the NT hash\&.
.RE
.PP
\-n|\-\-netbiosname
.RS 4
This option allows you to override the NetBIOS name that Samba uses for itself\&. This is identical to setting the
\m[blue]\fBnetbios name\fR\m[]
parameter in the
smb\&.conf
file\&. However, a command line setting will take precedence over settings in
smb\&.conf\&.
.RE
.PP
\-i|\-\-scope
.RS 4
This specifies a NetBIOS scope that
nmblookup
will use to communicate with when generating NetBIOS names\&. For details on the use of NetBIOS scopes, see rfc1001\&.txt and rfc1002\&.txt\&. NetBIOS scopes are
\fIvery\fR
rarely used, only set this parameter if you are the system administrator in charge of all the NetBIOS systems you communicate with\&.
.RE
.PP
\-W|\-\-workgroup=domain
.RS 4
Set the SMB domain of the username\&. This overrides the default domain which is the domain defined in smb\&.conf\&. If the domain specified is the same as the servers NetBIOS name, it causes the client to log on using the servers local SAM (as opposed to the Domain SAM)\&.
.RE
.PP
\-O|\-\-socket\-options socket options
.RS 4
TCP socket options to set on the client socket\&. See the socket options parameter in the
smb\&.conf
manual page for the list of valid options\&.
.RE
.PP
\-?|\-\-help
.RS 4
Print a summary of command line options\&.
.RE
.PP
\-\-usage
.RS 4
Display brief usage message\&.
.RE
.SH "ACL FORMAT"
.PP
The format of an ACL is one or more ACL entries separated by either commas or newlines\&. An ACL entry is one of the following:
.PP
.if n \{\
.RS 4
.\}
.nf
REVISION:
OWNER:
GROUP:
ACL:://
.fi
.if n \{\
.RE
.\}
.PP
The revision of the ACL specifies the internal Windows NT ACL revision for the security descriptor\&. If not specified it defaults to 1\&. Using values other than 1 may cause strange behaviour\&.
.PP
The owner and group specify the owner and group sids for the object\&. If a SID in the format S\-1\-x\-y\-z is specified this is used, otherwise the name specified is resolved using the server on which the file or directory resides\&.
.PP
ACLs specify permissions granted to the SID\&. This SID again can be specified in S\-1\-x\-y\-z format or as a name in which case it is resolved against the server on which the file or directory resides\&. The type, flags and mask values determine the type of access granted to the SID\&.
.PP
The type can be either ALLOWED or DENIED to allow/deny access to the SID\&. The flags values are generally zero for file ACLs and either 9 or 2 for directory ACLs\&. Some common flags are:
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\fB#define SEC_ACE_FLAG_OBJECT_INHERIT 0x1\fR
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\fB#define SEC_ACE_FLAG_CONTAINER_INHERIT 0x2\fR
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\fB#define SEC_ACE_FLAG_NO_PROPAGATE_INHERIT 0x4\fR
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\fB#define SEC_ACE_FLAG_INHERIT_ONLY 0x8\fR
.RE
.sp
.RE
.PP
At present flags can only be specified as decimal or hexadecimal values\&.
.PP
The mask is a value which expresses the access right granted to the SID\&. It can be given as a decimal or hexadecimal value, or by using one of the following text strings which map to the NT file permissions of the same name\&.
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\fIR\fR
\- Allow read access
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\fIW\fR
\- Allow write access
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\fIX\fR
\- Execute permission on the object
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\fID\fR
\- Delete the object
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\fIP\fR
\- Change permissions
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\fIO\fR
\- Take ownership
.RE
.sp
.RE
.PP
The following combined permissions can be specified:
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\fIREAD\fR
\- Equivalent to \*(AqRX\*(Aq permissions
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\fICHANGE\fR
\- Equivalent to \*(AqRXWD\*(Aq permissions
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\fIFULL\fR
\- Equivalent to \*(AqRWXDPO\*(Aq permissions
.RE
.SH "EXIT STATUS"
.PP
The
smbcacls
program sets the exit status depending on the success or otherwise of the operations performed\&. The exit status may be one of the following values\&.
.PP
If the operation succeeded, smbcacls returns and exit status of 0\&. If
smbcacls
couldn\*(Aqt connect to the specified server, or there was an error getting or setting the ACLs, an exit status of 1 is returned\&. If there was an error parsing any command line arguments, an exit status of 2 is returned\&.
.SH "VERSION"
.PP
This man page is correct for version 3 of the Samba suite\&.
.SH "AUTHOR"
.PP
The original Samba software and related utilities were created by Andrew Tridgell\&. Samba is now developed by the Samba Team as an Open Source project similar to the way the Linux kernel is developed\&.
.PP
smbcacls
was written by Andrew Tridgell and Tim Potter\&.
.PP
The conversion to DocBook for Samba 2\&.2 was done by Gerald Carter\&. The conversion to DocBook XML 4\&.2 for Samba 3\&.0 was done by Alexander Bokovoy\&.