Post V16 Enhancements in JRButils for Netware
JRButils on Linux
The majority of programs (84) have been ported to Linux and can be run on an OES2 server or a SLED client with NCL installed. Both 32 and 64 bit versions are available.
New programs
Makehome for OES Linux
A Linux version of makehome is pretty much complete and we are looking for testers. Contact us at support@jrbsoftware.com for a copy. All the features of makehome.nlm are supported.
Pwdpols
Displays settings and associations for password policies or settings for the policies associated with selected users. Both the configuration options and password rules may be displayed, or these can be displayed separately.
Changes to multiple programs
- An issue with extended characters in path names on OES2 Linux (confirmed on SP1, assumed to be in SP2) has surfaced. It is caused by the API (specifically NCP 89 (28) for converting path name spaces returning a path in the current code page instead of UTF-8 as documented. This return path then gets mangled when programs perform a conversion from UTF-8 to the current code page. This API is also used to convert a path in the long name space to its correct case by requesting a conversion from long to long. A work-around has been devised. It is likely that the majority of programs accepting a path on the command line are affected by this issue when the path contains one or more extended characters. Contact support@jrbsoftware.com if affected by this issue. The problem is not present on NetWare 6.5.
- Added logging option “noblanks” for /e and /l to suppress the output of blank lines.
- Added logging option “separator” for /e and /l to place a line of dashes at the end of output. This may be useful when logging output from multiple programs to the same log file to delineate the output from each program.
- Added ‘q’ as an alternative to ‘e’ and ‘ESC’ to quit from the in-built help.
- Fixed an issue where netcopy, fsupdate, movehome and the GUI whodidit could report errors attempting to copy extended attributes for files on NSS volumes on OES Linux. The problem arose due to an incorrect return code from function NWFindFirstEA.
- Updated netcopy, fsupdate, movehome and the GUI whodidit to avoid error 0x8979 (no items found) while setting the attributes when copying files and directories from NetWare to OES Linux. The problem occurred when the owner, modifier or archiver was [Supervisor] which is not a valid object on OES Linux. Many files copied to SYS: during NetWare installation have [Supervisor] as owner.
- Updated all programs capable of performing operations on Windows drives to work with paths exceeding 260 characters in length.
- Reworked the code for checking a password against the password policy which is used to give a meaningful error when the change fails, because eDir returns the generic -319. The changes add several more checks, and fix an error where the number of repeat and consecutive characters were counted incorrectly when the last character in the password was repeated as in abc123DDD.
- Fixed an issue where netcopy, fsupdate, movehome and the GUI whodidit could produce an application error when copying a file exceeding 4.3 GB in size. The issue was introduced last year when the buffer used for copying was increased in size to raise the speed of the copy.
- Fixed an obscure issue in all programs processing paths where an application error could occur when the path exceeded 128 characters in length and contained a file or directory whose name started with a period as in .abc. The problem arose because a path may be represented by a directory map object, and so is passed to several eDir X-plat functions which may cause an application error if there is more than 128 characters (the maximum length of a relative distinguished name) between periods. JRButils performed checks on the path first to avoid this situation but had not allowed for a period being preceded by a backslash (e.g. m:abc\def\.ghi). In eDir such an 'escaped' period is regarded as part of a name rather than a name component separator, hence the 128 character limit could be exceeded.
- Fixed an issue where netcopy, fsupdate, movehome and the GUI whodidit where the X attribute could be set on directories copied to NSS volumes on OES Linux. This arose due to another OES Linux NSS bug.
- Fixed an issue in a number of part 3 programs where if run from a path containing extended characters, and that path was displayed in an edit box, the extended characters displayed incorrectly.
Changes to individual programs
Creatobj
- Replaced the obsolete /b (set up a bindery mode user) with the ability to specify the surname for each new user.
- Replaced /q (create a queue) with the ability to specify a given name for each new user.
Dquota
- Fixed an issue where an application error could occur when the value for free space exceeded 13 characters when formatted for display.
- Increased the field width for numeric values from 13 to 14 characters to allow values up to 99GB to be displayed before the units are changed.
- Fixed an issue when /q was used to display “-1“ instead of “No quota set“, the value was out of alignment.
Fsupdate
- Fixed an issue where /h was not interacting correctly with /a and /b when adding or removing attributes rather than setting a specific value.
- Added /m=a to mirror attributes to files already existing in the target directories.
- Added the ability to specify multiple paths separated by semicolons. These may be destination paths when copying files, or paths which will be deleted, or have their attributes modified.
- Fixed issues with using Windows paths in an input file.
- Fixed an issue where using /x to purge files was failing when the path was given in UNC format.
- Fixed an issue introduced in V16 where it could attempt to process the wrong server when a UNC path was given.
- Fixed an issue where it would not accept /+ as a valid option.
- Fixed an issue where files with extended characters in the name were being deleted from the target directory after copying when mirroring from Windows to NetWare.
- Updated to not delete the directory named ._NETWARE or a file named ~DFSINFO.8-P when mirroring a volume root. These exist on OES Linux volumes.
- Fixed an issue where using a drive letter and “*.” to process only files without extensions was processing all files due to the unexpected removal of the trailing period by a Windows function.
- Updated to display the number of files to be deleted when using /d=r.
- Updated to copy NetWare trustees to Windows when using /t. This is dependent on their being a Windows user with the SAM account name matching the common name of the NetWare trustee.
- Increased the maximum length of a list of server names given in the first or second parameter from 256 to 1024 characters.
- Fixed an issue where giving a list of file server names in a file (e.g. @s.txt/vol1:data\temp) was not working when used with /d because the entire parameter was being treated as a file name.
- Implemented /t to copy the discretionary access control list for files and directories when the source and target path are both Windows drives.
- Added /n=r to prevent retaining compression when copying files.
- Worked around the OES2 SP2a Linux bug where the X attribute can be set unexpectedly when modifying directory attributes via /f and /b.
Getname
- Updated to accept lastname, firstname and othername as attribute names. Previously it accepted these only with an embedded space as in “first name”.
- Fixed an issue where /b to replace spaces with underscores was not working with telephone and fax numbers.
-
Improved the display of values for the following attributes:
- DirXML-EntitlementRef
- nspmMinPasswordLifetime
- nspmConfigurationOptions
- nspmExcludeList
Getquota
- Fixed an issue with calculating the usage in a directory by summing individual file sizes. Getquota was not using 64 bit file sizes, hence only the lower 32 bits of the size were added to the total, resulting in incorrect totals where any files larger than 4.3 GB existed.
- Fixed a cosmetic issue where the subheading incorrectly displayed “Directory” instead of “User” when using /v to display all quotas on a volume.
- Fixed an issue where it did not accept a server and volume in UNC format (e.g. \\garfield\vol1) when /v was used.
- Increased the field width for numeric values from 13 to 14 characters to allow values up to 99GB to be displayed before the units are changed.
Getrest
- Fixed an issue where subsorting by object name was not working when sorting by value.
Grplist
- Added /a to eliminate duplicates when listing the members of nested groups. eDirectory automatically returns members of subgroups but does not remove duplicates.
Gwusers
- Fixed an issue where it could fail without reporting an error for certain problems such as GroupWise not being installed in the default tree. The problem arose due to these checks being done before the command line had been processed.
- Compiled the Part 3 version with different compiler options. The version on the V16 CD may quit part way through processing users in a domain or Post Office. While many hours have been spent unsuccessfully trying to identify the issue, the change in compiler options seems successful as an interim workaround.
Jrbimprt
- Added “Posix home directory” and “Unix home directory” as alternative names for the posixAccount auxiliary class homeDirectory attribute.
-
Added support for LUM enabling users via three new control statements:
- lum enable
- lum group
- lum config object
- Fixed an issue where an application error could occur when creating or modifying GroupWise external users, and no value was provided for the “GroupWise distribution list” field.
- Fixed an error where an aplication error could occur when it failed to find a particular GroupWise post office in a domain.
- Worked around the issue with the X attribute being set unexpectedly on directories on OES Linux volumes as described under “Changes to multiple programs” above.
- Fixed an issue when deleting users, where it would fail to delete them from GroupWise if consecutive users were not in the same domain.
- Fixed an issue where a value of “*” for field “Group membership remove” resulted in an error. This value did work correctly for the “Group membership remove” control statement.
Jrbpass
- Added /g to force use of the GW Admin Object API method for changing a GroupWise password, This assumes the user has sufficient rights to reset the password, whereas the alternative method from the GroupWise Object API requires the old password. Jrbpass uses the alternative method when it cannot confirm the user running jrbpass has sufficient rights for a password reset. However, there may be issues with confirming sufficient rights when GroupWise is hosted on a machine not supporting NCP. In this case, use /g to force use of the password reset method.
Move_dir
- Fixed an issue introduced in V16 where it could report that the servers in the source and destination paths did not match due to a case sensitivity issue.
Netcopy
- Updated to copy NetWare trustees to Windows when using /t. This is dependent on their being a Windows user with the SAM account name matching the common name of the NetWare trustee.
Setattr
- Fixed a cosmetic issue where extra slashes appeared between the volume name and file name when processing files at the volume root.
- Modified to work around an issue when setting attributes for an NSS directory on OES Linux. The “X” attribute could be set in addition to the specified attributes due to an NSS bug. Setattr then failed remove the attribute if “-X” was used, and this has also been fixed.
Setname
- Fixed a long-standing bug where it would not set values for auxiliary class attributes using the “Email address” and “Fax number” syntaxes.
- Fixed an issue where it was incorrectly allowing space for the terminating zero in length limited string attributes. For example, setname previously allowed only 7 chars plus the zero for “Initials” which has a maximum length of 8. It is now possible to set an 8 character value e.g. “12345678”.
- Added /( to allow the setting or removal of specific bits from 32 bit values stored in attributes using the “Interval” or “Integer” syntaxes. For example “setname myApp /a=app:flags /( +0x80000” adds bit 0x80000 to the existing value for app:flags.
Setpword
- Fixed a cosmetic issue when verifying passwords where it would incorrectly refer to the universal password (instead of the “NetWare” password) when universal passwords were supported in the tree, but not enabled for the user whose password was being verified.
- Fixed an issue where it could incorrectly report “Insufficient rights” to change a GroupWise password when a valid path had been given via /h, but the path retrieved via the domain object pointed to a local Linux path.
- Modified to attempt to connect to GroupWise first via the path to the database. Under some circumstances when GroupWise is hosted on OES Linux, connecting via the domain object will cause an unnecessary password prompt to appear, whereas connecting via the path to the domain will succeed silently.
Setrest
-
Modified to check for and copy the following attributes from a password
policy when one is assigned to each user:
- Password unique required
- Password expiration interval
- Password minimum length
- Login grace allowed
Trstlist
- Fixed an issue where it could fail to return trustees without reporting an error when the specified path contained extended characters. The issue was limited to NSS volumes on NW 6.5 SP2 through SP8, it worked correctly on OES Linux. Trstlist worked correctly when the starting path did not contain extended characters, but subdirectories or files did so.
- Added the ability to produce “JRButils for AD” adsettrust commands via /b and /m for use in transferring rights to a Windows server.
- Modified /n to allow listing objects without trustees, as well as files and directories without trustees.
- Modified /v to allow listing objects without trustees, as well as files and directories without trustees.
- Added an option matching /n to the fully GUI version. Its absence was an oversight.
Vol_info
- Fixed an issue where it could change the default tree and server when connected to multiple trees, and processing volume objects.
- Fixed an issue where it could return inconsistent results for volume size under different options where a volume size was less than the pool size and a quota had been applied. NCP functions return the maximum possible volume size rather than the size to which the volume is currently restricted. However, correct results can be obtained via Virtual File Services (VFS), and these are now used.
- Fixed an issue on OES Linux NSS volumes where it could incorrectly report migration was enabled, or fail to report compression was enabled. The issue arose due to an incorrect attribute set being returned via NCP. However, a correct set can be obtained via (VFS), so that is now used.
- Fixed an issue on OES Linux NSS volumes where the /g option would incorrectly report that Mac and NFS name spaces are supported. On this occasion NCP returns a correct result, VFS is incorrect.
Whodidit
- Fixed an issue where it was failing to remove the “\\?\” prefix from a Windows path when reporting that no matching files were found. This prefix is required to correctly handle paths longer than 260 characters.
- Updated to display a Windows file or directory owner’s SID rather than “None” when the SID cannot be translated to an object name.
- Modified the calculation of the path length displayed via /o=g so that the length is always correct for the format in which the path is displayed. Previously for NetWare paths, the length was always based on the long name including the volume but without the server.
- Added options to /i (use UNC format) to control the type of slash used. This allows whodidit to produce unix style unc paths using forward slashes.
- Modified so that the units of the total usage given in the final line of output are controlled by /m. Previously, they were fixed in KB.
