[OmniOS-discuss] Error attempting to switch to OpenSSH on r151014 or r151018

Volker A. Brandt vab at bb-c.de
Mon Jun 13 15:46:37 UTC 2016


> > "leaving this here" so that others may find and benefit, and perhaps
> > the pkg rule will be cleaned up for OmniOS, now that ftpd isn't
> > there...
>
> It's currently a documented interface in pkg(5).  And I quote from the man page:
>
>    User Actions
>        The user action defines a UNIX user as defined in /etc/passwd,
>        /etc/shadow, /etc/group, and /etc/ftpd/ftpusers files. Entries are
>        added to the appropriate files for users defined with this user action.
>
>        The user action is intended to define a user for a daemon or other
>        software to use. Do not use the user action to define administrative or
>        interactive accounts.
>
> And weirder still, in spite of removing any default FTP server, the
> /etc/ftpd directory is part of the basic packages:

I think the OPs problem was that the file ftpusers had vanished.
In Solaris 11.x, both the file /etc/ftpd/ftpusers and the symlink
pointing to it (/etc/ftpusers) are packaged in system/core-os.

The underlying issue is that in the IPS source file

  /usr/lib/python2.6/vendor-packages/pkg/actions/user/.py

thíngs like

        def install(self, pkgplan, orig, retry=False):
                """client-side method that adds the user...
                   update any attrs that changed from orig
                   unless the on-disk stuff was changed"""
[...]
                        pw.writefile()
                        gr.writefile()
                        ftp.writefile()
                except EnvironmentError, e:
                        if e.errno != errno.ENOENT:
                                raise
                        # If we're in the postinstall phase and the files
                        # *still* aren't there, bail gracefully.
                        if retry:
                                txt = _("User cannot be installed without user "
                                    "database files present.")
                                raise apx.ActionExecutionError(self, error=e,
                                    details=txt, fmri=pkgplan.destination_fmri)

are hardcoded.  To avoid the problem here, the attempt to write to
/etc/ftpd/ftpusers should only be made if the file actually exists.


Regards -- Volker
-- 
------------------------------------------------------------------------
Volker A. Brandt               Consulting and Support for Oracle Solaris
Brandt & Brandt Computer GmbH                   WWW: http://www.bb-c.de/
Am Wiesenpfad 6, 53340 Meckenheim, GERMANY            Email: vab at bb-c.de
Handelsregister: Amtsgericht Bonn, HRB 10513              Schuhgröße: 46
Geschäftsführer: Rainer J.H. Brandt und Volker A. Brandt

"When logic and proportion have fallen sloppy dead"


More information about the OmniOS-discuss mailing list