TESTPARM(1)

πŸ’– testparm β€” your smb.conf vibe check πŸ’–

okay bestie, so this is the man page for testparm, a User Command, section 1 of the manual. grab a strawberry drink, we're doing config validation ✨


🌸 NAME 🌸

testparm β€” check an smb.conf configuration file for internal correctness πŸ’…


πŸŽ€ SYNOPSIS πŸŽ€

testparm [-s|--suppress-prompt] [-v|--verbose] [-?|--help] [--usage]
 [-d|--debuglevel=DEBUGLEVEL] [--debug-stdout] {config filename}
 [hostname hostIP]

like, that's the whole shape of it. no cap 🫢


πŸ¦‹ DESCRIPTION πŸ¦‹

This tool is part of the samba(7) suite. yes, the whole squad.

testparm is a very simple test program whose whole job is checking an smbd(8) configuration file for internal correctness. If this program reports no problems, you can use the configuration file with confidence that smbd will successfully load the configuration file. it's giving trustworthy bestie who reads your essay before you submit it 😌

but listen β€” this is NOT a guarantee that the services specified in the configuration file will be available or will operate as expected. it checks the file, not the universe. πŸ’€

If the optional host name and host IP address are specified on the command line, this test program will run through the service entries reporting whether the specified host has access to each service. very much a let me check if you're on the list moment.

If testparm finds an error in the smb.conf file it returns an exit code of 1 to the calling program, else it returns an exit code of 0. This allows shell scripts to test the output from testparm. exit codes are the original mood ring, fr fr 🌈


✨ OPTIONS ✨

  • -s|--suppress-prompt β€” Without this option, testparm will prompt for a carriage return after printing the service names and before dumping the service definitions. basically it's the "okay I'm ready, hit enter" pause, and this flag says no pause, we go straight in πŸ’…
  • -v|--verbose β€” If this option is specified, testparm will also output all options that were not used in smb.conf(5) and are thus set to their defaults. so it shows you the stuff you didn't write, which is lowkey iconic for debugging.
  • --parameter-name parametername β€” Dumps the named parameter. If no section-name is set the view is limited by default to the global section. It is also possible to dump a parametrical option. Therefore the option has to be separated by a colon from the parametername. πŸ‘‘
  • --section-name sectionname β€” Dumps the named section. just the one. one section. main character energy, no ensemble cast.
  • --show-all-parameters β€” Show the parameters, type, possible values. the full spreadsheet reveal πŸ“‹
  • -l|--skip-logic-checks β€” Skip the global checks. (yes, skipping checks. bold. some would say unhinged. you do you, bestie 🌸)
  • -?|--help β€” Print a summary of command line options. the classic helppp button.
  • --usage β€” Display brief usage message. short and sweet, the TL;DR version.
  • -d|--debuglevel=level β€” level is an integer from 0 to 10. The default value if this parameter is not specified is 1 for client applications.

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.

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. like, genuinely HUGE. your terminal will be screaming 😭

Note that specifying this parameter here will override the log level parameter in the /etc/samba/smb.conf file. command line stays winning.
  • --debug-stdout β€” This will redirect debug output to STDOUT. By default all clients are logging to STDERR. sending the drama to a different pipe πŸ’«
  • *--configfile=<configuration file>* β€” The file specified contains the configuration details required by the client. The information in this file can be general for client and server or only provide client specific like options such as client smb encrypt. See /etc/samba/smb.conf for more information. The default configuration file name is determined at compile time. (compile time decided it. not us. we just live here.)
  • *--option=<name>=<value>* β€” Set the smb.conf(5) option "<name>" to value "<value>" from the command line. This overrides compiled-in defaults and options read from the configuration file. If a name or a value includes a space, wrap whole --option=name=value into quotes. don't forget the quotes, bestie, or the shell will eat your words πŸ“
  • -V|--version β€” Prints the program version number. identity check ✨
  • configfilename β€” This is the name of the configuration file to check. If this parameter is not present then the default smb.conf(5) file will be checked. no file? it checks the default one. it's got you 🫢
  • hostname β€” If this parameter and the following are specified, then testparm will examine the hosts allow and hosts deny parameters in the smb.conf(5) file to determine if the hostname with this IP address would be allowed access to the smbd server. If this parameter is supplied, the hostIP parameter must also be supplied. they're a package deal, no splitting them up πŸ’œ
  • hostIP β€” This is the IP address of the host specified in the previous parameter. This address must be supplied if the hostname parameter is supplied. yeah. what I said. they come as a duo. πŸ‘―

🌈 FILES 🌈


πŸ‘‘ DIAGNOSTICS πŸ‘‘

The program will issue a message saying whether the configuration file loaded OK or not. This message may be preceded by errors and warnings if the file did not load. If the file was loaded OK, the program then dumps all known service details to stdout. so it either says "slay" or it yells at you first and then says something. 😭

For certain use cases, SMB protocol requires use of cryptographic algorithms which are known to be weak and already broken. DES and ARCFOUR (RC4) ciphers and the SHA1 and MD5 hash algorithms are considered weak but they are required for backward compatibility. The testparm utility shows whether the Samba tools will fall back to these weak crypto algorithms if it is not possible to use strong cryptography by default. In FIPS mode weak crypto cannot be enabled. 🚨 weak crypto is the red flag ex you keep texting back, except here it's for backwards compatibility. in FIPS mode, that door stays shut. periodt.


⭐ VERSION ⭐

This man page is part of version 4.24.7-Ubuntu-4.24.7+dfsg-1ubuntu1 of the Samba suite.


🧚 SEE ALSO 🧚

go read those too, iykyk πŸ’…


πŸ’– AUTHOR πŸ’–

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. legends, honestly. absolute icons. πŸ”₯


and that's the whole page, bestie!! πŸ’œ this one's from Samba 4.24.7-Ubuntu-4.24.7+dfsg-1ubuntu1, dated 09/13/2026 β€” mwah, go validate your config, you got this πŸŽ€βœ¨πŸ¦‹

πŸ“¦ where this page comes from