diff options
author | mtm <mtm@FreeBSD.org> | 2004-06-06 17:55:55 +0000 |
---|---|---|
committer | mtm <mtm@FreeBSD.org> | 2004-06-06 17:55:55 +0000 |
commit | 1b8e607cd5c23d1560c6b3a787fa00aef38ff45c (patch) | |
tree | 9517378d1c73d90d813ecf5cabc5750f9e0770bf /usr.sbin | |
parent | ee4a7e8b45816004c4b84ae9116b0feabc7a100d (diff) | |
download | FreeBSD-src-1b8e607cd5c23d1560c6b3a787fa00aef38ff45c.zip FreeBSD-src-1b8e607cd5c23d1560c6b3a787fa00aef38ff45c.tar.gz |
Accept full path names in addition to base names for shells.
Make explicit in the documentation that valid shells need to be
supplied only if the -S option is not given.
Diffstat (limited to 'usr.sbin')
-rw-r--r-- | usr.sbin/adduser/adduser.8 | 19 | ||||
-rw-r--r-- | usr.sbin/adduser/adduser.sh | 8 |
2 files changed, 16 insertions, 11 deletions
diff --git a/usr.sbin/adduser/adduser.8 b/usr.sbin/adduser/adduser.8 index 2f883f6..a87e6af 100644 --- a/usr.sbin/adduser/adduser.8 +++ b/usr.sbin/adduser/adduser.8 @@ -98,11 +98,13 @@ The .Ql \&: character is not allowed. .It shell -Only valid shells from the shell database +Unless the +.Fl S +argument is supplied only valid shells from the shell database .Pq Pa /etc/shells are allowed. -In -addition, only the base name of the shell is necessary, not the full path. +In addition, +either the base name or the full path of the shell may be supplied. .It UID Automatically generated or your choice. It must be less than 32000. @@ -245,10 +247,10 @@ standard output. Default shell for new users. The .Ar shell -argument must be the base name of the shell, -.Em not -the full path. -It must exist in +argument may be the base name of the shell or the full path. +Unless the +.Fl S +argument is supplied the shell must exist in .Pa /etc/shells or be the special shell .Em nologin @@ -372,7 +374,8 @@ is understood to mean that no home directory is to be created for the user. .It Ar shell Login shell. -This field should contain the full path to a valid login shell. +This field should contain either the base name or +the full path to a valid login shell. .It Ar password User password. This field should contain a plaintext string, which will diff --git a/usr.sbin/adduser/adduser.sh b/usr.sbin/adduser/adduser.sh index c04463d..7e21cb5 100644 --- a/usr.sbin/adduser/adduser.sh +++ b/usr.sbin/adduser/adduser.sh @@ -118,7 +118,8 @@ valid_shells() { } # fullpath_from_shell shell -# Given $shell, the basename component of a valid shell, get the +# Given $shell, which is either the full path to a shell or +# the basename component of a valid shell, get the # full path to the shell from the /etc/shells file. # fullpath_from_shell() { @@ -131,7 +132,8 @@ fullpath_from_shell() { \#*|'') ;; *) - if [ "`basename $_path`" = "$_shell" ]; then + if [ "$_path" = "$_shell" -o \ + "`basename $_path`" = "$_shell" ]; then echo $_path return 0 fi @@ -372,7 +374,7 @@ get_gecos() { # get_shell # Get the account's shell. Works in interactive and batch mode. It -# accepts only the base name of the shell, NOT the full path. +# accepts either the base name of the shell or the full path. # If an invalid shell is entered it will simply use the default shell. # get_shell() { |