'\" t .\" Title: smbcacls .\" Author: [see the "AUTHOR" section] .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 08/09/2022 .\" Manual: User Commands .\" Source: Samba 4.13.13-Debian .\" Language: English .\" .TH "SMBCACLS" "1" "08/09/2022" "Samba 4\&.13\&.13\-Debian" "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\ acl] [\-M|\-\-modify\ acl] [\-a|\-\-add\ acl] [\-S|\-\-set\ acl] [\-C|\-\-chown\ name] [\-G|\-\-chgrp\ name] [\-I\ allow|remove|copy] [\-\-numeric] [\-t] [\-U\ username] [\-d] [\-e] [\-m|\-\-max\-protocol\ LEVEL] [\-\-query\-security\-info\ FLAGS] [\-\-set\-security\-info\ FLAGS] [\-\-sddl] [\-\-domain\-sid\ SID] [\-x|\-\-maximum\-access] .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\&. An ACL is comprised zero or more Access Control Entries (ACEs), which define access restrictions for a specific user or group\&. .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 acl .RS 4 Add the entries specified to the ACL\&. Existing access control entries are unchanged\&. .RE .PP \-M|\-\-modify acl .RS 4 Modify the mask value (permissions) for the ACEs specified on the command line\&. An error will be printed for each ACE specified that was not already present in the object\*(Aqs ACL\&. .RE .PP \-D|\-\-delete acl .RS 4 Delete any ACEs specified on the command line\&. An error will be printed for each ACE specified that was not already present in the object\*(Aqs ACL\&. .RE .PP \-S|\-\-set acl .RS 4 This command sets the ACL on the object with only what is specified on the command line\&. Any existing ACL is 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 \-x|\-\-maximum\-access .RS 4 When displaying an ACL additionally query the server for effective maximum permissions\&. Note that this is only supported with SMB protocol version 2 or higher\&. .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 ignored 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 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 ACEs are specified with an "ACL:" prefix, and define permissions granted to an SID\&. The 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 ACEs and either 9 or 2 for directory ACEs\&. Some common flags are: .RS .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\&. .RS .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: .RS .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 part of version 4\&.13\&.13\-Debian 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\&.