chown(1b) on Solnix vs Linux and the BSDs

This page documents /usr/ucb/chown, the BSD-compatibility chown on Solnix. It takes owner[.group] and has only -f and -R. A default Solnix system runs /usr/bin/chown, whose page is not in the bundle. Linux and the BSDs have more options and use owner:group.

What Solnix runs

The command on PATH is the illumos /usr/bin/chown. This page (chown(1b)) documents /usr/ucb/chown. /usr/xpg4/bin/chown is also shipped. The bundle contains the text only for the ucb variant, so the options of /usr/bin/chown and /usr/xpg4/bin/chown are not covered here. Run /usr/ucb/chown explicitly to get the behaviour described below.

Differences

Compared withTopicWhat differs
all fourowner and group separatorSolnix /usr/ucb/chown documents owner[.group], with a dot. Linux, FreeBSD, OpenBSD and NetBSD document owner[:group], with a colon. OpenBSD says the dot still works for compatibility. FreeBSD and NetBSD say the colon replaced the dot so names can contain a dot.
Source: Solnix chown(1b) SYNOPSIS; Linux chown(1) SYNOPSIS; FreeBSD chown(8) COMPATIBILITY; OpenBSD chown(8) STANDARDS; NetBSD chown(8) COMPATIBILITY
all fourgroup-only formThe Linux, FreeBSD, OpenBSD and NetBSD synopses accept a bare :group operand to change only the group. The Solnix synopsis requires owner and does not document a group-only form.
Source: Solnix chown(1b) SYNOPSIS; Linux chown(1) DESCRIPTION; FreeBSD chown(8) SYNOPSIS; OpenBSD chown(8) SYNOPSIS; NetBSD chown(8) SYNOPSIS
all foursymlinks with -RSolnix -R changes the ownership of symbolic links it meets and does not traverse them. There is no -H, -L or -P. The other four systems offer -H, -L and -P and default to -P (no symlinks followed during traversal).
Source: Solnix chown(1b) -R; Linux chown(1) -H, -L, -P; FreeBSD chown(8) -P; OpenBSD chown(8) -R; NetBSD chown(8) -P
all four-h missingSolnix /usr/ucb/chown has no -h. Linux (--dereference is the default), FreeBSD, OpenBSD and NetBSD use -h to change a symlink itself. On OpenBSD, -h and -R are mutually exclusive. On NetBSD, -L and -h cannot be combined.
Source: Solnix chown(1b) SYNOPSIS; Linux chown(1) -h, --dereference; FreeBSD chown(8) -h; OpenBSD chown(8) -h; NetBSD chown(8) -h
FreeBSD, NetBSD-f and exit statusOn Solnix, -f means do not report errors. FreeBSD and NetBSD -f also stops failures from changing the exit status. The Solnix page has no EXIT STATUS section. Linux -f suppresses most error messages.
Source: Solnix chown(1b) -f; FreeBSD chown(8) -f; NetBSD chown(8) -f; Linux chown(1) -f
Linux, FreeBSD, NetBSDverbose and extra optionsSolnix has only -f and -R. Linux has -c, -v, --from, --reference and --preserve-root. FreeBSD has -v and -x. NetBSD has -d, -v and --reference. OpenBSD has -h plus the traversal flags only.
Source: Solnix chown(1b) SYNOPSIS; Linux chown(1) OPTIONS; FreeBSD chown(8) SYNOPSIS; NetBSD chown(8) SYNOPSIS; OpenBSD chown(8) SYNOPSIS
FreeBSD, OpenBSD, NetBSDwho may change ownershipSolnix says the default is super-user only, but {_POSIX_CHOWN_RESTRICTED} and the privileges PRIV_FILE_CHOWN and PRIV_FILE_CHOWN_SELF also affect it. FreeBSD, OpenBSD and NetBSD say only the super-user may change the owner. OpenBSD notes that some non-BSD systems let the file owner do it.
Source: Solnix chown(1b) DESCRIPTION; FreeBSD chown(8) DESCRIPTION; OpenBSD chown(8) DESCRIPTION, STANDARDS; NetBSD chown(8) DESCRIPTION
OpenBSD, NetBSDset-user-ID bitsOpenBSD chown clears the set-user-ID and set-group-ID bits by default. NetBSD does so unless run by the super-user. The Solnix page does not say whether these bits are cleared.
Source: OpenBSD chown(8) DESCRIPTION; NetBSD chown(8) DESCRIPTION; Solnix chown(1b) DESCRIPTION
FreeBSD, OpenBSD, NetBSDnumeric namesSolnix accepts a decimal UID or a login name, and a decimal GID or a group name. FreeBSD and OpenBSD use the operand as a name if it is also a number. NetBSD looks up names first and lets a leading # force a number.
Source: Solnix chown(1b) DESCRIPTION; FreeBSD chown(8) DESCRIPTION; OpenBSD chown(8) DESCRIPTION; NetBSD chown(8) DESCRIPTION
FreeBSDSIGINFOFreeBSD chown prints the current file and its old and new owner and group on SIGINFO. The Solnix page does not document this.
Source: FreeBSD chown(8) DESCRIPTION; Solnix chown(1b)

Standards

  • POSIX: chown is a POSIX.1-2024 utility.
  • Solnix: The chown(1b) page has no STANDARDS section. It refers to largefile(7) for files of 2 Gbyte or more and to privileges(7).
  • FreeBSD: The chown utility is expected to be IEEE Std 1003.2 (“POSIX.2”) compliant. -v and -x are non-standard.
  • OpenBSD: The chown utility is compliant with the specification. Specifying group without owner is an extension.
  • NetBSD: The chown command is expected to be POSIX 1003.2 compliant. -v, -d and the use of “#” to force a numeric lookup are extensions to IEEE Std 1003.2 (“POSIX.2”).

Writing portable scripts

  • Use only -R and -f, and write the operand as owner:group, when you need the same script on Linux, the BSDs and Solnix. Do not rely on the dot separator, -h, -v or -H/-L/-P.
  • On Solnix, remember that bare chown runs /usr/bin/chown, not the /usr/ucb variant this page documents. Call the full path if you depend on the dot syntax.

Every difference here is taken from the manual pages linked above: Solnix's published page, Linux (man-pages and the GNU and util-linux manuals), FreeBSD, OpenBSD and NetBSD. Each row names its source. Where a manual is silent, this page is too. Compiled 2026-10-26. Found a mistake? Mail hackers@lists.solnix.io.