Jump to content United States-English
HP.com Home Products and Services Support and Drivers Solutions How to Buy
» Contact HP
More options
HP.com home
HP CIFS Client A.01.09 Administrator's Guide: HP-UX 11.0 and 11i version 1 and 2 > Chapter 7 Configuration File

Configuration Variables

» 

Technical documentation

Complete book in PDF
» Feedback
Content starts here

 » Table of Contents

 » Glossary

 » Index

The following is a list of all variables that may be configured at the top level:

logLevels

The value of this variable is an array enumerating all logging modes that are active. A logging mode is a string out of the following set:

info

[0] Logging of informational messages. Should be turned on.

error

[1] Logging error messages. Should be turned on.

debug

[2] General debug messages. Used only during debugging.

resource

[3] Messages about allocation and deallocation of objects. Usedl only during debugging.

netbiosError

[4] Logging error messages from the Netbios layer. Should be turned on, unless too many errors occur. This is separated from general error logging because not all of Netbios is implemented in HP CIFS Client, and the unimplemented features result in Netbios error messages.

netbiosDebug

[5] Debug messages from the Netbios layer. Used only during debugging.

netbiosTrace

[6] Generates hex-dumps of all outgoing and incoming Netbios traffic. This is very useful during debugging but should be turned off for normal operation.

nfsTrace

[7] Provides detailed information about all NFS requests done by the kernel and the respective return values. It is very useful for debugging NFS but should be turned off for normal operation.

rare

[8] Logging of rare conditions. Used only during debugging.

cacheDebug

[9] Debugging of the cache's operation. Used only during debugging.

cifsTrace

[10] Logging of all CIFS commands issued and the respective return values. Very useful together with netbiosTrace for debugging, but should really be turned off during normal operation.

oplock

[11] Debugging of opportunistic lock mechanism. Used only during debugging.

warn

[12] Warnings of any kind, mostly used by the configuration file parser. Should be turned on.

smbSequence

[13] Debugging messages about the order of HP CIFS requests and the respective messages. Used only during debugging.

debugAttributes

[13] Debugging of file attribute routines. Useful only during debugging.

The numbers in square brackets which precede the descriptions are used to denote messages of the respective logging mode in the logging output.

cfgParseInterval

HP CIFS Client can reparse the configuration file while running. For this feature to work, the HP CIFS Client must poll the file regularly. The variable cfgParseInterval defines the time of this poll cycle in milliseconds. If it is set to 0, the file is only parsed once during startup. The default is 0.

sockMode
sockOwner
sockGroup

File access mode and ownership for the UNIX domain socket that is used for communication between the HP CIFS Client daemon and the commandline utilities. The access mode may be given in octal notation, if prefixed with a leading 0; in hexadecimal notation if prefixed with a leading 0x; or in decimal notation if not prefixed with any of the above. Owner and group may be given by name or as numeric id. Do not set these values to anything other than mode=0600 and owner=root unless you really know what you are doing. The file access modes of this UNIX domain socket are used to provide secure authentication of the user that requests a service to the daemon. If these variables are not configured from the file, they default to the correct values.

runAsUser

The HP CIFS Client daemon must be started as root. To improve security, it switches to a different user-id if root privileges are not needed. The user id used for this purpose can be configured with this value. It may be either a user name or a numeric id.

pidFile

HP CIFS Client can maintain a file with the process id of the daemon, if desired. If this variable is defined, it is interpreted as the path of the file where the pid should be stored. If it is not defined, no such file is created.

databaseFile

This variable configures the path to the user database file. It stores passwords, mounts, and the registration key. The default is /var/opt/cifsclient/cifsclient.udb.

allowSaving

This boolean variable defines whether user passwords and mounts may be stored in the user database. Setting it to no disables storing. The default is yes.

caseConvertFile

This variable configures the path to the case conversion table. This file defines the mapping to upper and lower case for all unicode characters. The default is to use no table file and retain the default ISO 8859-1 mapping. A mapping file derived from the Unicode standard is part of the HP CIFS Client distribution. You can find it at unitables/unicase.cfg.

serverCharMapFile

This variable configures the path to the character mapping file for the server. This file is only used when client and server do not agree on using Unicode. It defines the mapping from the internal Unicode representation to the ASCII strings sent to the server (and vice versa). The default is a codepage 437 mapping, which is the US-Latin DOS character set. Mapping files for various character sets are distributed with HP CIFS Client in the directory unitables.

clientCharMapFile

This variable configures the path to the character mapping file for the client. This file defines the mapping from internal Unicode representation to the ASCII strings seen at the client. Together with the serverCharMapFile, any conversions between server and client character code can be accomplished. These tables can be used to compensate for vendor-specific character sets and to cope with various national character sets such as JIS and ShiftJIS for Kanji, etc. The default is ISO 8859-1 mapping.

uniTableCompressBlocks

This integer variable customizes the compression of the Unicode table. A higher value reduces conversion speed but improves memory efficiency. Values higher than the number of contiguous unused code blocks have no effect. The default is 3.

nfsSockRxBuf

This integer variable sets the receive buffer size of the socket used to communicate with the kernel. If the value given is out of the acceptable range for your machine, the HP CIFS Client automatically limits the range. Increase the buffer size if you have extremely slow writes.

nfsSockTxBuf

This integer variable sets the transmit buffer size of the socket used to communicate with the kernel. It is not be necessary to set an explicit buffer size.

nfsTransferSize

This integer variable defines the maximum block size used in data transfer between the kernel and HP CIFS Client. The maximum allowed value is 8k (8192). It may be necessary to reduce the value if the NFS socket has frequent overflows, as it may be the case with AIX 3.x. It is useful to use only powers of 2 as block sizes. The default is 8192.

scopeID

This string variable defines the Netbios name scope of the client. If it is not defined, no scope ID is used. If you do not know what a scope ID is, you do not need one.

rmTmpKerbCredFiles

When kerberos authentication is used , the CIFS Client utilizes a temporary file to store users’ credentials during login processing. There is one temporary credentials file per user per server. Kerberos tickets are not reused by the CIFS Client, thus when the user’s login processing is complete, the temporary file is removed. If required for troubleshooting, the files can be preserved by setting this variable to “no”. The files are located in /var/opt/cifsclient/krb5_tmp.

defaultServer

The baroque structure of CIFS has its mirror in the multitude of configuration options for CIFS connections. This variable defines a default behavior which can be overridden by specific configurations for each server. The value is a dictionary with the following keys:

localNetbiosName

This entry can be used to set the Netbios name for the client that is sent to the server.

mtabName

This string variable defines the hostname used in mount table entries and in the output of mount(1M) and bdf(1M). If it is set to the null string: mtabName = “ “ the entry is displayed in the stardard UNIX format for mounted filesystems.

connectTimeout

This integer variable defines the maximum time in milliseconds that is waited for a connection to succeed. You probably have to increase the time if you are on a slow network. The default is 2000ms (2 seconds).

requestTimeout

This integer variable defines the maximum time in milliseconds a server response may take (if the connection is already established). The default is 60000ms (60 seconds).

authenticationLevel

This entry specifies the method that the HP CIFS Client should use to authenticate users to the CIFS server. Allowed values are ntlm or kerberos. If the value is set to ntlm, only the NTLM protocol will be used for logins to the server. If the value is set to kerberos, then if the server supports Kerberos, only Kerberos will be used for logins. Otherwise, NTLM will be used.

nfsTimeout

This integer variable defines the initial timeout in 1/10 seconds that is used by the kernel when it requests data from HP CIFS Client. This value is doubled on each retry. Together with nfsRetransmit, this defines the absolute timeout for NFS requests. A value of 50 (5 seconds) avoids frequent retries of already running (slow) requests and ensures a total timeout of about 2 minutes. This should be sufficient even for the slowest devices and links. If you use a jukebox, it may also be necessary to increase requestTimeout.

nfsRetransmit

This integer variable defines the number of retries the kernel attempts when HP CIFS Client does not reply in time. The timeout starts with nfsTimeout and is doubled on each retry. Retransmissions should not be necessary, because HP CIFS Client should not lose any requests. However, if your system's NFS client puts high loads on NFS servers and has small maximum socket buffer sizes, requests can get lost due to buffer overflows. A value of 5 (which is also the default) should be a good choice. You may want to experiment with nfsTimeout to get the optimum performance even with frequent buffer overflows.

nfsAttributeCaching


A boolean variable that can enable file-attribute caching by NFS, effectively overriding the CIFS client’s attribute cache). This improves performance of certain types of operations (such as creating tar(1) archives of large numbers of files residing on mounted CIFS filesystems), by reducing the number of get attribute calls sent over the network. The deault setting is no.

lookupStrategy

As you probably know, the HP CIFS Client maps between NFS requests and SMB/CIFS requests. On the NFS side, files are referenced by unique identifiers, called NFS file handles. On the HP CIFS side, files are referenced simply by their path. The HP CIFS Client must be able to determine the path given to an NFS file handle. There are two strategies available to do this:

  • pseudoInode

    This strategy derives the NFS file handle as a hash value from the path. The hash is chosen in a way that makes efficient lookups possible, as long as the depth of the file in the directory hierarchy is lower than 27. The advantage of this strategy is the low memory consumption: Files can be looked up on demand, nothing has to be stored. The main disadvantage is that NFS file handles change when files are renamed. This leads to a conflict with Unix semantics when open files are renamed: After renaming, the handle of the open file is stale and the file can not be accessed without reopening. It also conflicts with a bug in the caching code of the Solaris NFS client where the writeback occurs only after closing the file, not during closing the file.

  • database

    In this strategy all NFS file handle to file path relations are stored in an internal database. This is the most secure and most compatible approach. The disadvantage is that all this information must be kept in memory. The HP CIFS Client needs about 500kB more real memory and about 10MB more virtual memory for each share that uses this strategy.

The database strategy is the default.

caseSensitive

This is a boolean variable (possible values yes or no) which specifies whether filenames on the server are case sensitive. By default, they are case sensitive in order to be consistent with the UNIX file system. If you use a case mapping different from none (see next parameter), you must set this parameter to no.

caseMapping

This variable (of type enumeration) defines whether file names are mapped to all upper case (upper), all lower case (lower) or preserved as they are on the server (none).

capitalizeShares

This boolean variable defines whether share names are converted to all uppercase characters before a connection is attempted. Share names should be case insensitive, but Windows 95 does not accept lowercase names. If this option occurs in section serverClasses, it can override a no to a yes, but not a yes to a no. The default is yes.

useUnicode

This boolean variable specifies whether the HP CIFS Client will use Unicode if the server supports it.

domain

This string variable defines the domain name the client sends to the server. If undefined, it defaults to an empty string which should be suitable for all known servers.

alwaysEncryptData

If this boolean variable is set to yes, only SSL (Secure Socket Layer) connections with the server are accepted. If set to no, SSL is negotiated with the server.

guestUser

The guestUser configuration solves the following problem: each UNIX user must be logged in at the server (be mapped to a CIFS username/password pair) in order to access anything, even if the share is public. It may be impractical to log in each user if there is a large number of Unix users who want to access a public share where access permissions are not important. If you define a guestUser, all Unix users that are not logged in are treated as if they were the given Unix user. The UNIX user named in guestUser should be logged in, of course, e.g. with the -s option to cifsmount or cifslogin.

fakeMountpointDate

If this boolean variable is yes, the modification and access times of the mount point always read the current time. This is useful for servers that return bogus values for the modification dates of root directories, such as Windows NT or Windows 95. The default is no.

execMapping

This enumeration variable is useful for files stored on Windows servers. It defines which DOS attribute whould be mapped to the UNIX execute permission. The following keywords are valid: archive, system, hidden, on, or off. Default is on. A side-effect of execMapping is that if the configured attribute is set on the NT server, the file will be listed on the UNIX Client with the execute bit set for all users (owner, group, and other).

WARNING! If you plan to store UNIX executables on an NT server and invoke them on a UNIX Client, then the default setting execMapping = on is required. In this case, as seen by the UNIX Client, the execute bit is set on all file listings from the Windows server. Using execMapping = on will not affect the attributes of files on HP CIFS Servers; those will still behave like normal UNIX files.

execInvert

When this boolean variable is yes, the execute bit (as derived with the execMapping setting) is inverted.

dirDefaultLinks

If the server does not supply a number of hard-links for directories, this number is used. The value defaults to 2, if not specified. Some implementations of the UNIX utility find determine whether recursion is necessary or not from the link count. If your find uses this optimization, you may want to fake a high number of links for directories. Alternatively you can switch off the optimization with a commandline switch to find.

enableFakeLinks

If this boolean variable is set to yes, the HP CIFS Client can do softlinks on Windows-servers. These softlinks can be used by the HP CIFS Client clients only. On the Windows server they look like ordinary files with special attributes set (system and hidden attributes, if you have not modified the configuration).

linkModeMask, linkMode

These two integer variables define the file attributes that are used to distinguish faked softlinks from ordinary files. linkModeMask is 7 by default, which means that the attributes read-only, hidden and system are taken into account. linkMode defines the actual state that these attributes must have. It is 6 by default, which means that hidden and system must be set, but not read-only. The configuration value is calculated as the sum of the following components:

Table 7-1 Title not available (Configuration Variables)

1

read-only2

hidden

4

system

32

archive

 

linksAreUnicode

If this boolean variable is set to yes, the HP CIFS Client stores faked links in Unicode format on the server. This is incompatible with the CygWin32 format for symbolic links, but allows lossless storage of client paths. If it is set to no, symbolic links are more or less compatible to those of CygWin32 on Windows, but a conversion to the server character set is performed. Regardless of this variable, the HP CIFS Client can read symbolic link files in both formats.

attributesCacheTime

File attributes are cached for this amount of time (in milliseconds).

dirCacheTime

Directory contents are cached for this amount of time (in milliseconds).

maxCachedFiles

This is the maximum number of file objects that are held as cache of NFS file handles. If an NFS file handle is requested which is not in the cache, it must be looked up recursively, which may result in a notable performance loss. Recursive lookups are logged as rare events.

maxOpenFiles

This is the maximum number of files that will be kept open at the server.

dataCacheSize

This is the size of the data cache that is allocated for open files in bytes. The value is rounded to a multiple of the cache's page size, which is derived from the maximum transferable size. The page size will always be a power of two.

closeDelay

This variable defines the time a file is kept open when it is not used. The value is a dictionary with the following keys:

exclusiveLock

The keep-open time in milliseconds if an exclusive oplock has been acquired.

batchLock

The keep-open time in milliseconds if a batch oplock has been acquired.

noLock

The keep-open time in milliseconds if no lock has been granted.

dataCacheTimeNoLock

If no oplock has been granted, no caching should be done. This might result in bad performance on servers that do not support oplocks. This value sets a cache-valid time (in milliseconds) that is used if no oplock was granted.

readAhead

This variable defines the number of cache pages to read ahead. It is a dictionary with the following keys:

lock

The number of pages to read ahead if an oplock was granted.

noLock

The number of pages to read ahead of no oplock was granted.

useWriteBack

This variable defines whether cache write- back techniques should be used. Write back is insecure (in terms of error recovery) if used with NFS2, but it may increase performance notably. The value is a dictionary with the following keys:

lock

Boolean value which configures whether write back should be used when an oplock has been granted.

noLock

Boolean value which configures whether write back should be used when no oplock has been granted.

If you care about reliability, always leave these options off. This configuration variable is also passed to the server. There are server/OS combinations (notably Samba/Linux) which become very slow in write- through mode. You may want to configure write back for these.

requestOplock

This boolean variable defines whether oplocks should be requested from the server. It should be set to no for Windows95 machines because they grant an oplock although there is no support for it.

closeForSetattr

This boolean variable defines whether files should be closed before attributes (write protection, modification dates) are changed. This is very useful for Windows 95 servers because these servers can not set the attributes of open files. However, with this feature enabled, the UNIX semantics mapping does not work completely. The default is no.

disableSmbs

Not every server supports every SMB command equally well. In fact, many commands are unusable on certain server types. The value of this variable is an array which enumerates the SMB commands that should not be used. The respective commands will be replaced by a workaround automatically. The enumeration constants may be taken from the following set:

getattrFind

Suppresses the use of the trans2/findfirst2 command for reading file attributes. trans2/findfirst2 is the best way to query attributes, so only disable it if you need to.

getattrTrans2QueryPath

Suppresses the use of the trans2/query_pathinfo command for reading file attributes. Trans2/query_pathinfo seems to be broken on Windows 95.

attrUnix

Disables the UNIX extensions for file attributes.

setattrTrans2SetFile

Suppresses the command trans2/setfileinfo to be used for setting file attributes. This SMB command does not work properly on NT.

setattrTrans2SetPath

Suppresses the command trans2/setpathinfo to be used for setting file attributes. This SMB command does not work properly on NT.

setattrSetFile2

Suppresses the use of SET_INFORMATION2 for setting attributes.

setattrCoreWithTime

Suppresses the use of the core SET_INFORMATION command for setting modification dates.

createOpenX

Suppresses the use of SMB_COM_OPEN_ANDX for creating files.

openOpenX

Suppresses the use of SMB_COM_OPEN_ANDX for opening files.

readReadX

Suppresses the use of SMB_COM_READ_ANDX for reading files.

readOpenRead

Suppresses the use of SMB_COM_OPEN_ANDX batched with SMB_COM_READ_ANDX for reading files.

writeWriteX

Suppresses the use of SMB_COM_WRITE_ANDX for writing files.

writeOpenWrite

Suppresses the use of SMB_COM_OPEN_ANDX batched with SMB_COM_WRITE_ANDX for writing files.

findUnix

Disables the CIFS UNIX extensions for reading directories.

findTrans2

Disables the use of trans2/find for reading directories.

fsinfoTrans2

Suppresses the use of trans2/query_fs_info for reading file system infos.

sessionSetup

Suppresses the session setup command (only used for core dialect).

treeconAndX

Suppresses the TREE_CONNNECT_ANDX command (TREE_CONNECT is used instead).

setDirDates

Suppresses setting directory modification dates when files are created or deleted in a directory. This may be useful if the server sets the date automatically when directories are modified.

servers

This variable may modify the values configured with defaultServer for specific servers. It consists of a dictionary where the keys are the Netbios names of servers. The value for each server key is also a dictionary. This dictionary has the same structure as the defaultServer dictionary. In addition, the following keys may be used:

ipAddress

This entry may contain an IP address or a DNS name for the server. By default, the Netbios name is used for a DNS query. This parameter may be overridden from the cifsmount commandline.

netbiosName

This entry is a last chance to change the Netbios name that is sent to the server for a given server.

tcpPort

You may change the TCP port that is used to connect to the server here. Default is 139, the Netbios session service port.

serverClasses

This variable may modify the values configured with defaultServer and servers after the connection has been established based on the information derived from session setup. The decision can depend on the server's operating system and LAN manager type. The format for this variable is an array of dictionaries. Each dictionary must have all of the following three keys:

OS

This entry contains a matching pattern in shell style syntax (* matches any character sequence,? matches one character, [<characters>] matches any of the given characters and [^<characters>] matches none of the given characters). It is matched against the operating system name derived from session setup.

LanManager

This entry also consists of a matching pattern in shell- style syntax. It is matched against the LAN manager name derived from session setup. The operating system name and LAN manager name are printed to syslog if log level info is enabled.

config

If the previous two patterns match, the content of this variable (which must be a dictionary) is used as a server configuration which may contain all definitions that defaultServer may contain. If an option is given, it overrides the respective option from the other configurations. The option disableSmbs is an exception: all disabled SMBs add up to give the final list of disabled SMBs.

The array is searched from the first to the last entry. If an entry matches, the corresponding configuration is used and the search is aborted.

Printable version
Privacy statement Using this site means you accept its terms Feedback to webmaster
© Hewlett-Packard Development Company, L.P.