[Pkg-shadow-devel] Bug#808301: login: package description review

Justin B Rye justin.byam.rye at gmail.com
Fri Dec 18 13:46:47 UTC 2015


Package: login
Version: 1:4.2-3.1
Severity: wishlist
Tags: patch

The long package description for login features some distinctly
non-native-speakerish grammar and some out-of-date assumptions.  It's
still perfectly comprehensible, and a case could be made for the
argument that descriptions for "Essential: yes" packages don't much
matter (as no user ever needs to decide whether or not to install
login).  On the other hand it's a high-profile package, so I thought
I'd submit a wishlist patch.

# Description: system login tools

A perfectly good synopsis.

#  These tools are required to be able to login and use your system.

I see three problems here.
 * This sentence starts awkwardly by luring readers up a garden-path
   parsing involving a requirement that these tools should behave in a
   certain way.  There's no need for any phrasing this convoluted when
   it could just say "You need these tools to..."
 * "To login" is wrong.  The noun and of course the executable may be
   single words, but what's needed here is the verb, which is two
   words - it's "I logged myself in", not "I logined myself".
 * It's not true!  Running "rm /bin/login" doesn't stop me logging in
   and using my system via an SSH connection or an X display manager.

Next we run straight into a list of three executables in the package
and their functions.  (The lack of context gives the impression that
it is intended as an exhaustive list of "these tools".)

#                                                                    The
#  login program invokes your user shell and enables command execution.

Since these three programs are being introduced here the more natural
English word-order would be "The program 'login'..." (though this
would be barely noticeable if it wasn't repeated).

But then the rest of the sentence is misleading.  I don't need to use
login to get a shell - I get one free with every xterm; and executing
/bin/login achieves nothing, so from a user's point of view it's not
much of a "tool".  The description omits the important thing about
login, which is that it's invoked by the getty process running on a
TTY (or these days by a systemd getty at .service, however that works
exactly).

#                                                                       The
#  newgrp program is used to change your effective group ID (useful for
#  workgroup type situations).

That's "The program 'newgrp'..."; then "workgroup-type situations"
needs a hyphen and is oddly informal alongside the complex impersonal
phrasing of these sentences (besides which, thanks to Microsoft the
word "workgroup" is hopelessly ambiguous).  But more importantly, how
is "newgrp" important enough to deserve a mention here?  Does anybody
ever use it?  Instead I would suggest introducing /usr/sbin/nologin
here and leaving out newgrp along with sg, faillog, and lastlog.

(And in fact rather than this exclusive focus on the tools - i.e.
executables - in the package, it might also make sense to hint at the
presence of things like /etc/securetty and /etc/pam.d/login by saying
that the package provides "infrastructure".)

#                              The su program allows changing your effective
#  user ID (useful being able to execute commands as another user).

First there's the repeated word-order niggle, then an unclear use of
"allow" (su doesn't just render EUID changes permissible, it directly
changes your EUID).  And as for the part in parentheses... well, I
think it's just trying to say "useful for executing commands...", but
with entirely broken syntax.

This is also a bit dated, since I'm more likely these days to switch
UIDs with sudo (or pkexec or runuser) than with su.

My suggested thoroughly revised version:

 Description: system login tools
  This package provides some required infrastructure for logins and for
  changing effective user or group IDs, including:
   * login, the program that invokes a user shell on a virtual terminal;
   * nologin, a dummy shell for disabled user accounts;
   * su, a basic tool for executing commands as root or another user.

-- System Information:
Debian Release: stretch/sid
  APT prefers testing
  APT policy: (990, 'testing'), (50, 'unstable')
Architecture: i386 (i686)

Kernel: Linux 4.4.0-rc4-686-pae (SMP w/1 CPU core)
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)

Versions of packages login depends on:
ii  libaudit1       1:2.4.4-4
ii  libc6           2.19-22
ii  libpam-modules  1.1.8-3.1
ii  libpam-runtime  1.1.8-3.1
ii  libpam0g        1.1.8-3.1

login recommends no packages.

login suggests no packages.

-- no debconf information
-- 
JBR	with qualifications in linguistics, experience as a Debian
	sysadmin, and probably no clue about this particular package
-------------- next part --------------
A non-text attachment was scrubbed...
Name: packagedescriptionreview.patch
Type: text/x-diff
Size: 1186 bytes
Desc: not available
URL: <http://lists.alioth.debian.org/pipermail/pkg-shadow-devel/attachments/20151218/662ca6bc/attachment.patch>


More information about the Pkg-shadow-devel mailing list