Compare commits
135 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f50603a5fc | ||
|
|
164dcfe65b | ||
|
|
fb356b1344 | ||
|
|
a3d91ae318 | ||
|
|
65b4f58703 | ||
|
|
54551c7d6e | ||
|
|
d877e3fcac | ||
|
|
dbfe7dd42e | ||
|
|
45b4187596 | ||
|
|
44c63795a7 | ||
|
|
36244ac1ff | ||
|
|
d3790feac0 | ||
|
|
b63aca9a2c | ||
|
|
8f2f2a0d9d | ||
|
|
5d57ca10d9 | ||
|
|
a5913d98e1 | ||
|
|
5f3e3c2c62 | ||
|
|
c53e4c1d77 | ||
|
|
6d8be68071 | ||
|
|
fb28c99b8a | ||
|
|
acaed3deab | ||
|
|
bb47fdf25e | ||
|
|
97bb5b2b6d | ||
|
|
c0f0c67864 | ||
|
|
e91b0f0517 | ||
|
|
3f1f999e2d | ||
|
|
c63bc6bfaa | ||
|
|
a54907dce3 | ||
|
|
2c57c399bf | ||
|
|
a063580dbb | ||
|
|
a2c6e429b3 | ||
|
|
f3e07f105e | ||
|
|
f21700d876 | ||
|
|
34669aa651 | ||
|
|
08248f0859 | ||
|
|
722be83a14 | ||
|
|
ea1a6e814b | ||
|
|
2c930b19ba | ||
|
|
75e8eaad78 | ||
|
|
b74d6cfb98 | ||
|
|
a95d4ac1b5 | ||
|
|
b9c9d411ff | ||
|
|
05cc753275 | ||
|
|
af4a1c4e6b | ||
|
|
ef39098a1b | ||
|
|
6671b44434 | ||
|
|
b2dbde4b8c | ||
|
|
57cb36333b | ||
|
|
bfacc99ac3 | ||
|
|
e2192e119d | ||
|
|
4e0ac33eae | ||
|
|
8078e5bd54 | ||
|
|
146a0da7b3 | ||
|
|
ad7b83fc86 | ||
|
|
c668c49a15 | ||
|
|
3574346318 | ||
|
|
008be2848e | ||
|
|
63261593c8 | ||
|
|
18b14eb4a8 | ||
|
|
4724e503b0 | ||
|
|
2c4d93c7cf | ||
|
|
148c1c0984 | ||
|
|
6bc784b95a | ||
|
|
d275cce099 | ||
|
|
5136659a59 | ||
|
|
414816064f | ||
|
|
dcf96e43fa | ||
|
|
ea7d7bb644 | ||
|
|
60891cd197 | ||
|
|
0556fea593 | ||
|
|
74fcf6f28d | ||
|
|
70eb03ec29 | ||
|
|
856d26cb4b | ||
|
|
1adf386345 | ||
|
|
02137de419 | ||
|
|
73516df908 | ||
|
|
3025b9ebac | ||
|
|
e235f372ce | ||
|
|
62ace035c6 | ||
|
|
07a169d964 | ||
|
|
8e2b91c8cc | ||
|
|
831ff281d0 | ||
|
|
29ad485d17 | ||
|
|
51f740e23e | ||
|
|
c751f4a6ec | ||
|
|
742868dc2d | ||
|
|
9b8bddd179 | ||
|
|
1987203745 | ||
|
|
f7abcfb39a | ||
|
|
016bc8b813 | ||
|
|
66b1a59efe | ||
|
|
bd4750126b | ||
|
|
0fba6bd347 | ||
|
|
eb9db854d7 | ||
|
|
7d68d59cc2 | ||
|
|
f9311ba61d | ||
|
|
60d2888605 | ||
|
|
c2ada4c306 | ||
|
|
310ef194a1 | ||
|
|
daf30eff79 | ||
|
|
a90585f1d6 | ||
|
|
4be6d423e4 | ||
|
|
2db724bc50 | ||
|
|
452b9c26e4 | ||
|
|
d0c05b0143 | ||
|
|
36aeb4e9ee | ||
|
|
f8d4b66edd | ||
|
|
483de7d614 | ||
|
|
a95ed40bf0 | ||
|
|
686efcfcb1 | ||
|
|
bd6f2760a3 | ||
|
|
15631009b4 | ||
|
|
8eb822ebf3 | ||
|
|
aa95b1b763 | ||
|
|
92e3a5e386 | ||
|
|
4c22dcfbfd | ||
|
|
4f459198db | ||
|
|
056f7352ef | ||
|
|
0c2939b331 | ||
|
|
68e3d685fd | ||
|
|
0209d3f185 | ||
|
|
ef6890c31d | ||
|
|
1e98b3b559 | ||
|
|
223238d265 | ||
|
|
33f1f69e9c | ||
|
|
fb04f2723a | ||
|
|
78d4265f65 | ||
|
|
c2aed5345e | ||
|
|
2392894eb0 | ||
|
|
59fa2c0763 | ||
|
|
7081b2df85 | ||
|
|
1f34221552 | ||
|
|
c43681a068 | ||
|
|
992fab50ee | ||
|
|
b6b2c756c9 |
34
ChangeLog
34
ChangeLog
@@ -1,8 +1,32 @@
|
||||
2016-05-17 Serge Hallyn <serge@hallyn.com>
|
||||
2018-04-29 Serge Hallyn <serge@hallyn.com>
|
||||
|
||||
* Release 4.6
|
||||
* Newgrp: avoid unnecessary lookups
|
||||
* Make language less binary
|
||||
* Add error when turning off man switch
|
||||
* Spelling fixes
|
||||
* Make userdel work with -R
|
||||
* newgidmap: enforce setgroups=deny if self-mapping a group
|
||||
* Norwegian bokmål translation
|
||||
* pwck: prevent crash by not passing O_CREAT
|
||||
* WITH_TCB fixes from Mandriva
|
||||
* Fix pwconv and grpconv entry skips
|
||||
* Fix -- slurping in su
|
||||
* add --prefix option
|
||||
|
||||
2017-07-16 Serge Hallyn <serge@hallyn.com>
|
||||
|
||||
* Import new Dutch translations.
|
||||
|
||||
2017-07-10 Serge Hallyn <serge@hallyn.com>
|
||||
|
||||
* Expand error codes for groupmod.
|
||||
|
||||
2017-05-17 Serge Hallyn <serge@hallyn.com>
|
||||
|
||||
* Release 4.5
|
||||
|
||||
2016-05-17 Serge Hallyn <serge@hallyn.com>
|
||||
2017-05-17 Serge Hallyn <serge@hallyn.com>
|
||||
|
||||
* Patch from Tobias Stoeckmann fixing regression in previous CVE fix
|
||||
preventing SIGTERM to su from being propagated to the job.
|
||||
@@ -10,18 +34,18 @@
|
||||
* Merge Russian translation updates from Yuri Kozlov
|
||||
* Fix missing close of subuid file on error
|
||||
|
||||
2016-02-23 Serge Hallyn <serge@hallyn.com>
|
||||
2017-02-23 Serge Hallyn <serge@hallyn.com>
|
||||
|
||||
* Merge patch by Tobias Stoeckmann <tobias@stoeckmann.org> to fix
|
||||
the equivalent of util-linux CVE-2017-2616.
|
||||
|
||||
2016-02-08 Serge Hallyn <serge@hallyn.com>
|
||||
2017-02-08 Serge Hallyn <serge@hallyn.com>
|
||||
|
||||
* Update Kazakh translations
|
||||
* Consult configuration before calculating subuids
|
||||
* Remove misplaced semicolon
|
||||
|
||||
2016-01-29 Serge Hallyn <serge@hallyn.com>
|
||||
2017-01-29 Serge Hallyn <serge@hallyn.com>
|
||||
|
||||
* Patch from Fedora to improve performance with SSSD, Winbind,
|
||||
or nss_ldap. (Tomas Mraz)
|
||||
|
||||
142
NEWS
142
NEWS
@@ -654,9 +654,9 @@ shadow-4.0.18.2 -> shadow-4.1.0 09-12-2007
|
||||
- Use MD5_CRYPT_ENAB, ENCRYPT_METHOD, SHA_CRYPT_MIN_ROUNDS, and
|
||||
SHA_CRYPT_MAX_ROUNDS to define the default encryption algorithm for the
|
||||
passwords.
|
||||
- chpaswd, chgpasswd, newusers: New options -c/--crypt-method and
|
||||
- chpasswd, chgpasswd, newusers: New options -c/--crypt-method and
|
||||
-s/--sha-rounds to supersede the system default encryption algorithm.
|
||||
- chpaswd, chgpasswd, newusers: DES is no more the default algorithm. They
|
||||
- chpasswd, chgpasswd, newusers: DES is no more the default algorithm. They
|
||||
will respect the system default configured in /etc/login.defs
|
||||
|
||||
*** documentation:
|
||||
@@ -701,14 +701,14 @@ shadow-4.0.17 -> shadow-4.0.18 01-08-2006
|
||||
- groupadd, groupmod, useradd, usermod: fixed UID/GID overflow (fixed
|
||||
http://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=198920)
|
||||
- passwd, useradd, usermod: fixed inactive/mindays/warndays/maxdays overflow
|
||||
(simillar to RH#198920),
|
||||
- groupmems: rewrited for use PAM and getopt_long() and now it is enabled
|
||||
(similar to RH#198920),
|
||||
- groupmems: rewritten for use PAM and getopt_long() and now it is enabled
|
||||
for build and install (patch by George Kraft <gk4@swbell.net>),
|
||||
- S/Key: removed assign getpass() to libshadow_getpass() on autoconf level
|
||||
(patch by Ulrich Mueller <ulm@kph.uni-mainz.de>; http://bugs.gentoo.org/139966),
|
||||
- usermod: back to previous -a option semantics and clarify -a behavior
|
||||
on documentation level (by Greg Schafer <gschafer@zip.com.au>),
|
||||
- chsh, groupmod: rewrited for use getopt_long().
|
||||
- chsh, groupmod: rewritten for use getopt_long().
|
||||
- updated translations: ca, cs, da, eu, fr, gl, hu, ko, pl, pt, ru, sv, tr, uk, vi.
|
||||
*** documentation:
|
||||
- fr and ru man pages are up to date,
|
||||
@@ -743,7 +743,7 @@ shadow-4.0.15 -> shadow-4.0.16 05-06-2006
|
||||
|
||||
*** general:
|
||||
- userdel: better fix for old CERT VU#312962 (which was fixed in shadow 4.0.8):
|
||||
fixed forgoten checking of the return value from fchown() before
|
||||
fixed forgotten checking of the return value from fchown() before
|
||||
proceeding with the fchmod() (based on Owl patch prepared by
|
||||
Rafal Wojtczuk <nergal@owl.openwall.com>),
|
||||
- userdel: use login.defs::MAIL_DIR instead hardcoded /var/mail in created
|
||||
@@ -755,7 +755,7 @@ shadow-4.0.15 -> shadow-4.0.16 05-06-2006
|
||||
passwords and libshadow_getpass() is used only because libc getpass()
|
||||
do not handles password prompting with echo enabled,
|
||||
- move login.defs::MD5_CRYPT_ENAB to non-PAM part,
|
||||
- userdel: rewrited for use getopt_log(),
|
||||
- userdel: rewritten for use getopt_log(),
|
||||
- install default/template configuration files:
|
||||
-- if shadow is configured with use PAM install /etc/pam.d/* files,
|
||||
-- if shadow do not uses PAM install /etc/{limits,login.acces} files,
|
||||
@@ -793,7 +793,7 @@ shadow-4.0.15 -> shadow-4.0.16 05-06-2006
|
||||
- updated ru login.defs(5), passwd(1), userdel(8), usermod(8) man pages,
|
||||
- pw_auth(3) man page removed (outdated),
|
||||
- install limits(5), login.access(5) and porttime(5) man pages only when
|
||||
shadow is builded with PAM support disabled,
|
||||
shadow is built with PAM support disabled,
|
||||
- passwd(1): better document how password strength is checked
|
||||
(fixed http://bugs.debian.org/115380),
|
||||
- usermod(8): added missing -a option description
|
||||
@@ -816,7 +816,7 @@ shadow-4.0.14 -> shadow-4.0.15 13-03-2006
|
||||
- login: default UMASK if not specified in login.defs is 022 (pointed by
|
||||
Peter Vrabec <pvrabec@redhat.com>),
|
||||
- chgpasswd: new tool (by Jonas Meurer <mejo@debian.org>),
|
||||
- lastlog: print the usage and exit if an additional argument is profided to
|
||||
- lastlog: print the usage and exit if an additional argument is provided to
|
||||
lastlog (merge 488_laslog_verify_arguments Debian patch),
|
||||
- login, newgrp, nologin, su: do not link with libselinux (merge
|
||||
490_link_selinux_only_when_needed Debian patch),
|
||||
@@ -830,9 +830,9 @@ shadow-4.0.14 -> shadow-4.0.15 13-03-2006
|
||||
tries exceeded,
|
||||
- always prints the number of tries in the syslog entry.
|
||||
- add special handling for PAM_ABORT
|
||||
- add an entry to failog, as when USE_PAM is not defined. (#53164)
|
||||
- add an entry to faillog, as when USE_PAM is not defined. (#53164)
|
||||
- changed pam_end to PAM_END. This is certainly was a mistake. PAM_END is
|
||||
pam_close_seesion + pam_end. Here, the session is still not open, we
|
||||
pam_close_session + pam_end. Here, the session is still not open, we
|
||||
don't have to close it.
|
||||
- a HAVE_PAM_FAIL_DELAY is missing,
|
||||
- su: fixed pam session support (patch from Topi Miettinen; fixed #57526,
|
||||
@@ -840,7 +840,7 @@ shadow-4.0.14 -> shadow-4.0.15 13-03-2006
|
||||
- userdel: user's group is already removed by update_groups().
|
||||
remove_group() is not needed (bug introduced in 4.0.14 on merge FC fixes).
|
||||
Fixed by Nicolas François <nicolas.francois@centraliens.net>,
|
||||
- useradd: allways remove group and gshadow databases lock, Fixed by Nicolas
|
||||
- useradd: always remove group and gshadow databases lock, Fixed by Nicolas
|
||||
François <nicolas.francois@centraliens.net>
|
||||
(http://bugs.debian.org/348250)
|
||||
- auditing fixes:
|
||||
@@ -848,14 +848,14 @@ shadow-4.0.14 -> shadow-4.0.15 13-03-2006
|
||||
added audit_logger() prototype),
|
||||
- useradd: fixed excess audit_logger() argument,
|
||||
- chage: added missing \n on display password status if password must be
|
||||
chaged,
|
||||
changed,
|
||||
- useradd: fixed allow non-unique UID (http://bugs.debian.org/351281),
|
||||
- variouse code cleanups for make possible compilation of shadow with -Wall
|
||||
- various code cleanups for make possible compilation of shadow with -Wall
|
||||
-Werror (by Alexander Gattin <xrgtn@yandex.ru>),
|
||||
- su: move exit() outside libmisc/shell.c::shell() for handle shell() errors
|
||||
on higher level (now is better visable where some programs exit with 126
|
||||
and 127 exit codes); added new shell() parameter (char *const envp[])
|
||||
which allow fix preserving enviloment in su on using -p, (patch by
|
||||
which allow fix preserving enviroment in su on using -p, (patch by
|
||||
Alexander Gattin <xrgtn@yandex.ru>),
|
||||
- su: added handle -c,--command option for GNU su compliance (merge
|
||||
437_su_-c_option Debian patch),
|
||||
@@ -903,7 +903,7 @@ shadow-4.0.13 -> shadow-4.0.14 03-01-2006
|
||||
- userdel: make the -f option force the removal of the user's group (even if it
|
||||
is the primary group of another user)
|
||||
(merge 453_userdel_-f_removes_group Debian patch),
|
||||
- usermod: rewrited for use getopt_long() (Christian Perrier <bubulle@kheops.frmug.org>),
|
||||
- usermod: rewritten for use getopt_long() (Christian Perrier <bubulle@kheops.frmug.org>),
|
||||
- grpck: fixed segmentation fault on using -s when /etc/gshadow is empty (fix by
|
||||
Tomasz Lemiech <szpajder@staszic.waw.pl>),
|
||||
- passwd: remove handle -f, -g and -s options.
|
||||
@@ -912,7 +912,7 @@ shadow-4.0.13 -> shadow-4.0.14 03-01-2006
|
||||
Nicolas François <nicolas.francois@centraliens.net>)
|
||||
- su: export $USER and $SHELL as well as $HOME (http://bugs.debian.org/11003 and
|
||||
http://bugs.debian.org/11189),
|
||||
- su, vipw: rewrited for use getopt_long(),
|
||||
- su, vipw: rewritten for use getopt_long(),
|
||||
- su: log successful/failed through syslog (http://bugs.debian.org/190215),
|
||||
- updated translations: ca, cs, da, eu, fi, fr, it, pl, pt, ru, sv, tl, vi,
|
||||
- new translations: gl.
|
||||
@@ -946,7 +946,7 @@ shadow-4.0.12 -> shadow-4.0.13 10-10-2005
|
||||
|
||||
*** general:
|
||||
- chage: removed duplicated pam_start(),
|
||||
- chfn, chsh: finished PAM support usin pam_start() and co.,
|
||||
- chfn, chsh: finished PAM support using pam_start() and co.,
|
||||
- userdel: userdel should not remove the group which is primary for someone else
|
||||
(fix by Nicolas François <nicolas.francois@centraliens.net>
|
||||
http://bugs.debian.org/295416),
|
||||
@@ -955,7 +955,7 @@ shadow-4.0.12 -> shadow-4.0.13 10-10-2005
|
||||
- fixedlib/commonio.c: don't assume selinux is enabled if is_selinux_enabled()
|
||||
returns -1 (merge isSelinuxEnabled FC patch by Jeremy Katz <katzj@redhat.com>),
|
||||
- login, su (non-PAM case): fixed setup max address space limits (added missing break
|
||||
statement in case) spoted by Lasse Collin <lasse.collin@tukaani.org>,
|
||||
statement in case) spotted by Lasse Collin <lasse.collin@tukaani.org>,
|
||||
- auditing support added. Patch prepared by Peter Vrabec <pvrabec@redhat.com> basing
|
||||
on work by Steve Grubb from http://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=159215
|
||||
Now auditing support have commands: chage, gpasswd, groupadd, groupdel, groupmod,
|
||||
@@ -972,12 +972,12 @@ shadow-4.0.12 -> shadow-4.0.13 10-10-2005
|
||||
This will permit to adduser Debian script to detect if chage failed because the
|
||||
system doesn't have shadowed passwords (fix for http://bugs.debian.org/317012),
|
||||
- merge 010_more-i18ned-messages Debian patch which adds i18n support for few
|
||||
more messages (orginaly patch was prepared by Guillem Jover <guillem@debian.org>),
|
||||
more messages (originally patch was prepared by Guillem Jover <guillem@debian.org>),
|
||||
- lastlog: added handle -b option which allow print only lastlog records older than
|
||||
specified DAYS (fix by <miles@lubin.us>),
|
||||
- chpasswd, gpasswd, newusers: fixed libmisc/salt.c for use login.defs::MD5_CRYPT_ENAB
|
||||
only if PAM support is disabled (fix by John Gatewood Ham <zappaman@buraphalinux.org>),
|
||||
- passwd: rewrited for use getopt_long(),
|
||||
- passwd: rewritten for use getopt_long(),
|
||||
- newgrp: when newgrp process sits between parent and child shells, it should
|
||||
propagate STOPs from child to parent and CONTs from parent to child,
|
||||
otherwise e.g. bash's "suspend" command won't work
|
||||
@@ -987,11 +987,11 @@ shadow-4.0.12 -> shadow-4.0.13 10-10-2005
|
||||
- chsh(1), groupadd(8), newusers(8), pwconv(8), useradd(8), userdel(8), usermod(8):
|
||||
added missing references to /etc/login.defs and login.defs(5)
|
||||
(Christian Perrier <bubulle@kheops.frmug.org>),
|
||||
- passwd(5): rewrited based on work by Greg Wooledge <greg@wooledge.org>
|
||||
- passwd(5): rewritten based on work by Greg Wooledge <greg@wooledge.org>
|
||||
http://bugs.debian.org/328113
|
||||
- login(1): added securetty(5) to SEE ALSO section
|
||||
(fixed Debian bug http://bugs.debian.org/325773),
|
||||
- groupadd(8), useradd(8): fix regular expression describing alloved login/group
|
||||
- groupadd(8), useradd(8): fix regular expression describing allowed login/group
|
||||
names (pointed by Nicolas François <nicolas.francois@centraliens.net>)
|
||||
(correct is [a-z_][a-z0-9_-]*[$]),
|
||||
- groupadd(8), useradd(8): documents in CAVEATS section the limitations shadow
|
||||
@@ -1001,9 +1001,9 @@ shadow-4.0.12 -> shadow-4.0.13 10-10-2005
|
||||
shadow-4.0.11.1 -> shadow-4.0.12 22-08-2005
|
||||
|
||||
*** general:
|
||||
- newgrp, login: remove using login.defs::CLOSE_SESSIONS variable and allways
|
||||
- newgrp, login: remove using login.defs::CLOSE_SESSIONS variable and always
|
||||
close PAM session,
|
||||
- fixed configure.in: realy enable shadow group support by default (pointed by
|
||||
- fixed configure.in: really enable shadow group support by default (pointed by
|
||||
Greg Schafer <gschafer@zip.com.au> and Peter Vrabec <pvrabec@redhat.com>),
|
||||
- login.defs: removed handle QMAIL_DIR variable,
|
||||
- login: allow regular user to login on read-only root file system (not only for root)
|
||||
@@ -1028,9 +1028,9 @@ shadow-4.0.11.1 -> shadow-4.0.12 22-08-2005
|
||||
period and permit brute-force attacks (fixed http://bugs.debian.org/288827),
|
||||
- uClibc fixes (by Martin Schlemmer <azarah@nosferatu.za.org>):
|
||||
added require ngettext (added [need-ngettext] to AM_GNU_GETTEXT() parameters)
|
||||
and stub prototype for ngettext() in lib/prototypes.h (neccessary if shadow
|
||||
and stub prototype for ngettext() in lib/prototypes.h (necessary if shadow
|
||||
compiled with disabled NLS support)
|
||||
- groupadd: rewrited for use getopt_long(),
|
||||
- groupadd: rewritten for use getopt_long(),
|
||||
- groupadd, groupdel, groupmod, userdel: do OPENLOG() before pam_start(),
|
||||
- groupadd: fixed double OPENLOG(),
|
||||
- removed lib/{grpack,gspack,pwpack,sppack}.c and prototypes from lib/prototypes.h
|
||||
@@ -1066,7 +1066,7 @@ shadow-4.0.10 -> shadow-4.0.11 18-07-2005
|
||||
- su: ignore SIGINT while authenticating. A ^C could defeat the waiting period and
|
||||
permit brute-force attacks. Also ignore SIGQUIT.
|
||||
Fixed: http://bugs.debian.org/52372 and http://bugs.debian.org/288827
|
||||
- useradd: rewrited for use getopt_long(),
|
||||
- useradd: rewritten for use getopt_long(),
|
||||
- newgrp: add fix for handle splitted NIS groups: extends the functionality that,
|
||||
if the requested group is given, all groups of the same GID are tested for
|
||||
membership of the requesting user.
|
||||
@@ -1097,7 +1097,7 @@ shadow-4.0.10 -> shadow-4.0.11 18-07-2005
|
||||
- updated translations: cs, da, de, es, fi, pl, pt, ro, ru, sk.
|
||||
*** documentation:
|
||||
- pwck(8): document -q option (based on Debian patch for fix http://bugs.debian.org/309408)
|
||||
- pwck(8): rewrited OPTIONS section and better SYNOPSIS,
|
||||
- pwck(8): rewritten OPTIONS section and better SYNOPSIS,
|
||||
- lastlog(8): document that lastlog is a sparse file, and don't need to be rotated
|
||||
http://bugs.debian.org/219321
|
||||
- login(8): better explain the respective roles of login, init and getty with regards
|
||||
@@ -1111,12 +1111,12 @@ shadow-4.0.9 -> shadow-4.0.10 28-06-2005
|
||||
|
||||
*** general:
|
||||
- mkpasswd: removed,
|
||||
- userdel: now deletes user groups from /etc/gshdow as well as /etc/group.
|
||||
- userdel: now deletes user groups from /etc/gshadow as well as /etc/group.
|
||||
Fix by Nicolas François <nicolas.francois@centraliens.net>.
|
||||
http://bugs.debian.org/99442
|
||||
- usermod: when relocating a user's home directory, don't fail and remove the new
|
||||
home directory if we can't remove the old home directory for some
|
||||
reason; the results can be spectularly poort if, for instance, only
|
||||
reason; the results can be spectacularly poor if, for instance, only
|
||||
the rmdir() fails. Patch prepared by Timo Lindfors <lindi-spamtrap@newmail.com>.
|
||||
http://bugs.debian.org/166369
|
||||
- su: fix syslogs to be less ambiguous. Use old:new format instead of old-new
|
||||
@@ -1124,7 +1124,7 @@ shadow-4.0.9 -> shadow-4.0.10 28-06-2005
|
||||
http://bugs.debian.org/213592
|
||||
- removed not used now libmisc/setup.c,
|
||||
- login: use also UTMPX API instead UTMP on failure (login was affected for this
|
||||
when shadow was builded without PAM support)
|
||||
when shadow was built without PAM support)
|
||||
patch by Nicolas François <nicolas.francois@centraliens.net>
|
||||
- login: the PAM session needs to be closed as root, thus before change_uid()
|
||||
http://bugs.debian.org/53570 http://bugs.debian.org/195048 http://bugs.debian.org/211884
|
||||
@@ -1135,12 +1135,12 @@ shadow-4.0.9 -> shadow-4.0.10 28-06-2005
|
||||
http://bugs.debian.org/48002
|
||||
- login: fixed username on succesful login (was using the normal username,
|
||||
when it should have used pam_user) http://bugs.debian.org/47819
|
||||
- remove using SHADOWPWD #define so now shadow is allways builded with shadow
|
||||
passwowd support,
|
||||
- chage: rewrited for use getopt_long(),
|
||||
- remove using SHADOWPWD #define so now shadow is always built with shadow
|
||||
password support,
|
||||
- chage: rewritten for use getopt_long(),
|
||||
- updated translations: ca, cs, da, fi, pl, ru, zh_TW.
|
||||
*** documentation:
|
||||
- most of the man pages now are generated from XML files so in case submiting any
|
||||
- most of the man pages now are generated from XML files so in case submitting any
|
||||
chages to this resources please make diff to XML files,
|
||||
- chfn: give more details about the influence of login.defs on what's allowed to
|
||||
users.
|
||||
@@ -1148,7 +1148,7 @@ shadow-4.0.9 -> shadow-4.0.10 28-06-2005
|
||||
shadow-4.0.8 -> shadow-4.0.9 23-05-2005
|
||||
|
||||
*** general:
|
||||
- passwd: fixed segfault in non-PAM connfiguration
|
||||
- passwd: fixed segfault in non-PAM configuration
|
||||
(submited by Greg Schafer <gschafer@zip.com.au>),
|
||||
- newgrp: fixed NULL pointer dereference - getlogin() and ttyname() can
|
||||
return NULL which is not checked (http://bugs.debian.org/162303),
|
||||
@@ -1170,15 +1170,15 @@ shadow-4.0.7 -> shadow-4.0.8 26-04-2005
|
||||
- configure.in: add using AC_GNU_SOURCE macro for kill compilation warnings about
|
||||
implicit declaration of function `fseeko',
|
||||
- faillog: changed faillog record display format for allow fit in 80 columns all
|
||||
faillog atributies,
|
||||
faillog attributes,
|
||||
- removed NDBM code (unused),
|
||||
- fixed use of SU_WHEEL_ONLY in su. Now su realy is avalaible for wheel group
|
||||
- fixed use of SU_WHEEL_ONLY in su. Now su really is available for wheel group
|
||||
members. Thanks to Mike Frysinger <vapier@gentoo.org> for report:
|
||||
http://bugs.gentoo.org/show_bug.cgi?id=80345
|
||||
- drop never finished kerberos and des_rpc support (for kerberos support back firs
|
||||
must be prepared modularization),
|
||||
- fixed UTMP path detection (by Kelledin <kelledin@users.sf.net>),
|
||||
- useradd: rewrited group count to dynamic (by John Newbigin
|
||||
- useradd: rewritten group count to dynamic (by John Newbigin
|
||||
<jnewbigin@ict.swin.edu.au>),
|
||||
- login: fixed create lastlog entry fo users never loged in on non-PAM
|
||||
variant of login (fix by <oracular@ziplip.com>),
|
||||
@@ -1193,7 +1193,7 @@ shadow-4.0.7 -> shadow-4.0.8 26-04-2005
|
||||
fchmod() is executed. (Actually, we could also pass the final "mode" to
|
||||
the open() call and then save the consequent fchmod().)
|
||||
- SELinux changes: added changes in chage, chfn, chsh, passwd for allow
|
||||
construct more grained user password/accuunt properties on SELinux
|
||||
construct more grained user password/account properties on SELinux
|
||||
policies level. Patch originally based on RH changes (submited by Chris
|
||||
PeBenito <pebenito@gentoo.org>),
|
||||
- added SELinux changes: in libmisc/copydir.c (based on Fedora patch),
|
||||
@@ -1211,7 +1211,7 @@ shadow-4.0.7 -> shadow-4.0.8 26-04-2005
|
||||
- newgrp(1): fix #251926, #166173, #113191 Debian bugs: explain why editing /etc/group
|
||||
(without gshadow) doesn't permit to use newgrp,
|
||||
- newgrp(1): newgrp uses /bin/sh (not bash),
|
||||
- faillog(8): updated after rewrited faillog command for use getopt_long(),
|
||||
- faillog(8): updated after rewritten faillog command for use getopt_long(),
|
||||
- login(1): removed fragment about abilities pass enviroment variables in login prompt,
|
||||
- gshadow(5): new file (by Nicolas Nicolas François <nicolas.francois@centraliens.net>),
|
||||
- usermod(8): fixed #302388 Debian bug: added separated -o option description,
|
||||
@@ -1229,24 +1229,24 @@ shadow-4.0.6 -> shadow-4.0.7 26-01-2005
|
||||
-- use fseeko() instead fseek() and remove casting file offsets to unsigned
|
||||
long.
|
||||
- lastlog:
|
||||
-- rewrited source code using the same style as in chpasswd.c,
|
||||
-- open lastlog file after finish parse comman line optiomns
|
||||
(now --help otput can be displayd for users without lastlog
|
||||
-- rewritten source code using the same style as in chpasswd.c,
|
||||
-- open lastlog file after finish parse commandline options
|
||||
(now --help output can be displayed for users without lastlog
|
||||
file read permission),
|
||||
-- cleanups in lastlog(8) man page using the same style as in
|
||||
chpasswd(8).
|
||||
- chpasswd:
|
||||
-- switch chpasswd to use getopt_long() and adds a --md5 option
|
||||
(by Ian Gulliver <ian@penguinhosting.net>),
|
||||
-- rewrited chpasswd(8) man page.
|
||||
-- rewritten chpasswd(8) man page.
|
||||
|
||||
shadow-4.0.5 -> shadow-4.0.6 08-11-2004
|
||||
|
||||
- su: fixed adding of pam_env env variables to enviroment
|
||||
(Martin Schlemmer <azarah@nosferatu.za.org>),
|
||||
- autoconf: fixed filling MAIL_SPOOL_DIR and MAIL_SPOOL_FILE variables
|
||||
which was allways empty (Gregorio Guidi <g.guidi@sns.it>),
|
||||
- realuy closse security bug in libmisc/pwdcheck.c,
|
||||
which was always empty (Gregorio Guidi <g.guidi@sns.it>),
|
||||
- really close security bug in libmisc/pwdcheck.c,
|
||||
- added missing template/example PAM service config files for chfn, chsh and
|
||||
userdel,
|
||||
- do not translate variable names from /etc/default/useradd during
|
||||
@@ -1257,10 +1257,10 @@ shadow-4.0.4.1 -> shadow-4.0.5 27-10-2004
|
||||
- change libmisc to private static library,
|
||||
- added SELinux support (basing on patch from Gentoo),
|
||||
- chage: more verbose/human readable -l output. This output is much more
|
||||
beter for send directly via email for each users as message with account
|
||||
better for send directly via email for each users as message with account
|
||||
status (for example as message with warning about account/password expiration),
|
||||
- login: fixed handle -f option: now it works correctly without specify "-h
|
||||
<host>" if open login session localy is required (thanks for help
|
||||
<host>" if open login session locally is required (thanks for help
|
||||
investigate bug for Krzysztof Kotlenga),
|
||||
- userdel: when removing a user with userdel, userdel was always exits with 1 (fixed).
|
||||
Based on http://bugs.gentoo.org/show_bug.cgi?id=66687,
|
||||
@@ -1274,7 +1274,7 @@ shadow-4.0.4.1 -> shadow-4.0.5 27-10-2004
|
||||
makes httpd Option SymlinkIfOwnerMatch break for default weg pages
|
||||
including symlinks placed into /etc/skel/public_html for example.
|
||||
http://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=66819
|
||||
- su: add pam_open_session() support. If builded without PAM support
|
||||
- su: add pam_open_session() support. If built without PAM support
|
||||
propagate $DISPLAY and $XAUTHORITY enviroment variables.
|
||||
Based on http://www.gentoo.org/cgi-bin/viewcvs.cgi/sys-apps/shadow/files/shadow-4.0.4.1-su-pam_open_session.patch?rev=1.1
|
||||
- applied 036_pam_access_with_preauth.patch Debian patch submited by Bjorn
|
||||
@@ -1287,11 +1287,11 @@ shadow-4.0.4.1 -> shadow-4.0.5 27-10-2004
|
||||
Use constant strings rather than argv[0] for syslog ident in the user
|
||||
management commands,
|
||||
shadow-4.0.4.1-owl-tmp.diff:
|
||||
Remove using mktemp() if mkstemp() prototype not found (use allways mkstemp()),
|
||||
Remove using mktemp() if mkstemp() prototype not found (use always mkstemp()),
|
||||
shadow-4.0.4.1-owl-check-reads.diff:
|
||||
Add checking for read errors in commonio and vipw/vigr (not doing so could
|
||||
result in data loss when the records are written back),
|
||||
- fixed securirty bug in libmisc/pwdcheck.c which allow unauthorized
|
||||
- fixed security bug in libmisc/pwdcheck.c which allow unauthorized
|
||||
account properties modification.
|
||||
Affected tools: chfn and chsh.
|
||||
Bug was discovered by Martin Schulze <joey@infodrom.org>.
|
||||
@@ -1307,12 +1307,12 @@ shadow-4.0.4.1 -> shadow-4.0.5 27-10-2004
|
||||
|
||||
shadow-4.0.4 => shadow-4.0.4.1 14-01-2004
|
||||
- bug fixes in automake files for generate correct tar ball on "make dist":
|
||||
added mising "EXTRA_DIST = $(man_MANS)" in man/*/Makefile.am.
|
||||
added missing "EXTRA_DIST = $(man_MANS)" in man/*/Makefile.am.
|
||||
|
||||
shadow-4.0.3 => shadow-4.0.4 14-01-2004
|
||||
|
||||
*** general:
|
||||
- added missing information about -f options in groupadd usage mesage
|
||||
- added missing information about -f options in groupadd usage message
|
||||
(document this also in man page),
|
||||
- removed TCFS support (tcfs is dead),
|
||||
- convert all po/*.po files to utf-8,
|
||||
@@ -1320,7 +1320,7 @@ shadow-4.0.3 => shadow-4.0.4 14-01-2004
|
||||
per service flushing method instead HUPing nscd process),
|
||||
- removed old AUTH_METHODS dependent code,
|
||||
- chage: now all code depend on SHADOWPWD. If shadow will not be configured
|
||||
on autoconf level for using shadow possword chage is olny stub which
|
||||
on autoconf level for using shadow password chage is olny stub which
|
||||
informs "chage not configured for shadow password support."
|
||||
- dpasswd: removed,
|
||||
- login: remove handle login.defs::DIALUPS_CHECK_ENAB code,
|
||||
@@ -1328,7 +1328,7 @@ shadow-4.0.3 => shadow-4.0.4 14-01-2004
|
||||
- ALL tools, libraries: remove old SVR4, SVR4_SI86_EUA BSD_QUOTA and ATT_AGE
|
||||
dependent code,
|
||||
- ALL: ready for gettext 0.11.5, automake 1.7.4, autoconf 2.57,
|
||||
- logoutd, userd: handle also utmpx if avalaile,
|
||||
- logoutd, userd: handle also utmpx if available,
|
||||
- newgrp: fix for non-PAM version
|
||||
Use CLOSE_SESSIONS depending code only when USE_PAM.
|
||||
The problem was reported by Mattias Webjorn Eriksson using Slackware
|
||||
@@ -1356,7 +1356,7 @@ shadow-4.0.3 => shadow-4.0.4 14-01-2004
|
||||
|
||||
shadow-4.0.2 => shadow-4.0.3 13-03-2002
|
||||
|
||||
- added variouse cs, de, fr, id, it, ko man pages found mainly in national
|
||||
- added various cs, de, fr, id, it, ko man pages found mainly in national
|
||||
man pages translations projects (this documents are not synced with
|
||||
current en version but you know .. "Documentations is lik sex. When it is
|
||||
good it very very good. Whet it is bad it is better than nothing."). Any
|
||||
@@ -1372,9 +1372,9 @@ shadow-4.0.2 => shadow-4.0.3 13-03-2002
|
||||
shadow-4.0.1 => shadow-4.0.2 17-02-2002
|
||||
|
||||
- resolve many fuzzy translations also all this which may cause problems on
|
||||
displaing long uid/gid,
|
||||
- allow use "$" on ending in cereated by useradd usermname accounts for allow
|
||||
create machine acounts for samba (thanks to Jerome Borsboom
|
||||
displaying long uid/gid,
|
||||
- allow use "$" on ending in created by useradd username accounts for allow
|
||||
create machine accounts for samba (thanks to Jerome Borsboom
|
||||
<borsboom@tch.fgg.eur.nl> for point this problem in 4.0.1),
|
||||
- fix small but ugly bug in configure.in in libpam_mics library detection.
|
||||
|
||||
@@ -1394,7 +1394,7 @@ shadow-4.0.0 => shadow-4.0.1
|
||||
as root. If root does read-only, there's no lock needed. Added missing
|
||||
"#include <errno.h>" for above (me).
|
||||
shadow-4.0.0-owl-warnings.diff
|
||||
Olny one fix from this patch was aplayd because other was fixed few days
|
||||
Olny one fix from this patch was applied because other was fixed few days
|
||||
before :)
|
||||
shadow-4.0.0-owl-check_names.diff
|
||||
Merge only prat this patch with checking login name matching; checking
|
||||
@@ -1402,7 +1402,7 @@ shadow-4.0.0 => shadow-4.0.1
|
||||
probably _POSIX_LOGIN_NAME_MAX from <bits/posix1_lim.h>,
|
||||
shadow-4.0.0-owl-chage-drop-priv.diff
|
||||
shadow-4.0.0-owl-pam-auth.diff
|
||||
Merge part with reorder initialize PAM and checkin is chage is runed by
|
||||
Merge part with reorder initialize PAM and checking if chage is runed by
|
||||
root or not - now chage can be runed from non-root account for checking
|
||||
by user own account information (if PAM enabled).
|
||||
- fixes for handle/print correctly 32bit uid/gid (Thorsten Kukuk <kukuk@suse.de>),
|
||||
@@ -1446,30 +1446,30 @@ shadow-20001016 => shadow-4.0.0 06-01-2002
|
||||
- much better automake support,
|
||||
- added pt_BR man pages for gpasswd(1), groupadd(8), groupdel(8),
|
||||
groupmod(8), shadow(5) (man pages for other nations also are welcome),
|
||||
- mamny small fixes and updates nad improvements in man pages,
|
||||
- aplayed Debian patch to man pages for shadowconfig,
|
||||
- many small fixes and updates nad improvements in man pages,
|
||||
- applied Debian patch to man pages for shadowconfig,
|
||||
- remove limit to 6 chars logged tty name (012_libmisc_sulog.c.diff Debian
|
||||
patch).
|
||||
|
||||
shadow-20001012 -> shadow-20001016:
|
||||
- conditionaly disabled body reload_nscd() because not every
|
||||
- conditionally disabled body reload_nscd() because not every
|
||||
version of nscd can handle it (this can be enabled by define
|
||||
ENABLE_NSCD_SIGHUP) (Marek Michałkiewicz <marekm@linux.org.pl>)
|
||||
- fixes on autoconf/automake level for dist target,
|
||||
- Julianne F. Haugh new contact adress.
|
||||
- Julianne F. Haugh new contact address.
|
||||
|
||||
shadow-20000902 => shadow-20001012
|
||||
|
||||
- removed /redhat directory with obsoleted files (partialy rewrited spec
|
||||
- removed /redhat directory with obsoleted files (partially rewritten spec
|
||||
file is now in root directory),
|
||||
- aplayed shadow-19990827-group.patch patch from RH wich prevents adduser
|
||||
- applied shadow-19990827-group.patch patch from RH wich prevents adduser
|
||||
overwrite previously existing groups in adduser,
|
||||
- added PAM support for chage (bind to "chage" PAM config file) also
|
||||
added PAM support for all other small tools like chpasswd, groupadd,
|
||||
groupdel, groupmod, newusers, useradd, userdel, usermod (bind to common
|
||||
"shadow" PAM config file) - this modificaytions mainly based on
|
||||
"shadow" PAM config file) - this modifications mainly based on
|
||||
modifications prepared by Janek Rękojarski <baggins@pld.org.pl>,
|
||||
- many small fixes and improvments in automake (mow "make dist"
|
||||
- many small fixes and improvements in automake (mow "make dist"
|
||||
works correctly),
|
||||
- added cs translation (Jiri Pavlovsky <Jiri.Pavlovsky@ff.cuni.cz>).
|
||||
|
||||
|
||||
1
README
1
README
@@ -44,6 +44,7 @@ a lot of mail...
|
||||
|
||||
Adam Rudnicki <adam@v-lo.krakow.pl>
|
||||
Alan Curry <pacman@tardis.mars.net>
|
||||
Aleksa Sarai <cyphar@cyphar.com>
|
||||
Alexander O. Yuriev <alex@bach.cis.temple.edu>
|
||||
Algis Rudys <arudys@rice.edu>
|
||||
Andreas Jaeger <aj@arthur.rhein-neckar.de>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
dnl Process this file with autoconf to produce a configure script.
|
||||
AC_PREREQ([2.64])
|
||||
AC_INIT([shadow], [4.5], [pkg-shadow-devel@lists.alioth.debian.org], [],
|
||||
AC_INIT([shadow], [4.6], [pkg-shadow-devel@lists.alioth.debian.org], [],
|
||||
[https://github.com/shadow-maint/shadow])
|
||||
AM_INIT_AUTOMAKE([1.11 foreign dist-xz])
|
||||
AM_SILENT_RULES([yes])
|
||||
@@ -324,6 +324,7 @@ if test "$enable_man" = "yes"; then
|
||||
AC_PATH_PROG([XSLTPROC], [xsltproc])
|
||||
if test -z "$XSLTPROC"; then
|
||||
enable_man=no
|
||||
AC_MSG_ERROR([xsltproc is missing.])
|
||||
fi
|
||||
|
||||
dnl check for DocBook DTD and stylesheets in the local catalog.
|
||||
@@ -566,7 +567,7 @@ if test "$with_libpam" = "yes"; then
|
||||
LIBS=$save_libs
|
||||
|
||||
AC_DEFINE(USE_PAM, 1, [Define to support Pluggable Authentication Modules])
|
||||
AC_DEFINE_UNQUOTED(SHADOW_PAM_CONVERSATION, [$pam_conv_function],[PAM converstation to use])
|
||||
AC_DEFINE_UNQUOTED(SHADOW_PAM_CONVERSATION, [$pam_conv_function],[PAM conversation to use])
|
||||
AM_CONDITIONAL(USE_PAM, [true])
|
||||
|
||||
AC_MSG_CHECKING(use login and su access checking if PAM not used)
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
** 1/28/95
|
||||
** shadow-adduser 1.3:
|
||||
**
|
||||
** Basically a bug-fix on my additions in 1.2. Thanx to Terry Stewart
|
||||
** Basically a bug-fix on my additions in 1.2. Thanks to Terry Stewart
|
||||
** (stew@texas.net) for pointing out one of the many idiotic bugs I introduced.
|
||||
** It was such a stupid bug that I would have never seen it myself.
|
||||
**
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
** 1/28/95
|
||||
** shadow-adduser 1.3:
|
||||
**
|
||||
** Basically a bug-fix on my additions in 1.2. Thanx to Terry Stewart
|
||||
** Basically a bug-fix on my additions in 1.2. Thanks to Terry Stewart
|
||||
** (stew@texas.net) for pointing out one of the many idiotic bugs I introduced.
|
||||
** It was such a stupid bug that I would have never seen it myself.
|
||||
**
|
||||
|
||||
@@ -32,7 +32,7 @@ def_home_dir=/home/users
|
||||
# default shell
|
||||
def_shell=/bin/tcsh
|
||||
|
||||
# Defaul expiration date (mm/dd/yy)
|
||||
# Default expiration date (mm/dd/yy)
|
||||
def_expire=""
|
||||
|
||||
# default dates
|
||||
|
||||
@@ -480,7 +480,7 @@ X.B groupmems
|
||||
\fB-D\fR |
|
||||
[\fB-g\fI group_name \fR]
|
||||
X.SH DESCRIPTION
|
||||
The \fBgroupmems\fR utility allows a user to administer his/her own
|
||||
The \fBgroupmems\fR utility allows a user to administer their own
|
||||
group membership list without the requirement of superuser privileges.
|
||||
The \fBgroupmems\fR utility is for systems that configure its users to
|
||||
be in their own name sake primary group (i.e., guest / guest).
|
||||
|
||||
@@ -2,7 +2,7 @@ Hello Marek,
|
||||
|
||||
I have created a diffile against the 980403 release that adds
|
||||
functionality to newusers for automatic handling of users with only
|
||||
anonomous ftp login (using the guestgroup feature in ftpaccess, which
|
||||
anonymous ftp login (using the guestgroup feature in ftpaccess, which
|
||||
means that the users home directory looks like '/home/user/./'). It also
|
||||
adds a commandline argument to specify an initial directory structure
|
||||
for such users, with a tarball normally containing the bin,lib,etc
|
||||
|
||||
@@ -15,7 +15,7 @@ Changes:
|
||||
- code merged into lmain.c --cristiang
|
||||
|
||||
TODO: - support groups in the limits file
|
||||
(only usernames are supported at this momment :-( )
|
||||
(only usernames are supported at this moment :-( )
|
||||
|
||||
Setting user limits for shadow login program
|
||||
|
||||
|
||||
@@ -189,7 +189,7 @@ KILLCHAR 025
|
||||
# home directories.
|
||||
# 022 is the default value, but 027, or even 077, could be considered
|
||||
# for increased privacy. There is no One True Answer here: each sysadmin
|
||||
# must make up his/her mind.
|
||||
# must make up their mind.
|
||||
UMASK 022
|
||||
|
||||
#
|
||||
|
||||
@@ -375,28 +375,48 @@ bool commonio_present (const struct commonio_db *db)
|
||||
|
||||
int commonio_lock_nowait (struct commonio_db *db, bool log)
|
||||
{
|
||||
char file[1024];
|
||||
char lock[1024];
|
||||
char* file = NULL;
|
||||
char* lock = NULL;
|
||||
size_t lock_file_len;
|
||||
size_t file_len;
|
||||
int err;
|
||||
|
||||
if (db->locked) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
snprintf (file, sizeof file, "%s.%lu",
|
||||
file_len = strlen(db->filename) + 11;/* %lu max size */
|
||||
lock_file_len = strlen(db->filename) + 6; /* sizeof ".lock" */
|
||||
file = (char*)malloc(file_len);
|
||||
if(file == NULL) {
|
||||
err = ENOMEM;
|
||||
goto cleanup_ENOMEM;
|
||||
}
|
||||
lock = (char*)malloc(lock_file_len);
|
||||
if(lock == NULL) {
|
||||
err = ENOMEM;
|
||||
goto cleanup_ENOMEM;
|
||||
}
|
||||
snprintf (file, file_len, "%s.%lu",
|
||||
db->filename, (unsigned long) getpid ());
|
||||
snprintf (lock, sizeof lock, "%s.lock", db->filename);
|
||||
snprintf (lock, lock_file_len, "%s.lock", db->filename);
|
||||
if (do_lock_file (file, lock, log) != 0) {
|
||||
db->locked = true;
|
||||
lock_count++;
|
||||
return 1;
|
||||
err = 1;
|
||||
}
|
||||
return 0;
|
||||
cleanup_ENOMEM:
|
||||
if(file)
|
||||
free(file);
|
||||
if(lock)
|
||||
free(lock);
|
||||
return err;
|
||||
}
|
||||
|
||||
|
||||
int commonio_lock (struct commonio_db *db)
|
||||
{
|
||||
#ifdef HAVE_LCKPWDF
|
||||
/*#ifdef HAVE_LCKPWDF*/ /* not compatible with prefix option*/
|
||||
#if 0
|
||||
/*
|
||||
* only if the system libc has a real lckpwdf() - the one from
|
||||
* lockpw.c calls us and would cause infinite recursion!
|
||||
|
||||
@@ -24,7 +24,7 @@ typedef unsigned char _Bool;
|
||||
|
||||
/* Take care of NLS matters. */
|
||||
#ifdef S_SPLINT_S
|
||||
extern char *setlocale(int categorie, const char *locale);
|
||||
extern char *setlocale(int categories, const char *locale);
|
||||
# define LC_ALL (6)
|
||||
extern char * bindtextdomain (const char * domainname, const char * dirname);
|
||||
extern char * textdomain (const char * domainname);
|
||||
|
||||
13
lib/getdef.c
13
lib/getdef.c
@@ -155,7 +155,7 @@ static struct itemdef knowndef_table[] = {
|
||||
#define LOGINDEFS "/etc/login.defs"
|
||||
#endif
|
||||
|
||||
static char def_fname[] = LOGINDEFS; /* login config defs file */
|
||||
static const char* def_fname = LOGINDEFS; /* login config defs file */
|
||||
static bool def_loaded = false; /* are defs already loaded? */
|
||||
|
||||
/* local function prototypes */
|
||||
@@ -424,6 +424,17 @@ out:
|
||||
return (struct itemdef *) NULL;
|
||||
}
|
||||
|
||||
/*
|
||||
* setdef_config_file - set the default configuration file path
|
||||
*
|
||||
* must be called prior to any def* calls.
|
||||
*/
|
||||
|
||||
void setdef_config_file (const char* file)
|
||||
{
|
||||
def_fname = file;
|
||||
}
|
||||
|
||||
/*
|
||||
* def_load - load configuration table
|
||||
*
|
||||
|
||||
@@ -40,6 +40,7 @@ extern unsigned long getdef_ulong (const char *, unsigned long);
|
||||
extern unsigned int getdef_unum (const char *, unsigned int);
|
||||
extern /*@observer@*/ /*@null@*/const char *getdef_str (const char *);
|
||||
extern int putdef_str (const char *, const char *);
|
||||
extern void setdef_config_file (const char* file);
|
||||
|
||||
/* default UMASK value if not specified in /etc/login.defs */
|
||||
#define GETDEF_DEFAULT_UMASK 022
|
||||
|
||||
@@ -254,9 +254,9 @@ extern void motd (void);
|
||||
/* myname.c */
|
||||
extern /*@null@*//*@only@*/struct passwd *get_my_pwent (void);
|
||||
|
||||
/* pam_pass_non_interractive.c */
|
||||
/* pam_pass_non_interactive.c */
|
||||
#ifdef USE_PAM
|
||||
extern int do_pam_passwd_non_interractive (const char *pam_service,
|
||||
extern int do_pam_passwd_non_interactive (const char *pam_service,
|
||||
const char *username,
|
||||
const char* password);
|
||||
#endif /* USE_PAM */
|
||||
@@ -274,6 +274,21 @@ extern void do_pam_passwd (const char *user, bool silent, bool change_expired);
|
||||
/* port.c */
|
||||
extern bool isttytime (const char *, const char *, time_t);
|
||||
|
||||
/* prefix_flag.c */
|
||||
extern const char* process_prefix_flag (const char* short_opt, int argc, char **argv);
|
||||
extern struct group *prefix_getgrnam(const char *name);
|
||||
extern struct group *prefix_getgrgid(gid_t gid);
|
||||
extern struct passwd *prefix_getpwuid(uid_t uid);
|
||||
extern struct passwd *prefix_getpwnam(const char* name);
|
||||
extern struct spwd *prefix_getspnam(const char* name);
|
||||
extern struct group *prefix_getgr_nam_gid(const char *grname);
|
||||
extern void prefix_setpwent();
|
||||
extern struct passwd* prefix_getpwent();
|
||||
extern void prefix_endpwent();
|
||||
extern void prefix_setgrent();
|
||||
extern struct group* prefix_getgrent();
|
||||
extern void prefix_endgrent();
|
||||
|
||||
/* pwd2spwd.c */
|
||||
#ifndef USE_PAM
|
||||
extern struct spwd *pwd_to_spwd (const struct passwd *);
|
||||
|
||||
@@ -181,7 +181,7 @@ static const bool range_exists(struct commonio_db *db, const char *owner)
|
||||
* subuid @val.
|
||||
*
|
||||
* @db: database to query
|
||||
* @owner: owning uid being queuried
|
||||
* @owner: owning uid being queried
|
||||
* @val: subuid being searched for.
|
||||
*
|
||||
* Returns a range of subuids belonging to @owner and including the subuid
|
||||
@@ -221,7 +221,7 @@ static const struct subordinate_range *find_range(struct commonio_db *db,
|
||||
|
||||
/*
|
||||
* Search loop above did not produce any result. Let's rerun it,
|
||||
* but this time try to matcha actual UIDs. The first entry that
|
||||
* but this time try to match actual UIDs. The first entry that
|
||||
* matches is considered a success.
|
||||
* (It may be specified as literal UID or as another username which
|
||||
* has the same UID as the username we are looking for.)
|
||||
@@ -418,7 +418,7 @@ fail:
|
||||
* @start: the first uid in the owned range
|
||||
* @count: the number of uids in the range
|
||||
*
|
||||
* Return 1 if the range is already present or on succcess. On error
|
||||
* Return 1 if the range is already present or on success. On error
|
||||
* return 0 and set errno appropriately.
|
||||
*/
|
||||
static int add_range(struct commonio_db *db,
|
||||
|
||||
@@ -44,7 +44,8 @@ libmisc_a_SOURCES = \
|
||||
myname.c \
|
||||
obscure.c \
|
||||
pam_pass.c \
|
||||
pam_pass_non_interractive.c \
|
||||
pam_pass_non_interactive.c \
|
||||
prefix_flag.c \
|
||||
pwd2spwd.c \
|
||||
pwdcheck.c \
|
||||
pwd_init.c \
|
||||
|
||||
@@ -69,7 +69,7 @@ extern int failcheck (uid_t uid, struct faillog *fl, bool failed);
|
||||
extern void failprint (const struct faillog *);
|
||||
|
||||
/*
|
||||
* failtmp - update the cummulative failure log
|
||||
* failtmp - update the cumulative failure log
|
||||
*
|
||||
* failtmp updates the (struct utmp) formatted failure log which
|
||||
* maintains a record of all login failures.
|
||||
|
||||
@@ -136,7 +136,7 @@ static int check_gid (const gid_t gid,
|
||||
}
|
||||
/* Check if the GID exists according to NSS */
|
||||
errno = 0;
|
||||
if (getgrgid (gid) != NULL) {
|
||||
if (prefix_getgrgid (gid) != NULL) {
|
||||
return EEXIST;
|
||||
} else {
|
||||
/* getgrgid() was NULL
|
||||
|
||||
@@ -136,7 +136,7 @@ static int check_uid(const uid_t uid,
|
||||
}
|
||||
/* Check if the UID exists according to NSS */
|
||||
errno = 0;
|
||||
if (getpwuid(uid) != NULL) {
|
||||
if (prefix_getpwuid(uid) != NULL) {
|
||||
return EEXIST;
|
||||
} else {
|
||||
/* getpwuid() was NULL
|
||||
|
||||
@@ -66,7 +66,7 @@
|
||||
#endif
|
||||
|
||||
/* Remap normal yacc parser interface names (yyparse, yylex, yyerror, etc),
|
||||
as well as gratuitiously global symbol names, so we can have multiple
|
||||
as well as gratuitously global symbol names, so we can have multiple
|
||||
yacc generated parsers in the same program. Note that these are only
|
||||
the variables produced by yacc. If other parser generators (bison,
|
||||
byacc, etc) produce additional global names that conflict at link time,
|
||||
|
||||
@@ -148,7 +148,7 @@ void write_mapping(int proc_dir_fd, int ranges, struct map_range *mappings,
|
||||
pos += written;
|
||||
}
|
||||
|
||||
/* Write the mapping to the maping file */
|
||||
/* Write the mapping to the mapping file */
|
||||
fd = openat(proc_dir_fd, map_file, O_WRONLY);
|
||||
if (fd < 0) {
|
||||
fprintf(stderr, _("%s: open of %s failed: %s\n"),
|
||||
|
||||
@@ -134,7 +134,7 @@ failed_conversation:
|
||||
*
|
||||
* Return 0 on success, 1 on failure.
|
||||
*/
|
||||
int do_pam_passwd_non_interractive (const char *pam_service,
|
||||
int do_pam_passwd_non_interactive (const char *pam_service,
|
||||
const char *username,
|
||||
const char* password)
|
||||
{
|
||||
340
libmisc/prefix_flag.c
Normal file
340
libmisc/prefix_flag.c
Normal file
@@ -0,0 +1,340 @@
|
||||
/*
|
||||
* Copyright (c) 2011 , Julian Pidancet
|
||||
* Copyright (c) 2011 , Nicolas François
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. The name of the copyright holders or contributors may not be used to
|
||||
* endorse or promote products derived from this software without
|
||||
* specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
|
||||
* PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#include <config.h>
|
||||
|
||||
#ident "$Id$"
|
||||
|
||||
#include <stdio.h>
|
||||
#include <assert.h>
|
||||
#include "defines.h"
|
||||
#include "prototypes.h"
|
||||
/*@-exitarg@*/
|
||||
#include "exitcodes.h"
|
||||
#include "groupio.h"
|
||||
#include "pwio.h"
|
||||
#ifdef SHADOWGRP
|
||||
#include "sgroupio.h"
|
||||
#endif
|
||||
#include "shadowio.h"
|
||||
#ifdef ENABLE_SUBIDS
|
||||
#include "subordinateio.h"
|
||||
#endif /* ENABLE_SUBIDS */
|
||||
#include "getdef.h"
|
||||
|
||||
static char *passwd_db_file = NULL;
|
||||
static char *spw_db_file = NULL;
|
||||
static char *group_db_file = NULL;
|
||||
static char *sgroup_db_file = NULL;
|
||||
static char *suid_db_file = NULL;
|
||||
static char *sgid_db_file = NULL;
|
||||
static char *def_conf_file = NULL;
|
||||
static FILE* fp_pwent = NULL;
|
||||
static FILE* fp_grent = NULL;
|
||||
|
||||
/*
|
||||
* process_prefix_flag - prefix all paths if given the --prefix option
|
||||
*
|
||||
* This shall be called before accessing the passwd, group, shadow,
|
||||
* gshadow, useradd's default, login.defs files (non exhaustive list)
|
||||
* or authenticating the caller.
|
||||
*
|
||||
* The audit, syslog, or locale files shall be open before
|
||||
*/
|
||||
extern const char* process_prefix_flag (const char* short_opt, int argc, char **argv)
|
||||
{
|
||||
/*
|
||||
* Parse the command line options.
|
||||
*/
|
||||
int i;
|
||||
const char *prefix = NULL;
|
||||
|
||||
for (i = 0; i < argc; i++) {
|
||||
if ( (strcmp (argv[i], "--prefix") == 0)
|
||||
|| (strcmp (argv[i], short_opt) == 0)) {
|
||||
if (NULL != prefix) {
|
||||
fprintf (stderr,
|
||||
_("%s: multiple --prefix options\n"),
|
||||
Prog);
|
||||
exit (E_BAD_ARG);
|
||||
}
|
||||
|
||||
if (i + 1 == argc) {
|
||||
fprintf (stderr,
|
||||
_("%s: option '%s' requires an argument\n"),
|
||||
Prog, argv[i]);
|
||||
exit (E_BAD_ARG);
|
||||
}
|
||||
prefix = argv[i + 1];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
if (prefix != NULL) {
|
||||
if ( prefix[0] == '\0' || !strcmp(prefix, "/"))
|
||||
return ""; /* if prefix is "/" then we ignore the flag option */
|
||||
/* should we prevent symbolic link from being used as a prefix? */
|
||||
|
||||
size_t len;
|
||||
len = strlen(prefix) + strlen(PASSWD_FILE) + 2;
|
||||
passwd_db_file = xmalloc(len);
|
||||
snprintf(passwd_db_file, len, "%s/%s", prefix, PASSWD_FILE);
|
||||
pw_setdbname(passwd_db_file);
|
||||
|
||||
len = strlen(prefix) + strlen(GROUP_FILE) + 2;
|
||||
group_db_file = xmalloc(len);
|
||||
snprintf(group_db_file, len, "%s/%s", prefix, GROUP_FILE);
|
||||
gr_setdbname(group_db_file);
|
||||
|
||||
#ifdef SHADOWGRP
|
||||
len = strlen(prefix) + strlen(SGROUP_FILE) + 2;
|
||||
sgroup_db_file = xmalloc(len);
|
||||
snprintf(sgroup_db_file, len, "%s/%s", prefix, SGROUP_FILE);
|
||||
sgr_setdbname(sgroup_db_file);
|
||||
#endif
|
||||
#ifdef USE_NIS
|
||||
__setspNIS(0); /* disable NIS for now, at least until it is properly supporting a "prefix" */
|
||||
#endif
|
||||
|
||||
len = strlen(prefix) + strlen(SHADOW_FILE) + 2;
|
||||
spw_db_file = xmalloc(len);
|
||||
snprintf(spw_db_file, len, "%s/%s", prefix, SHADOW_FILE);
|
||||
spw_setdbname(spw_db_file);
|
||||
|
||||
|
||||
len = strlen(prefix) + strlen("/etc/subuid") + 2;
|
||||
suid_db_file = xmalloc(len);
|
||||
snprintf(suid_db_file, len, "%s/%s", prefix, "/etc/subuid");
|
||||
sub_uid_setdbname(suid_db_file);
|
||||
|
||||
len = strlen(prefix) + strlen("/etc/subgid") + 2;
|
||||
sgid_db_file = xmalloc(len);
|
||||
snprintf(sgid_db_file, len, "%s/%s", prefix, "/etc/subgid");
|
||||
sub_gid_setdbname(sgid_db_file);
|
||||
|
||||
len = strlen(prefix) + strlen("/etc/login.defs") + 2;
|
||||
def_conf_file = xmalloc(len);
|
||||
snprintf(def_conf_file, len, "%s/%s", prefix, "/etc/login.defs");
|
||||
setdef_config_file(def_conf_file);
|
||||
}
|
||||
|
||||
if (prefix == NULL)
|
||||
return "";
|
||||
return prefix;
|
||||
}
|
||||
|
||||
|
||||
extern struct group *prefix_getgrnam(const char *name)
|
||||
{
|
||||
if (group_db_file) {
|
||||
FILE* fg;
|
||||
struct group * grp = NULL;
|
||||
|
||||
fg = fopen(group_db_file, "rt");
|
||||
if(!fg)
|
||||
return NULL;
|
||||
while(grp = fgetgrent(fg)) {
|
||||
if(!strcmp(name, grp->gr_name))
|
||||
break;
|
||||
}
|
||||
fclose(fg);
|
||||
return grp;
|
||||
}
|
||||
|
||||
return getgrnam(name);
|
||||
}
|
||||
|
||||
extern struct group *prefix_getgrgid(gid_t gid)
|
||||
{
|
||||
if (group_db_file) {
|
||||
FILE* fg;
|
||||
struct group * grp = NULL;
|
||||
|
||||
fg = fopen(group_db_file, "rt");
|
||||
if(!fg)
|
||||
return NULL;
|
||||
while(grp = fgetgrent(fg)) {
|
||||
if(gid == grp->gr_gid)
|
||||
break;
|
||||
}
|
||||
fclose(fg);
|
||||
return grp;
|
||||
}
|
||||
|
||||
return getgrgid(gid);
|
||||
}
|
||||
|
||||
extern struct passwd *prefix_getpwuid(uid_t uid)
|
||||
{
|
||||
if (passwd_db_file) {
|
||||
FILE* fg;
|
||||
struct passwd *pwd = NULL;
|
||||
|
||||
fg = fopen(passwd_db_file, "rt");
|
||||
if(!fg)
|
||||
return NULL;
|
||||
while(pwd = fgetpwent(fg)) {
|
||||
if(uid == pwd->pw_uid)
|
||||
break;
|
||||
}
|
||||
fclose(fg);
|
||||
return pwd;
|
||||
}
|
||||
else {
|
||||
return getpwuid(uid);
|
||||
}
|
||||
}
|
||||
extern struct passwd *prefix_getpwnam(const char* name)
|
||||
{
|
||||
if (passwd_db_file) {
|
||||
FILE* fg;
|
||||
struct passwd *pwd = NULL;
|
||||
|
||||
fg = fopen(passwd_db_file, "rt");
|
||||
if(!fg)
|
||||
return NULL;
|
||||
while(pwd = fgetpwent(fg)) {
|
||||
if(!strcmp(name, pwd->pw_name))
|
||||
break;
|
||||
}
|
||||
fclose(fg);
|
||||
return pwd;
|
||||
}
|
||||
else {
|
||||
return getpwnam(name);
|
||||
}
|
||||
}
|
||||
extern struct spwd *prefix_getspnam(const char* name)
|
||||
{
|
||||
if (spw_db_file) {
|
||||
FILE* fg;
|
||||
struct spwd *sp = NULL;
|
||||
|
||||
fg = fopen(spw_db_file, "rt");
|
||||
if(!fg)
|
||||
return NULL;
|
||||
while(sp = fgetspent(fg)) {
|
||||
if(!strcmp(name, sp->sp_namp))
|
||||
break;
|
||||
}
|
||||
fclose(fg);
|
||||
return sp;
|
||||
}
|
||||
else {
|
||||
return getspnam(name);
|
||||
}
|
||||
}
|
||||
|
||||
extern void prefix_setpwent()
|
||||
{
|
||||
if(!passwd_db_file) {
|
||||
setpwent();
|
||||
return;
|
||||
}
|
||||
if (fp_pwent)
|
||||
fclose (fp_pwent);
|
||||
|
||||
fp_pwent = fopen(passwd_db_file, "rt");
|
||||
if(!fp_pwent)
|
||||
return;
|
||||
}
|
||||
extern struct passwd* prefix_getpwent()
|
||||
{
|
||||
if(!passwd_db_file) {
|
||||
return getpwent();
|
||||
}
|
||||
return fgetpwent(fp_pwent);
|
||||
}
|
||||
extern void prefix_endpwent()
|
||||
{
|
||||
if(!passwd_db_file) {
|
||||
endpwent();
|
||||
return;
|
||||
}
|
||||
if (fp_pwent)
|
||||
fclose(fp_pwent);
|
||||
fp_pwent = NULL;
|
||||
}
|
||||
|
||||
extern void prefix_setgrent()
|
||||
{
|
||||
if(!group_db_file) {
|
||||
setgrent();
|
||||
return;
|
||||
}
|
||||
if (fp_grent)
|
||||
fclose (fp_grent);
|
||||
|
||||
fp_grent = fopen(group_db_file, "rt");
|
||||
if(!fp_grent)
|
||||
return;
|
||||
}
|
||||
extern struct group* prefix_getgrent()
|
||||
{
|
||||
if(!group_db_file) {
|
||||
return getgrent();
|
||||
}
|
||||
return fgetgrent(fp_grent);
|
||||
}
|
||||
extern void prefix_endgrent()
|
||||
{
|
||||
if(!group_db_file) {
|
||||
endgrent();
|
||||
return;
|
||||
}
|
||||
if (fp_grent)
|
||||
fclose(fp_grent);
|
||||
fp_grent = NULL;
|
||||
}
|
||||
|
||||
extern struct group *prefix_getgr_nam_gid(const char *grname)
|
||||
{
|
||||
long long int gid;
|
||||
char *endptr;
|
||||
|
||||
if (NULL == grname) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (group_db_file) {
|
||||
errno = 0;
|
||||
gid = strtoll (grname, &endptr, 10);
|
||||
if ( ('\0' != *grname)
|
||||
&& ('\0' == *endptr)
|
||||
&& (ERANGE != errno)
|
||||
&& (gid == (gid_t)gid)) {
|
||||
return prefix_getgrgid ((gid_t) gid);
|
||||
}
|
||||
return prefix_getgrnam (grname);
|
||||
}
|
||||
else
|
||||
return getgr_nam_gid(grname);
|
||||
}
|
||||
@@ -171,7 +171,7 @@ static void read_env_file (const char *filename)
|
||||
cp++;
|
||||
goto d_quote;
|
||||
}
|
||||
eise if (*cp == '\0') {
|
||||
else if (*cp == '\0') {
|
||||
/* end of string */
|
||||
goto finished;
|
||||
} else {
|
||||
|
||||
@@ -126,7 +126,7 @@ static char *date_formats[] = {
|
||||
#else
|
||||
/*
|
||||
* days and juldays are used to compute the number of days in the
|
||||
* current month, and the cummulative number of days in the preceding
|
||||
* current month, and the cumulative number of days in the preceding
|
||||
* months. they are declared so that january is 1, not 0.
|
||||
*/
|
||||
static short days[13] = { 0,
|
||||
|
||||
@@ -88,7 +88,7 @@ static bool is_my_tty (const char *tty)
|
||||
* session
|
||||
*
|
||||
* The utmp file is scanned for an entry with the same process ID.
|
||||
* The line enterred by the *getty / telnetd, etc. should also match
|
||||
* The line entered by the *getty / telnetd, etc. should also match
|
||||
* the current terminal.
|
||||
*
|
||||
* When an entry is returned by get_current_utmp, and if the utmp
|
||||
|
||||
10
man/README.md
Normal file
10
man/README.md
Normal file
@@ -0,0 +1,10 @@
|
||||
The [official releases](https://github.com/shadow-maint/shadow/releases) ship
|
||||
with pre-built manpages.
|
||||
|
||||
The content of the man pages however is dependent on compile flags. So the
|
||||
pre-built ones might not fit your version of shadow. To build them yourself use
|
||||
`--enable-man`. Furthermore the following build requirements will be needed:
|
||||
- xsltproc
|
||||
- docbook 4
|
||||
- docbook stylesheets
|
||||
- xml2po
|
||||
@@ -83,7 +83,7 @@
|
||||
The <command>chage</command> command changes the number of days between
|
||||
password changes and the date of the last password change. This
|
||||
information is used by the system to determine when a user must change
|
||||
his/her password.
|
||||
their password.
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
@@ -168,7 +168,7 @@
|
||||
<para>
|
||||
Set the minimum number of days between password changes to
|
||||
<replaceable>MIN_DAYS</replaceable>. A value of zero for this field
|
||||
indicates that the user may change his/her password at any time.
|
||||
indicates that the user may change their password at any time.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
@@ -181,8 +181,8 @@
|
||||
Set the maximum number of days during which a password is valid.
|
||||
When <replaceable>MAX_DAYS</replaceable> plus
|
||||
<replaceable>LAST_DAY</replaceable> is less than the current
|
||||
day, the user will be required to change his/her password before
|
||||
being able to use his/her account. This occurrence can be planned for
|
||||
day, the user will be required to change their password before
|
||||
being able to use their account. This occurrence can be planned for
|
||||
in advance by use of the <option>-W</option> option, which
|
||||
provides the user with advance warning.
|
||||
</para>
|
||||
@@ -214,7 +214,7 @@
|
||||
Set the number of days of warning before a password change is
|
||||
required. The <replaceable>WARN_DAYS</replaceable> option is the
|
||||
number of days prior to the password expiring that a user will
|
||||
be warned his/her password is about to expire.
|
||||
be warned their password is about to expire.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
@@ -235,7 +235,7 @@
|
||||
</para>
|
||||
<para>The <command>chage</command> command is restricted to the root
|
||||
user, except for the <option>-l</option> option, which may be used by
|
||||
an unprivileged user to determine when his/her password or account is due
|
||||
an unprivileged user to determine when their password or account is due
|
||||
to expire.
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
@@ -212,6 +212,23 @@
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<option>-P</option>, <option>--prefix</option> <replaceable>PREFIX_DIR</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>
|
||||
Apply changes in the <replaceable>PREFIX_DIR</replaceable>
|
||||
directory and use the configuration files from the
|
||||
<replaceable>PREFIX_DIR</replaceable> directory.
|
||||
This option does not chroot and is intended for preparing
|
||||
a cross-compilation target.
|
||||
Some limitations: NIS and LDAP users/groups are not verified.
|
||||
PAM authentication is using the host files.
|
||||
No SELINUX support.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</refsect1>
|
||||
|
||||
|
||||
@@ -109,6 +109,23 @@
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<option>-P</option>, <option>--prefix</option> <replaceable>PREFIX_DIR</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>
|
||||
Apply changes in the <replaceable>PREFIX_DIR</replaceable>
|
||||
directory and use the configuration files from the
|
||||
<replaceable>PREFIX_DIR</replaceable> directory.
|
||||
This option does not chroot and is intended for preparing
|
||||
a cross-compilation target.
|
||||
Some limitations: NIS and LDAP users/groups are not verified.
|
||||
PAM authentication is using the host files.
|
||||
No SELINUX support.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</refsect1>
|
||||
|
||||
|
||||
@@ -85,7 +85,7 @@
|
||||
<title>DESCRIPTION</title>
|
||||
<para>
|
||||
The <command>groupmems</command> command allows a user to administer
|
||||
his/her own group membership list without the requirement of
|
||||
their own group membership list without the requirement of
|
||||
superuser privileges. The <command>groupmems</command> utility is for
|
||||
systems that configure its users to be in their own name sake primary
|
||||
group (i.e., guest / guest).
|
||||
|
||||
@@ -186,6 +186,23 @@
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<option>-P</option>, <option>--prefix</option> <replaceable>PREFIX_DIR</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>
|
||||
Apply changes in the <replaceable>PREFIX_DIR</replaceable>
|
||||
directory and use the configuration files from the
|
||||
<replaceable>PREFIX_DIR</replaceable> directory.
|
||||
This option does not chroot and is intended for preparing
|
||||
a cross-compilation target.
|
||||
Some limitations: NIS and LDAP users/groups are not verified.
|
||||
PAM authentication is using the host files.
|
||||
No SELINUX support.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</refsect1>
|
||||
|
||||
@@ -239,43 +256,61 @@
|
||||
<varlistentry>
|
||||
<term><replaceable>0</replaceable></term>
|
||||
<listitem>
|
||||
<para>success</para>
|
||||
<para>E_SUCCESS: success</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><replaceable>2</replaceable></term>
|
||||
<listitem>
|
||||
<para>invalid command syntax</para>
|
||||
<para>E_USAGE: invalid command syntax</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><replaceable>3</replaceable></term>
|
||||
<listitem>
|
||||
<para>invalid argument to option</para>
|
||||
<para>E_BAD_ARG: invalid argument to option</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><replaceable>4</replaceable></term>
|
||||
<listitem>
|
||||
<para>specified group doesn't exist</para>
|
||||
<para>E_GID_IN_USE: specified group doesn't exist</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><replaceable>6</replaceable></term>
|
||||
<listitem>
|
||||
<para>specified group doesn't exist</para>
|
||||
<para>E_NOTFOUND: specified group doesn't exist</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><replaceable>9</replaceable></term>
|
||||
<listitem>
|
||||
<para>group name already in use</para>
|
||||
<para>E_NAME_IN_USE: group name already in use</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><replaceable>10</replaceable></term>
|
||||
<listitem>
|
||||
<para>can't update group file</para>
|
||||
<para>E_GRP_UPDATE: can't update group file</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><replaceable>11</replaceable></term>
|
||||
<listitem>
|
||||
<para>E_CLEANUP_SERVICE: can't setup cleanup service</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><replaceable>12</replaceable></term>
|
||||
<listitem>
|
||||
<para>E_PAM_USERNAME: can't determine your username for use with pam</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><replaceable>13</replaceable></term>
|
||||
<listitem>
|
||||
<para>E_PAM_ERROR: pam returned an error, see syslog facility id groupmod for the PAM error message</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
|
||||
@@ -88,7 +88,7 @@
|
||||
<title>DESCRIPTION</title>
|
||||
<para>
|
||||
The <command>passwd</command> command changes passwords for user accounts.
|
||||
A normal user may only change the password for his/her own account, while
|
||||
A normal user may only change the password for their own account, while
|
||||
the superuser may change the password for any account.
|
||||
<command>passwd</command> also changes the account or associated
|
||||
password validity period.
|
||||
@@ -97,7 +97,7 @@
|
||||
<refsect2 id='password_changes'>
|
||||
<title>Password Changes</title>
|
||||
<para>
|
||||
The user is first prompted for his/her old password, if one is
|
||||
The user is first prompted for their old password, if one is
|
||||
present. This password is then encrypted and compared against the
|
||||
stored password. The user has only one chance to enter the correct
|
||||
password. The superuser is permitted to bypass this step so that
|
||||
@@ -206,7 +206,7 @@
|
||||
<listitem>
|
||||
<para>
|
||||
Immediately expire an account's password. This in effect can
|
||||
force a user to change his/her password at the user's next login.
|
||||
force a user to change their password at the user's next login.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
@@ -273,7 +273,7 @@
|
||||
<para>
|
||||
Set the minimum number of days between password changes to
|
||||
<replaceable>MIN_DAYS</replaceable>. A value of zero for this field
|
||||
indicates that the user may change his/her password at any time.
|
||||
indicates that the user may change their password at any time.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
@@ -349,7 +349,7 @@
|
||||
Set the number of days of warning before a password change is
|
||||
required. The <replaceable>WARN_DAYS</replaceable> option is
|
||||
the number of days prior to the password expiring that a user
|
||||
will be warned that his/her password is about to expire.
|
||||
will be warned that their password is about to expire.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
@@ -363,6 +363,11 @@
|
||||
<replaceable>MAX_DAYS</replaceable>, the password is required
|
||||
to be changed.
|
||||
</para>
|
||||
<para>
|
||||
Passing the number <emphasis remap='I'>-1</emphasis> as
|
||||
<replaceable>MAX_DAYS</replaceable> will remove checking a
|
||||
password's validity.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
|
||||
22
man/po/da.po
22
man/po/da.po
@@ -4307,7 +4307,7 @@ msgstr ""
|
||||
#: passwd.1.xml:89(para)
|
||||
msgid ""
|
||||
"The <command>passwd</command> command changes passwords for user accounts. A "
|
||||
"normal user may only change the password for his/her own account, while the "
|
||||
"normal user may only change the password for their own account, while the "
|
||||
"superuser may change the password for any account. <command>passwd</command> "
|
||||
"also changes the account or associated password validity period."
|
||||
msgstr ""
|
||||
@@ -4318,7 +4318,7 @@ msgstr ""
|
||||
|
||||
#: passwd.1.xml:99(para)
|
||||
msgid ""
|
||||
"The user is first prompted for his/her old password, if one is present. This "
|
||||
"The user is first prompted for their old password, if one is present. This "
|
||||
"password is then encrypted and compared against the stored password. The "
|
||||
"user has only one chance to enter the correct password. The superuser is "
|
||||
"permitted to bypass this step so that forgotten passwords may be changed."
|
||||
@@ -4435,7 +4435,7 @@ msgstr "<option>-e</option>, <option>--expire</option>"
|
||||
#: passwd.1.xml:207(para)
|
||||
msgid ""
|
||||
"Immediately expire an account's password. This in effect can force a user to "
|
||||
"change his/her password at the user's next login."
|
||||
"change their password at the user's next login."
|
||||
msgstr ""
|
||||
"Angiv øjeblikkelig en kontos adgangskode som udløbet. Dette kan tvinge en "
|
||||
"bruger til at ændre sin adgangskode ved brugerens næste logind."
|
||||
@@ -4504,7 +4504,7 @@ msgstr ""
|
||||
msgid ""
|
||||
"Set the minimum number of days between password changes to "
|
||||
"<replaceable>MIN_DAYS</replaceable>. A value of zero for this field "
|
||||
"indicates that the user may change his/her password at any time."
|
||||
"indicates that the user may change their password at any time."
|
||||
msgstr ""
|
||||
|
||||
#: passwd.1.xml:291(term)
|
||||
@@ -4553,7 +4553,7 @@ msgstr ""
|
||||
msgid ""
|
||||
"Set the number of days of warning before a password change is required. The "
|
||||
"<replaceable>WARN_DAYS</replaceable> option is the number of days prior to "
|
||||
"the password expiring that a user will be warned that his/her password is "
|
||||
"the password expiring that a user will be warned that their password is "
|
||||
"about to expire."
|
||||
msgstr ""
|
||||
|
||||
@@ -6892,7 +6892,7 @@ msgstr "-l"
|
||||
|
||||
#: groupmems.8.xml:86(para)
|
||||
msgid ""
|
||||
"The <command>groupmems</command> command allows a user to administer his/her "
|
||||
"The <command>groupmems</command> command allows a user to administer their "
|
||||
"own group membership list without the requirement of superuser privileges. "
|
||||
"The <command>groupmems</command> utility is for systems that configure its "
|
||||
"users to be in their own name sake primary group (i.e., guest / guest)."
|
||||
@@ -7975,7 +7975,7 @@ msgstr "ændr udløbsinformation om brugeradgangskode"
|
||||
msgid ""
|
||||
"The <command>chage</command> command changes the number of days between "
|
||||
"password changes and the date of the last password change. This information "
|
||||
"is used by the system to determine when a user must change his/her password."
|
||||
"is used by the system to determine when a user must change their password."
|
||||
msgstr ""
|
||||
|
||||
#: chage.1.xml:92(para)
|
||||
@@ -8057,8 +8057,8 @@ msgstr ""
|
||||
msgid ""
|
||||
"Set the maximum number of days during which a password is valid. When "
|
||||
"<replaceable>MAX_DAYS</replaceable> plus <replaceable>LAST_DAY</replaceable> "
|
||||
"is less than the current day, the user will be required to change his/her "
|
||||
"password before being able to use his/her account. This occurrence can be "
|
||||
"is less than the current day, the user will be required to change their "
|
||||
"password before being able to use their account. This occurrence can be "
|
||||
"planned for in advance by use of the <option>-W</option> option, which "
|
||||
"provides the user with advance warning."
|
||||
msgstr ""
|
||||
@@ -8080,7 +8080,7 @@ msgstr ""
|
||||
msgid ""
|
||||
"Set the number of days of warning before a password change is required. The "
|
||||
"<replaceable>WARN_DAYS</replaceable> option is the number of days prior to "
|
||||
"the password expiring that a user will be warned his/her password is about "
|
||||
"the password expiring that a user will be warned their password is about "
|
||||
"to expire."
|
||||
msgstr ""
|
||||
|
||||
@@ -8105,7 +8105,7 @@ msgstr ""
|
||||
msgid ""
|
||||
"The <command>chage</command> command is restricted to the root user, except "
|
||||
"for the <option>-l</option> option, which may be used by an unprivileged "
|
||||
"user to determine when his/her password or account is due to expire."
|
||||
"user to determine when their password or account is due to expire."
|
||||
msgstr ""
|
||||
"Kommandoen <command>chage</command> er begrænset til administratorbrugeren "
|
||||
"(root), undtaget for tilvalget <option>-l</option>, som kan bruges af en "
|
||||
|
||||
22
man/po/de.po
22
man/po/de.po
@@ -5459,7 +5459,7 @@ msgstr "ändert das Passwort eines Benutzers"
|
||||
#: passwd.1.xml:89(para)
|
||||
msgid ""
|
||||
"The <command>passwd</command> command changes passwords for user accounts. A "
|
||||
"normal user may only change the password for his/her own account, while the "
|
||||
"normal user may only change the password for their own account, while the "
|
||||
"superuser may change the password for any account. <command>passwd</command> "
|
||||
"also changes the account or associated password validity period."
|
||||
msgstr ""
|
||||
@@ -5475,7 +5475,7 @@ msgstr "Verändern des Passworts"
|
||||
|
||||
#: passwd.1.xml:99(para)
|
||||
msgid ""
|
||||
"The user is first prompted for his/her old password, if one is present. This "
|
||||
"The user is first prompted for their old password, if one is present. This "
|
||||
"password is then encrypted and compared against the stored password. The "
|
||||
"user has only one chance to enter the correct password. The superuser is "
|
||||
"permitted to bypass this step so that forgotten passwords may be changed."
|
||||
@@ -5625,7 +5625,7 @@ msgstr "<option>-e</option>, <option>--expire</option>"
|
||||
#: passwd.1.xml:207(para)
|
||||
msgid ""
|
||||
"Immediately expire an account's password. This in effect can force a user to "
|
||||
"change his/her password at the user's next login."
|
||||
"change their password at the user's next login."
|
||||
msgstr ""
|
||||
"Lässt das Passwort eines Kontos sofort verfallen. Im Ergebnis kann damit "
|
||||
"erreicht werden, dass ein Benutzer beim nächsten Login das Passwort ändern "
|
||||
@@ -5709,7 +5709,7 @@ msgstr ""
|
||||
msgid ""
|
||||
"Set the minimum number of days between password changes to "
|
||||
"<replaceable>MIN_DAYS</replaceable>. A value of zero for this field "
|
||||
"indicates that the user may change his/her password at any time."
|
||||
"indicates that the user may change their password at any time."
|
||||
msgstr ""
|
||||
"Setzt die Anzahl von Tagen, die mindestens zwischen zwei Änderungen eines "
|
||||
"Passworts vergehen müssen, auf <replaceable>MIN_TAGE</replaceable>. Ein Wert "
|
||||
@@ -5776,7 +5776,7 @@ msgstr ""
|
||||
msgid ""
|
||||
"Set the number of days of warning before a password change is required. The "
|
||||
"<replaceable>WARN_DAYS</replaceable> option is the number of days prior to "
|
||||
"the password expiring that a user will be warned that his/her password is "
|
||||
"the password expiring that a user will be warned that their password is "
|
||||
"about to expire."
|
||||
msgstr ""
|
||||
"Legt die Anzahl der Tage fest, an denen der Benutzer eine Warnung erhält, "
|
||||
@@ -8773,7 +8773,7 @@ msgstr "-l"
|
||||
# SB: 1. I don't understand "sake"? A typo? But of what? 2. I think we shouldn't have the notorious guest account here as an example.
|
||||
#: groupmems.8.xml:86(para)
|
||||
msgid ""
|
||||
"The <command>groupmems</command> command allows a user to administer his/her "
|
||||
"The <command>groupmems</command> command allows a user to administer their "
|
||||
"own group membership list without the requirement of superuser privileges. "
|
||||
"The <command>groupmems</command> utility is for systems that configure its "
|
||||
"users to be in their own name sake primary group (i.e., guest / guest)."
|
||||
@@ -10266,7 +10266,7 @@ msgstr "ändert die Information zum Passwortverfall"
|
||||
msgid ""
|
||||
"The <command>chage</command> command changes the number of days between "
|
||||
"password changes and the date of the last password change. This information "
|
||||
"is used by the system to determine when a user must change his/her password."
|
||||
"is used by the system to determine when a user must change their password."
|
||||
msgstr ""
|
||||
"Der Befehl <command>chage</command> verändert die Anzahl der Tage zwischen "
|
||||
"dem letzten Wechsel des Passworts und dem nächsten Wechsel. Mit dieser "
|
||||
@@ -10386,8 +10386,8 @@ msgstr ""
|
||||
msgid ""
|
||||
"Set the maximum number of days during which a password is valid. When "
|
||||
"<replaceable>MAX_DAYS</replaceable> plus <replaceable>LAST_DAY</replaceable> "
|
||||
"is less than the current day, the user will be required to change his/her "
|
||||
"password before being able to use his/her account. This occurrence can be "
|
||||
"is less than the current day, the user will be required to change their "
|
||||
"password before being able to use their account. This occurrence can be "
|
||||
"planned for in advance by use of the <option>-W</option> option, which "
|
||||
"provides the user with advance warning."
|
||||
msgstr ""
|
||||
@@ -10419,7 +10419,7 @@ msgstr ""
|
||||
msgid ""
|
||||
"Set the number of days of warning before a password change is required. The "
|
||||
"<replaceable>WARN_DAYS</replaceable> option is the number of days prior to "
|
||||
"the password expiring that a user will be warned his/her password is about "
|
||||
"the password expiring that a user will be warned their password is about "
|
||||
"to expire."
|
||||
msgstr ""
|
||||
"Legt die Anzahl der Tage fest, an denen der Benutzer eine Warnung erhält, "
|
||||
@@ -10454,7 +10454,7 @@ msgstr ""
|
||||
msgid ""
|
||||
"The <command>chage</command> command is restricted to the root user, except "
|
||||
"for the <option>-l</option> option, which may be used by an unprivileged "
|
||||
"user to determine when his/her password or account is due to expire."
|
||||
"user to determine when their password or account is due to expire."
|
||||
msgstr ""
|
||||
"Der Befehl <command>chage</command> kann nur von Root ausgeführt werden. "
|
||||
"Alle anderen Benutzer können nur die Option <option>-l</option> verwenden, "
|
||||
|
||||
22
man/po/fr.po
22
man/po/fr.po
@@ -5490,7 +5490,7 @@ msgstr "Modifier le mot de passe d'un utilisateur"
|
||||
#: passwd.1.xml:89(para)
|
||||
msgid ""
|
||||
"The <command>passwd</command> command changes passwords for user accounts. A "
|
||||
"normal user may only change the password for his/her own account, while the "
|
||||
"normal user may only change the password for their own account, while the "
|
||||
"superuser may change the password for any account. <command>passwd</command> "
|
||||
"also changes the account or associated password validity period."
|
||||
msgstr ""
|
||||
@@ -5506,7 +5506,7 @@ msgstr "Modifications du mot de passe"
|
||||
|
||||
#: passwd.1.xml:99(para)
|
||||
msgid ""
|
||||
"The user is first prompted for his/her old password, if one is present. This "
|
||||
"The user is first prompted for their old password, if one is present. This "
|
||||
"password is then encrypted and compared against the stored password. The "
|
||||
"user has only one chance to enter the correct password. The superuser is "
|
||||
"permitted to bypass this step so that forgotten passwords may be changed."
|
||||
@@ -5656,7 +5656,7 @@ msgstr "<option>-e</option>, <option>--expire</option>"
|
||||
#: passwd.1.xml:207(para)
|
||||
msgid ""
|
||||
"Immediately expire an account's password. This in effect can force a user to "
|
||||
"change his/her password at the user's next login."
|
||||
"change their password at the user's next login."
|
||||
msgstr ""
|
||||
"Annuler immédiatement la validité du mot de passe d'un compte. Ceci permet "
|
||||
"d'obliger un utilisateur à changer son mot de passe lors de sa prochaine "
|
||||
@@ -5744,7 +5744,7 @@ msgstr ""
|
||||
msgid ""
|
||||
"Set the minimum number of days between password changes to "
|
||||
"<replaceable>MIN_DAYS</replaceable>. A value of zero for this field "
|
||||
"indicates that the user may change his/her password at any time."
|
||||
"indicates that the user may change their password at any time."
|
||||
msgstr ""
|
||||
"Définir le nombre minimum de jours entre chaque changement de mot de passe à "
|
||||
"<replaceable>MIN_DAYS</replaceable>. Une valeur de zéro pour ce champ "
|
||||
@@ -5812,7 +5812,7 @@ msgstr ""
|
||||
msgid ""
|
||||
"Set the number of days of warning before a password change is required. The "
|
||||
"<replaceable>WARN_DAYS</replaceable> option is the number of days prior to "
|
||||
"the password expiring that a user will be warned that his/her password is "
|
||||
"the password expiring that a user will be warned that their password is "
|
||||
"about to expire."
|
||||
msgstr ""
|
||||
"Configurer le nombre de jours d'avertissement avant que le changement de mot "
|
||||
@@ -8835,7 +8835,7 @@ msgstr "-l"
|
||||
|
||||
#: groupmems.8.xml:86(para)
|
||||
msgid ""
|
||||
"The <command>groupmems</command> command allows a user to administer his/her "
|
||||
"The <command>groupmems</command> command allows a user to administer their "
|
||||
"own group membership list without the requirement of superuser privileges. "
|
||||
"The <command>groupmems</command> utility is for systems that configure its "
|
||||
"users to be in their own name sake primary group (i.e., guest / guest)."
|
||||
@@ -10319,7 +10319,7 @@ msgstr "Modifier les informations de validité d'un mot de passe"
|
||||
msgid ""
|
||||
"The <command>chage</command> command changes the number of days between "
|
||||
"password changes and the date of the last password change. This information "
|
||||
"is used by the system to determine when a user must change his/her password."
|
||||
"is used by the system to determine when a user must change their password."
|
||||
msgstr ""
|
||||
"La commande <command>chage</command> modifie le nombre de jours entre les "
|
||||
"changements de mot de passe et la date du dernier changement. Ces "
|
||||
@@ -10438,8 +10438,8 @@ msgstr ""
|
||||
msgid ""
|
||||
"Set the maximum number of days during which a password is valid. When "
|
||||
"<replaceable>MAX_DAYS</replaceable> plus <replaceable>LAST_DAY</replaceable> "
|
||||
"is less than the current day, the user will be required to change his/her "
|
||||
"password before being able to use his/her account. This occurrence can be "
|
||||
"is less than the current day, the user will be required to change their "
|
||||
"password before being able to use their account. This occurrence can be "
|
||||
"planned for in advance by use of the <option>-W</option> option, which "
|
||||
"provides the user with advance warning."
|
||||
msgstr ""
|
||||
@@ -10472,7 +10472,7 @@ msgstr ""
|
||||
msgid ""
|
||||
"Set the number of days of warning before a password change is required. The "
|
||||
"<replaceable>WARN_DAYS</replaceable> option is the number of days prior to "
|
||||
"the password expiring that a user will be warned his/her password is about "
|
||||
"the password expiring that a user will be warned their password is about "
|
||||
"to expire."
|
||||
msgstr ""
|
||||
"Configurer le nombre de jours d'avertissement avant que le changement de mot "
|
||||
@@ -10507,7 +10507,7 @@ msgstr ""
|
||||
msgid ""
|
||||
"The <command>chage</command> command is restricted to the root user, except "
|
||||
"for the <option>-l</option> option, which may be used by an unprivileged "
|
||||
"user to determine when his/her password or account is due to expire."
|
||||
"user to determine when their password or account is due to expire."
|
||||
msgstr ""
|
||||
"La commande <command>chage</command> est réservée à l'utilisateur root, sauf "
|
||||
"pour l'option <option>-l</option>, qui peut être utilisée par un utilisateur "
|
||||
|
||||
22
man/po/it.po
22
man/po/it.po
@@ -5714,7 +5714,7 @@ msgstr "cambia la password utente"
|
||||
#: passwd.1.xml:89(para)
|
||||
msgid ""
|
||||
"The <command>passwd</command> command changes passwords for user accounts. A "
|
||||
"normal user may only change the password for his/her own account, while the "
|
||||
"normal user may only change the password for their own account, while the "
|
||||
"superuser may change the password for any account. <command>passwd</command> "
|
||||
"also changes the account or associated password validity period."
|
||||
msgstr ""
|
||||
@@ -5731,7 +5731,7 @@ msgstr "Modifiche delle password"
|
||||
# type: Plain text
|
||||
#: passwd.1.xml:99(para)
|
||||
msgid ""
|
||||
"The user is first prompted for his/her old password, if one is present. This "
|
||||
"The user is first prompted for their old password, if one is present. This "
|
||||
"password is then encrypted and compared against the stored password. The "
|
||||
"user has only one chance to enter the correct password. The superuser is "
|
||||
"permitted to bypass this step so that forgotten passwords may be changed."
|
||||
@@ -5892,7 +5892,7 @@ msgstr "<option>-e</option>, <option>--expire</option>"
|
||||
#: passwd.1.xml:207(para)
|
||||
msgid ""
|
||||
"Immediately expire an account's password. This in effect can force a user to "
|
||||
"change his/her password at the user's next login."
|
||||
"change their password at the user's next login."
|
||||
msgstr ""
|
||||
"Fa scadere subito la password dell'utente. Il che ha l'effetto di forzare un "
|
||||
"cambio password al successivo accesso da parte dell'utente."
|
||||
@@ -5978,7 +5978,7 @@ msgstr ""
|
||||
msgid ""
|
||||
"Set the minimum number of days between password changes to "
|
||||
"<replaceable>MIN_DAYS</replaceable>. A value of zero for this field "
|
||||
"indicates that the user may change his/her password at any time."
|
||||
"indicates that the user may change their password at any time."
|
||||
msgstr ""
|
||||
"Imposta il numero minimo di giorni tra i cambi di password a "
|
||||
"<replaceable>MIN_GIORNI</replaceable>. Un valore pari a zero indica che "
|
||||
@@ -6050,7 +6050,7 @@ msgstr ""
|
||||
msgid ""
|
||||
"Set the number of days of warning before a password change is required. The "
|
||||
"<replaceable>WARN_DAYS</replaceable> option is the number of days prior to "
|
||||
"the password expiring that a user will be warned that his/her password is "
|
||||
"the password expiring that a user will be warned that their password is "
|
||||
"about to expire."
|
||||
msgstr ""
|
||||
"Imposta il numero di giorni di preavviso prima che sia obbligatorio cambiare "
|
||||
@@ -9144,7 +9144,7 @@ msgstr "-l"
|
||||
|
||||
#: groupmems.8.xml:86(para)
|
||||
msgid ""
|
||||
"The <command>groupmems</command> command allows a user to administer his/her "
|
||||
"The <command>groupmems</command> command allows a user to administer their "
|
||||
"own group membership list without the requirement of superuser privileges. "
|
||||
"The <command>groupmems</command> utility is for systems that configure its "
|
||||
"users to be in their own name sake primary group (i.e., guest / guest)."
|
||||
@@ -10707,7 +10707,7 @@ msgstr "cambia le informazioni sulla scadenza della password"
|
||||
msgid ""
|
||||
"The <command>chage</command> command changes the number of days between "
|
||||
"password changes and the date of the last password change. This information "
|
||||
"is used by the system to determine when a user must change his/her password."
|
||||
"is used by the system to determine when a user must change their password."
|
||||
msgstr ""
|
||||
"<command>chage</command> modifica il numero minimo di giorni tra i cambi di "
|
||||
"password e la data dell'ultimo cambio. Queste informazioni sono usate dal "
|
||||
@@ -10832,8 +10832,8 @@ msgstr ""
|
||||
msgid ""
|
||||
"Set the maximum number of days during which a password is valid. When "
|
||||
"<replaceable>MAX_DAYS</replaceable> plus <replaceable>LAST_DAY</replaceable> "
|
||||
"is less than the current day, the user will be required to change his/her "
|
||||
"password before being able to use his/her account. This occurrence can be "
|
||||
"is less than the current day, the user will be required to change their "
|
||||
"password before being able to use their account. This occurrence can be "
|
||||
"planned for in advance by use of the <option>-W</option> option, which "
|
||||
"provides the user with advance warning."
|
||||
msgstr ""
|
||||
@@ -10868,7 +10868,7 @@ msgstr ""
|
||||
msgid ""
|
||||
"Set the number of days of warning before a password change is required. The "
|
||||
"<replaceable>WARN_DAYS</replaceable> option is the number of days prior to "
|
||||
"the password expiring that a user will be warned his/her password is about "
|
||||
"the password expiring that a user will be warned their password is about "
|
||||
"to expire."
|
||||
msgstr ""
|
||||
"Imposta il numero di giorni di preavviso prima che sia obbligatorio cambiare "
|
||||
@@ -10905,7 +10905,7 @@ msgstr ""
|
||||
msgid ""
|
||||
"The <command>chage</command> command is restricted to the root user, except "
|
||||
"for the <option>-l</option> option, which may be used by an unprivileged "
|
||||
"user to determine when his/her password or account is due to expire."
|
||||
"user to determine when their password or account is due to expire."
|
||||
msgstr ""
|
||||
"L'uso del comando <command>chage</command> è permesso solo all'utente root, "
|
||||
"tranne per l'opzione <option>-l</option>, che può essere usata da un utente "
|
||||
|
||||
22
man/po/pl.po
22
man/po/pl.po
@@ -4659,7 +4659,7 @@ msgstr "zmiana hasła użytkownika"
|
||||
#: passwd.1.xml:89(para)
|
||||
msgid ""
|
||||
"The <command>passwd</command> command changes passwords for user accounts. A "
|
||||
"normal user may only change the password for his/her own account, while the "
|
||||
"normal user may only change the password for their own account, while the "
|
||||
"superuser may change the password for any account. <command>passwd</command> "
|
||||
"also changes the account or associated password validity period."
|
||||
msgstr ""
|
||||
@@ -4670,7 +4670,7 @@ msgstr ""
|
||||
|
||||
#: passwd.1.xml:99(para)
|
||||
msgid ""
|
||||
"The user is first prompted for his/her old password, if one is present. This "
|
||||
"The user is first prompted for their old password, if one is present. This "
|
||||
"password is then encrypted and compared against the stored password. The "
|
||||
"user has only one chance to enter the correct password. The superuser is "
|
||||
"permitted to bypass this step so that forgotten passwords may be changed."
|
||||
@@ -4776,7 +4776,7 @@ msgstr "<option>-e</option>, <option>--expire</option>"
|
||||
#: passwd.1.xml:207(para)
|
||||
msgid ""
|
||||
"Immediately expire an account's password. This in effect can force a user to "
|
||||
"change his/her password at the user's next login."
|
||||
"change their password at the user's next login."
|
||||
msgstr ""
|
||||
|
||||
#: passwd.1.xml:220(term)
|
||||
@@ -4845,7 +4845,7 @@ msgstr ""
|
||||
msgid ""
|
||||
"Set the minimum number of days between password changes to "
|
||||
"<replaceable>MIN_DAYS</replaceable>. A value of zero for this field "
|
||||
"indicates that the user may change his/her password at any time."
|
||||
"indicates that the user may change their password at any time."
|
||||
msgstr ""
|
||||
"Utawia minimalną liczbę dni pomiędzy zmianami hasła na "
|
||||
"<replaceable>MIN_DAYS</replaceable>. Wartość zerowa oznacza, że użytkownik "
|
||||
@@ -4901,7 +4901,7 @@ msgstr ""
|
||||
msgid ""
|
||||
"Set the number of days of warning before a password change is required. The "
|
||||
"<replaceable>WARN_DAYS</replaceable> option is the number of days prior to "
|
||||
"the password expiring that a user will be warned that his/her password is "
|
||||
"the password expiring that a user will be warned that their password is "
|
||||
"about to expire."
|
||||
msgstr ""
|
||||
|
||||
@@ -7455,7 +7455,7 @@ msgstr "-l"
|
||||
|
||||
#: groupmems.8.xml:86(para)
|
||||
msgid ""
|
||||
"The <command>groupmems</command> command allows a user to administer his/her "
|
||||
"The <command>groupmems</command> command allows a user to administer their "
|
||||
"own group membership list without the requirement of superuser privileges. "
|
||||
"The <command>groupmems</command> utility is for systems that configure its "
|
||||
"users to be in their own name sake primary group (i.e., guest / guest)."
|
||||
@@ -8833,7 +8833,7 @@ msgstr "zmiana informacji o terminie ważności hasła użytkownika"
|
||||
msgid ""
|
||||
"The <command>chage</command> command changes the number of days between "
|
||||
"password changes and the date of the last password change. This information "
|
||||
"is used by the system to determine when a user must change his/her password."
|
||||
"is used by the system to determine when a user must change their password."
|
||||
msgstr ""
|
||||
"Polecenie <command>chage</command> zmienia liczbę dni pomiędzy zmianami "
|
||||
"hasła i datę ostatniej zmiany hasła. Informację tę system wykorzystuje do "
|
||||
@@ -8947,8 +8947,8 @@ msgstr ""
|
||||
msgid ""
|
||||
"Set the maximum number of days during which a password is valid. When "
|
||||
"<replaceable>MAX_DAYS</replaceable> plus <replaceable>LAST_DAY</replaceable> "
|
||||
"is less than the current day, the user will be required to change his/her "
|
||||
"password before being able to use his/her account. This occurrence can be "
|
||||
"is less than the current day, the user will be required to change their "
|
||||
"password before being able to use their account. This occurrence can be "
|
||||
"planned for in advance by use of the <option>-W</option> option, which "
|
||||
"provides the user with advance warning."
|
||||
msgstr ""
|
||||
@@ -8980,7 +8980,7 @@ msgstr ""
|
||||
msgid ""
|
||||
"Set the number of days of warning before a password change is required. The "
|
||||
"<replaceable>WARN_DAYS</replaceable> option is the number of days prior to "
|
||||
"the password expiring that a user will be warned his/her password is about "
|
||||
"the password expiring that a user will be warned their password is about "
|
||||
"to expire."
|
||||
msgstr ""
|
||||
"Ustawia na <replaceable>DNI_OSTRZ</replaceable> liczbę dni przed upływem "
|
||||
@@ -9013,7 +9013,7 @@ msgstr ""
|
||||
msgid ""
|
||||
"The <command>chage</command> command is restricted to the root user, except "
|
||||
"for the <option>-l</option> option, which may be used by an unprivileged "
|
||||
"user to determine when his/her password or account is due to expire."
|
||||
"user to determine when their password or account is due to expire."
|
||||
msgstr ""
|
||||
"Polecenia chage może użyć tylko użytkownik root, za wyjątkiem opcji <option>-"
|
||||
"l</option>. Może się nią posłużyć się użytkownik nieuprzywilejowany do "
|
||||
|
||||
22
man/po/ru.po
22
man/po/ru.po
@@ -5700,7 +5700,7 @@ msgstr "изменяет пароль пользователя"
|
||||
#: passwd.1.xml:89(para)
|
||||
msgid ""
|
||||
"The <command>passwd</command> command changes passwords for user accounts. A "
|
||||
"normal user may only change the password for his/her own account, while the "
|
||||
"normal user may only change the password for their own account, while the "
|
||||
"superuser may change the password for any account. <command>passwd</command> "
|
||||
"also changes the account or associated password validity period."
|
||||
msgstr ""
|
||||
@@ -5718,7 +5718,7 @@ msgstr "Изменение пароля"
|
||||
# type: Content of: <refentry><refsect1><refsect2><para>
|
||||
#: passwd.1.xml:99(para)
|
||||
msgid ""
|
||||
"The user is first prompted for his/her old password, if one is present. This "
|
||||
"The user is first prompted for their old password, if one is present. This "
|
||||
"password is then encrypted and compared against the stored password. The "
|
||||
"user has only one chance to enter the correct password. The superuser is "
|
||||
"permitted to bypass this step so that forgotten passwords may be changed."
|
||||
@@ -5876,7 +5876,7 @@ msgstr "<option>-e</option>, <option>--expire</option>"
|
||||
#: passwd.1.xml:207(para)
|
||||
msgid ""
|
||||
"Immediately expire an account's password. This in effect can force a user to "
|
||||
"change his/her password at the user's next login."
|
||||
"change their password at the user's next login."
|
||||
msgstr ""
|
||||
"Немедленно сделать пароль устаревшим. В результате это заставит пользователя "
|
||||
"изменить пароль при следующем входе в систему."
|
||||
@@ -5962,7 +5962,7 @@ msgstr ""
|
||||
msgid ""
|
||||
"Set the minimum number of days between password changes to "
|
||||
"<replaceable>MIN_DAYS</replaceable>. A value of zero for this field "
|
||||
"indicates that the user may change his/her password at any time."
|
||||
"indicates that the user may change their password at any time."
|
||||
msgstr ""
|
||||
"Задать <replaceable>минимальное количество дней</replaceable> между сменами "
|
||||
"пароля. Нулевое значение этого поля указывает на то, что пользователь может "
|
||||
@@ -6030,7 +6030,7 @@ msgstr ""
|
||||
msgid ""
|
||||
"Set the number of days of warning before a password change is required. The "
|
||||
"<replaceable>WARN_DAYS</replaceable> option is the number of days prior to "
|
||||
"the password expiring that a user will be warned that his/her password is "
|
||||
"the password expiring that a user will be warned that their password is "
|
||||
"about to expire."
|
||||
msgstr ""
|
||||
"Установить число дней выдачи предупреждения, перед тем как потребуется смена "
|
||||
@@ -9182,7 +9182,7 @@ msgstr "-l"
|
||||
|
||||
#: groupmems.8.xml:86(para)
|
||||
msgid ""
|
||||
"The <command>groupmems</command> command allows a user to administer his/her "
|
||||
"The <command>groupmems</command> command allows a user to administer their "
|
||||
"own group membership list without the requirement of superuser privileges. "
|
||||
"The <command>groupmems</command> utility is for systems that configure its "
|
||||
"users to be in their own name sake primary group (i.e., guest / guest)."
|
||||
@@ -10700,7 +10700,7 @@ msgstr "изменяет информацию об устаревании пар
|
||||
msgid ""
|
||||
"The <command>chage</command> command changes the number of days between "
|
||||
"password changes and the date of the last password change. This information "
|
||||
"is used by the system to determine when a user must change his/her password."
|
||||
"is used by the system to determine when a user must change their password."
|
||||
msgstr ""
|
||||
"Программа <command>chage</command> изменяет количество дней между датой "
|
||||
"смены пароля и датой последней смены пароля. Эта информация используется "
|
||||
@@ -10820,8 +10820,8 @@ msgstr ""
|
||||
msgid ""
|
||||
"Set the maximum number of days during which a password is valid. When "
|
||||
"<replaceable>MAX_DAYS</replaceable> plus <replaceable>LAST_DAY</replaceable> "
|
||||
"is less than the current day, the user will be required to change his/her "
|
||||
"password before being able to use his/her account. This occurrence can be "
|
||||
"is less than the current day, the user will be required to change their "
|
||||
"password before being able to use their account. This occurrence can be "
|
||||
"planned for in advance by use of the <option>-W</option> option, which "
|
||||
"provides the user with advance warning."
|
||||
msgstr ""
|
||||
@@ -10854,7 +10854,7 @@ msgstr ""
|
||||
msgid ""
|
||||
"Set the number of days of warning before a password change is required. The "
|
||||
"<replaceable>WARN_DAYS</replaceable> option is the number of days prior to "
|
||||
"the password expiring that a user will be warned his/her password is about "
|
||||
"the password expiring that a user will be warned their password is about "
|
||||
"to expire."
|
||||
msgstr ""
|
||||
"Установить количество дней выдачи предупреждения, перед тем как потребуется "
|
||||
@@ -10890,7 +10890,7 @@ msgstr ""
|
||||
msgid ""
|
||||
"The <command>chage</command> command is restricted to the root user, except "
|
||||
"for the <option>-l</option> option, which may be used by an unprivileged "
|
||||
"user to determine when his/her password or account is due to expire."
|
||||
"user to determine when their password or account is due to expire."
|
||||
msgstr ""
|
||||
"Программа <command>chage</command> работает только от суперпользователя, за "
|
||||
"исключением вызова с параметром <option>-l</option>, который может "
|
||||
|
||||
@@ -2492,7 +2492,7 @@ msgid "change user password"
|
||||
msgstr ""
|
||||
|
||||
#: passwd.1.xml:89(para)
|
||||
msgid "The <command>passwd</command> command changes passwords for user accounts. A normal user may only change the password for his/her own account, while the superuser may change the password for any account. <command>passwd</command> also changes the account or associated password validity period."
|
||||
msgid "The <command>passwd</command> command changes passwords for user accounts. A normal user may only change the password for their own account, while the superuser may change the password for any account. <command>passwd</command> also changes the account or associated password validity period."
|
||||
msgstr ""
|
||||
|
||||
#: passwd.1.xml:98(title)
|
||||
@@ -2500,7 +2500,7 @@ msgid "Password Changes"
|
||||
msgstr ""
|
||||
|
||||
#: passwd.1.xml:99(para)
|
||||
msgid "The user is first prompted for his/her old password, if one is present. This password is then encrypted and compared against the stored password. The user has only one chance to enter the correct password. The superuser is permitted to bypass this step so that forgotten passwords may be changed."
|
||||
msgid "The user is first prompted for their old password, if one is present. This password is then encrypted and compared against the stored password. The user has only one chance to enter the correct password. The superuser is permitted to bypass this step so that forgotten passwords may be changed."
|
||||
msgstr ""
|
||||
|
||||
#: passwd.1.xml:107(para)
|
||||
@@ -2572,7 +2572,7 @@ msgid "<option>-e</option>, <option>--expire</option>"
|
||||
msgstr ""
|
||||
|
||||
#: passwd.1.xml:207(para)
|
||||
msgid "Immediately expire an account's password. This in effect can force a user to change his/her password at the user's next login."
|
||||
msgid "Immediately expire an account's password. This in effect can force a user to change their password at the user's next login."
|
||||
msgstr ""
|
||||
|
||||
#: passwd.1.xml:220(term)
|
||||
@@ -2612,7 +2612,7 @@ msgid "<option>-n</option>, <option>--mindays</option> <replaceable>MIN_DAY
|
||||
msgstr ""
|
||||
|
||||
#: passwd.1.xml:273(para) chage.1.xml:168(para)
|
||||
msgid "Set the minimum number of days between password changes to <replaceable>MIN_DAYS</replaceable>. A value of zero for this field indicates that the user may change his/her password at any time."
|
||||
msgid "Set the minimum number of days between password changes to <replaceable>MIN_DAYS</replaceable>. A value of zero for this field indicates that the user may change their password at any time."
|
||||
msgstr ""
|
||||
|
||||
#: passwd.1.xml:291(term)
|
||||
@@ -2644,7 +2644,7 @@ msgid "<option>-w</option>, <option>--warndays</option> <replaceable>WARN_D
|
||||
msgstr ""
|
||||
|
||||
#: passwd.1.xml:348(para)
|
||||
msgid "Set the number of days of warning before a password change is required. The <replaceable>WARN_DAYS</replaceable> option is the number of days prior to the password expiring that a user will be warned that his/her password is about to expire."
|
||||
msgid "Set the number of days of warning before a password change is required. The <replaceable>WARN_DAYS</replaceable> option is the number of days prior to the password expiring that a user will be warned that their password is about to expire."
|
||||
msgstr ""
|
||||
|
||||
#: passwd.1.xml:357(term)
|
||||
@@ -4169,7 +4169,7 @@ msgid "-l"
|
||||
msgstr ""
|
||||
|
||||
#: groupmems.8.xml:86(para)
|
||||
msgid "The <command>groupmems</command> command allows a user to administer his/her own group membership list without the requirement of superuser privileges. The <command>groupmems</command> utility is for systems that configure its users to be in their own name sake primary group (i.e., guest / guest)."
|
||||
msgid "The <command>groupmems</command> command allows a user to administer their own group membership list without the requirement of superuser privileges. The <command>groupmems</command> utility is for systems that configure its users to be in their own name sake primary group (i.e., guest / guest)."
|
||||
msgstr ""
|
||||
|
||||
#: groupmems.8.xml:94(para)
|
||||
@@ -4863,7 +4863,7 @@ msgid "change user password expiry information"
|
||||
msgstr ""
|
||||
|
||||
#: chage.1.xml:82(para)
|
||||
msgid "The <command>chage</command> command changes the number of days between password changes and the date of the last password change. This information is used by the system to determine when a user must change his/her password."
|
||||
msgid "The <command>chage</command> command changes the number of days between password changes and the date of the last password change. This information is used by the system to determine when a user must change their password."
|
||||
msgstr ""
|
||||
|
||||
#: chage.1.xml:92(para)
|
||||
@@ -4915,7 +4915,7 @@ msgid "<option>-M</option>, <option>--maxdays</option> <replaceable>MAX_DAY
|
||||
msgstr ""
|
||||
|
||||
#: chage.1.xml:180(para)
|
||||
msgid "Set the maximum number of days during which a password is valid. When <replaceable>MAX_DAYS</replaceable> plus <replaceable>LAST_DAY</replaceable> is less than the current day, the user will be required to change his/her password before being able to use his/her account. This occurrence can be planned for in advance by use of the <option>-W</option> option, which provides the user with advance warning."
|
||||
msgid "Set the maximum number of days during which a password is valid. When <replaceable>MAX_DAYS</replaceable> plus <replaceable>LAST_DAY</replaceable> is less than the current day, the user will be required to change their password before being able to use their account. This occurrence can be planned for in advance by use of the <option>-W</option> option, which provides the user with advance warning."
|
||||
msgstr ""
|
||||
|
||||
#: chage.1.xml:189(para)
|
||||
@@ -4927,7 +4927,7 @@ msgid "<option>-W</option>, <option>--warndays</option> <replaceable>WARN_D
|
||||
msgstr ""
|
||||
|
||||
#: chage.1.xml:213(para)
|
||||
msgid "Set the number of days of warning before a password change is required. The <replaceable>WARN_DAYS</replaceable> option is the number of days prior to the password expiring that a user will be warned his/her password is about to expire."
|
||||
msgid "Set the number of days of warning before a password change is required. The <replaceable>WARN_DAYS</replaceable> option is the number of days prior to the password expiring that a user will be warned their password is about to expire."
|
||||
msgstr ""
|
||||
|
||||
#: chage.1.xml:222(para)
|
||||
@@ -4939,7 +4939,7 @@ msgid "The <command>chage</command> program requires a shadow password file to b
|
||||
msgstr ""
|
||||
|
||||
#: chage.1.xml:236(para)
|
||||
msgid "The <command>chage</command> command is restricted to the root user, except for the <option>-l</option> option, which may be used by an unprivileged user to determine when his/her password or account is due to expire."
|
||||
msgid "The <command>chage</command> command is restricted to the root user, except for the <option>-l</option> option, which may be used by an unprivileged user to determine when their password or account is due to expire."
|
||||
msgstr ""
|
||||
|
||||
#: chage.1.xml:301(replaceable)
|
||||
|
||||
22
man/po/sv.po
22
man/po/sv.po
@@ -4806,7 +4806,7 @@ msgstr "ändra användarlösenord"
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"The <command>passwd</command> command changes passwords for user accounts. A "
|
||||
"normal user may only change the password for his/her own account, while the "
|
||||
"normal user may only change the password for their own account, while the "
|
||||
"superuser may change the password for any account. <command>passwd</command> "
|
||||
"also changes the account or associated password validity period."
|
||||
msgstr ""
|
||||
@@ -4824,7 +4824,7 @@ msgstr "Lösenordsändringar"
|
||||
#: passwd.1.xml:99(para)
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"The user is first prompted for his/her old password, if one is present. This "
|
||||
"The user is first prompted for their old password, if one is present. This "
|
||||
"password is then encrypted and compared against the stored password. The "
|
||||
"user has only one chance to enter the correct password. The superuser is "
|
||||
"permitted to bypass this step so that forgotten passwords may be changed."
|
||||
@@ -4969,7 +4969,7 @@ msgstr "<option>-e</option>, <option>--expire</option>"
|
||||
#: passwd.1.xml:207(para)
|
||||
msgid ""
|
||||
"Immediately expire an account's password. This in effect can force a user to "
|
||||
"change his/her password at the user's next login."
|
||||
"change their password at the user's next login."
|
||||
msgstr ""
|
||||
"Lösenordet för ett konto sätts omedelbart som utgånget. Detta kan tvinga en "
|
||||
"användare att ändra sitt lösenord vid nästa inloggningsförsök."
|
||||
@@ -5051,7 +5051,7 @@ msgstr ""
|
||||
msgid ""
|
||||
"Set the minimum number of days between password changes to "
|
||||
"<replaceable>MIN_DAYS</replaceable>. A value of zero for this field "
|
||||
"indicates that the user may change his/her password at any time."
|
||||
"indicates that the user may change their password at any time."
|
||||
msgstr ""
|
||||
"Sätter minimalt antal dagar mellan lösenordsändringar till "
|
||||
"<replaceable>MIN_DAGAR</replaceable>. Ett nollvärde för detta fält betyder "
|
||||
@@ -5128,7 +5128,7 @@ msgstr ""
|
||||
msgid ""
|
||||
"Set the number of days of warning before a password change is required. The "
|
||||
"<replaceable>WARN_DAYS</replaceable> option is the number of days prior to "
|
||||
"the password expiring that a user will be warned that his/her password is "
|
||||
"the password expiring that a user will be warned that their password is "
|
||||
"about to expire."
|
||||
msgstr ""
|
||||
"Sätter antalet dagar för varning före ett lösenord behöver ändras. Flaggan "
|
||||
@@ -7671,7 +7671,7 @@ msgstr "-l"
|
||||
|
||||
#: groupmems.8.xml:86(para)
|
||||
msgid ""
|
||||
"The <command>groupmems</command> command allows a user to administer his/her "
|
||||
"The <command>groupmems</command> command allows a user to administer their "
|
||||
"own group membership list without the requirement of superuser privileges. "
|
||||
"The <command>groupmems</command> utility is for systems that configure its "
|
||||
"users to be in their own name sake primary group (i.e., guest / guest)."
|
||||
@@ -9064,7 +9064,7 @@ msgstr "ändra åldringsinformation för användarlösenord"
|
||||
msgid ""
|
||||
"The <command>chage</command> command changes the number of days between "
|
||||
"password changes and the date of the last password change. This information "
|
||||
"is used by the system to determine when a user must change his/her password."
|
||||
"is used by the system to determine when a user must change their password."
|
||||
msgstr ""
|
||||
|
||||
#: chage.1.xml:92(para)
|
||||
@@ -9156,8 +9156,8 @@ msgstr ""
|
||||
msgid ""
|
||||
"Set the maximum number of days during which a password is valid. When "
|
||||
"<replaceable>MAX_DAYS</replaceable> plus <replaceable>LAST_DAY</replaceable> "
|
||||
"is less than the current day, the user will be required to change his/her "
|
||||
"password before being able to use his/her account. This occurrence can be "
|
||||
"is less than the current day, the user will be required to change their "
|
||||
"password before being able to use their account. This occurrence can be "
|
||||
"planned for in advance by use of the <option>-W</option> option, which "
|
||||
"provides the user with advance warning."
|
||||
msgstr ""
|
||||
@@ -9181,7 +9181,7 @@ msgstr ""
|
||||
msgid ""
|
||||
"Set the number of days of warning before a password change is required. The "
|
||||
"<replaceable>WARN_DAYS</replaceable> option is the number of days prior to "
|
||||
"the password expiring that a user will be warned his/her password is about "
|
||||
"the password expiring that a user will be warned their password is about "
|
||||
"to expire."
|
||||
msgstr ""
|
||||
|
||||
@@ -9206,7 +9206,7 @@ msgstr ""
|
||||
msgid ""
|
||||
"The <command>chage</command> command is restricted to the root user, except "
|
||||
"for the <option>-l</option> option, which may be used by an unprivileged "
|
||||
"user to determine when his/her password or account is due to expire."
|
||||
"user to determine when their password or account is due to expire."
|
||||
msgstr ""
|
||||
|
||||
#: chage.1.xml:301(replaceable)
|
||||
|
||||
@@ -5037,7 +5037,7 @@ msgstr "更改用户密码"
|
||||
#: passwd.1.xml:89(para)
|
||||
msgid ""
|
||||
"The <command>passwd</command> command changes passwords for user accounts. A "
|
||||
"normal user may only change the password for his/her own account, while the "
|
||||
"normal user may only change the password for their own account, while the "
|
||||
"superuser may change the password for any account. <command>passwd</command> "
|
||||
"also changes the account or associated password validity period."
|
||||
msgstr ""
|
||||
@@ -5051,7 +5051,7 @@ msgstr "密码更改"
|
||||
|
||||
#: passwd.1.xml:99(para)
|
||||
msgid ""
|
||||
"The user is first prompted for his/her old password, if one is present. This "
|
||||
"The user is first prompted for their old password, if one is present. This "
|
||||
"password is then encrypted and compared against the stored password. The "
|
||||
"user has only one chance to enter the correct password. The superuser is "
|
||||
"permitted to bypass this step so that forgotten passwords may be changed."
|
||||
@@ -5181,7 +5181,7 @@ msgstr "<option>-e</option>, <option>--expire</option>"
|
||||
#: passwd.1.xml:207(para)
|
||||
msgid ""
|
||||
"Immediately expire an account's password. This in effect can force a user to "
|
||||
"change his/her password at the user's next login."
|
||||
"change their password at the user's next login."
|
||||
msgstr "让一个账户的密码立即过期。这可以强制一个用户下次登录时更改密码。"
|
||||
|
||||
#: passwd.1.xml:220(term)
|
||||
@@ -5255,7 +5255,7 @@ msgstr ""
|
||||
msgid ""
|
||||
"Set the minimum number of days between password changes to "
|
||||
"<replaceable>MIN_DAYS</replaceable>. A value of zero for this field "
|
||||
"indicates that the user may change his/her password at any time."
|
||||
"indicates that the user may change their password at any time."
|
||||
msgstr ""
|
||||
"在密码更改之间的最小天数设置为 <replaceable>MIN_DAYS</replaceable>。此字段中"
|
||||
"的 0 值表示用户可以在任何时间更改其密码。"
|
||||
@@ -5316,7 +5316,7 @@ msgstr ""
|
||||
msgid ""
|
||||
"Set the number of days of warning before a password change is required. The "
|
||||
"<replaceable>WARN_DAYS</replaceable> option is the number of days prior to "
|
||||
"the password expiring that a user will be warned that his/her password is "
|
||||
"the password expiring that a user will be warned that their password is "
|
||||
"about to expire."
|
||||
msgstr ""
|
||||
"设置在要求更改密码之前警告的天数。<replaceable>WARN_DAYS</replaceable> 选项是"
|
||||
@@ -7867,7 +7867,7 @@ msgstr "-l"
|
||||
|
||||
#: groupmems.8.xml:86(para)
|
||||
msgid ""
|
||||
"The <command>groupmems</command> command allows a user to administer his/her "
|
||||
"The <command>groupmems</command> command allows a user to administer their "
|
||||
"own group membership list without the requirement of superuser privileges. "
|
||||
"The <command>groupmems</command> utility is for systems that configure its "
|
||||
"users to be in their own name sake primary group (i.e., guest / guest)."
|
||||
@@ -9112,7 +9112,7 @@ msgstr "更改用户密码过期信息"
|
||||
msgid ""
|
||||
"The <command>chage</command> command changes the number of days between "
|
||||
"password changes and the date of the last password change. This information "
|
||||
"is used by the system to determine when a user must change his/her password."
|
||||
"is used by the system to determine when a user must change their password."
|
||||
msgstr ""
|
||||
|
||||
#: chage.1.xml:92(para)
|
||||
@@ -9209,8 +9209,8 @@ msgstr ""
|
||||
msgid ""
|
||||
"Set the maximum number of days during which a password is valid. When "
|
||||
"<replaceable>MAX_DAYS</replaceable> plus <replaceable>LAST_DAY</replaceable> "
|
||||
"is less than the current day, the user will be required to change his/her "
|
||||
"password before being able to use his/her account. This occurrence can be "
|
||||
"is less than the current day, the user will be required to change their "
|
||||
"password before being able to use their account. This occurrence can be "
|
||||
"planned for in advance by use of the <option>-W</option> option, which "
|
||||
"provides the user with advance warning."
|
||||
msgstr ""
|
||||
@@ -9240,7 +9240,7 @@ msgstr ""
|
||||
msgid ""
|
||||
"Set the number of days of warning before a password change is required. The "
|
||||
"<replaceable>WARN_DAYS</replaceable> option is the number of days prior to "
|
||||
"the password expiring that a user will be warned his/her password is about "
|
||||
"the password expiring that a user will be warned their password is about "
|
||||
"to expire."
|
||||
msgstr ""
|
||||
"设置在要求更改密码之前几天开始警告。<replaceable>WARN_DAYS</replaceable> 选项"
|
||||
@@ -9267,7 +9267,7 @@ msgstr "<command>chage</command> 需要有一个影子密码文件才可用。"
|
||||
msgid ""
|
||||
"The <command>chage</command> command is restricted to the root user, except "
|
||||
"for the <option>-l</option> option, which may be used by an unprivileged "
|
||||
"user to determine when his/her password or account is due to expire."
|
||||
"user to determine when their password or account is due to expire."
|
||||
msgstr ""
|
||||
"只有 root 才可以使用 <command>chage</command>,一个特殊情况是 <option>-l</"
|
||||
"option> 选项,用来让非特权用户觉得自己的密码或账户何时过期。"
|
||||
|
||||
41
man/su.1.xml
41
man/su.1.xml
@@ -85,12 +85,16 @@
|
||||
<cmdsynopsis>
|
||||
<command>su</command>
|
||||
<arg choice='opt'>
|
||||
<replaceable>options</replaceable>
|
||||
<replaceable>options</replaceable>
|
||||
</arg>
|
||||
<arg choice='opt'>
|
||||
<arg choice='plain'>
|
||||
<replaceable>username</replaceable>
|
||||
</arg>
|
||||
<replaceable>-</replaceable>
|
||||
</arg>
|
||||
<arg choice='opt'>
|
||||
<replaceable>username</replaceable>
|
||||
<arg choice='opt'>
|
||||
<replaceable>args</replaceable>
|
||||
</arg>
|
||||
</arg>
|
||||
</cmdsynopsis>
|
||||
</refsynopsisdiv>
|
||||
@@ -98,26 +102,21 @@
|
||||
<refsect1 id='description'>
|
||||
<title>DESCRIPTION</title>
|
||||
<para>
|
||||
The <command>su</command> command is used to become another user during
|
||||
a login session. Invoked without a <option>username</option>,
|
||||
<command>su</command> defaults to
|
||||
becoming the superuser. The optional argument <option>-</option> may
|
||||
be used to provide an environment similar to what the user would
|
||||
expect had the user logged in directly.
|
||||
The <command>su</command> command is used to become another user during a
|
||||
login session. Invoked without a <option>username</option>,
|
||||
<command>su</command> defaults to becoming the superuser. The
|
||||
<option>-</option> option may be used to provide an environment similar
|
||||
to what the user would expect had the user logged in directly. The
|
||||
<option>-c</option> option may be used to treat the next argument as a
|
||||
command by most shells.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Additional arguments may be provided after the username, in which case
|
||||
they are supplied to the user's login shell. In particular, an
|
||||
argument of <option>-c</option> will cause the next argument to be
|
||||
treated as a command by most command interpreters. The command will be
|
||||
executed by the shell specified in <filename>/etc/passwd</filename>
|
||||
for the target user.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
You can use the <option>--</option> argument to separate
|
||||
<command>su</command> options from the arguments supplied to the shell.
|
||||
Options are recognized everywhere in the argument list. You can use the
|
||||
<option>--</option> argument to stop option parsing. The
|
||||
<option>-</option> option is special: it is also recognized after
|
||||
<option>--</option>, but has to be placed before
|
||||
<option>username</option>.
|
||||
</para>
|
||||
|
||||
<para>The user will be prompted for a password, if appropriate. Invalid
|
||||
|
||||
@@ -453,6 +453,23 @@
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<option>-P</option>, <option>--prefix</option> <replaceable>PREFIX_DIR</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>
|
||||
Apply changes in the <replaceable>PREFIX_DIR</replaceable>
|
||||
directory and use the configuration files from the
|
||||
<replaceable>PREFIX_DIR</replaceable> directory.
|
||||
This option does not chroot and is intended for preparing
|
||||
a cross-compilation target.
|
||||
Some limitations: NIS and LDAP users/groups are not verified.
|
||||
PAM authentication is using the host files.
|
||||
No SELINUX support.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<option>-s</option>, <option>--shell</option> <replaceable>SHELL</replaceable>
|
||||
|
||||
@@ -154,6 +154,23 @@
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<option>-P</option>, <option>--prefix</option> <replaceable>PREFIX_DIR</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>
|
||||
Apply changes in the <replaceable>PREFIX_DIR</replaceable>
|
||||
directory and use the configuration files from the
|
||||
<replaceable>PREFIX_DIR</replaceable> directory.
|
||||
This option does not chroot and is intended for preparing
|
||||
a cross-compilation target.
|
||||
Some limitations: NIS and LDAP users/groups are not verified.
|
||||
PAM authentication is using the host files.
|
||||
No SELINUX support.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<option>-Z</option>, <option>--selinux-user</option>
|
||||
|
||||
@@ -319,6 +319,23 @@
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<option>-P</option>, <option>--prefix</option> <replaceable>PREFIX_DIR</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>
|
||||
Apply changes in the <replaceable>PREFIX_DIR</replaceable>
|
||||
directory and use the configuration files from the
|
||||
<replaceable>PREFIX_DIR</replaceable> directory.
|
||||
This option does not chroot and is intended for preparing
|
||||
a cross-compilation target.
|
||||
Some limitations: NIS and LDAP users/groups are not verified.
|
||||
PAM authentication is using the host files.
|
||||
No SELINUX support.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<option>-s</option>, <option>--shell</option> <replaceable>SHELL</replaceable>
|
||||
|
||||
2
po/bs.po
2
po/bs.po
@@ -2150,7 +2150,7 @@ msgstr ""
|
||||
msgid ""
|
||||
" -a, --append append the user to the supplemental GROUPS\n"
|
||||
" mentioned by the -G option without removing\n"
|
||||
" him/her from other groups\n"
|
||||
" the user from other groups\n"
|
||||
msgstr ""
|
||||
|
||||
msgid " -l, --login NEW_LOGIN new value of the login name\n"
|
||||
|
||||
4
po/ca.po
4
po/ca.po
@@ -2423,7 +2423,7 @@ msgstr " -G, --groups GRUPS llista de GRUPS addicionals\n"
|
||||
msgid ""
|
||||
" -a, --append append the user to the supplemental GROUPS\n"
|
||||
" mentioned by the -G option without removing\n"
|
||||
" him/her from other groups\n"
|
||||
" the user from other groups\n"
|
||||
msgstr ""
|
||||
" -a, --append afegeix l'usuari als GRUPS addicionals\n"
|
||||
" llistats amb la opció -G sense eliminar-los\n"
|
||||
@@ -2968,7 +2968,7 @@ msgstr "%s: no es pot trobar el directori «tcb» per %s\n"
|
||||
#~ "GROUPS\n"
|
||||
#~ " mentioned by the -G option without "
|
||||
#~ "removing\n"
|
||||
#~ " him/her from other groups\n"
|
||||
#~ " the user from other groups\n"
|
||||
#~ " -h, --help display this help message and exit\n"
|
||||
#~ " -l, --login NEW_LOGIN new value of the login name\n"
|
||||
#~ " -L, --lock lock the user account\n"
|
||||
|
||||
306
po/cs.po
306
po/cs.po
@@ -6,7 +6,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: shadow 4.2\n"
|
||||
"Report-Msgid-Bugs-To: pkg-shadow-devel@lists.alioth.debian.org\n"
|
||||
"POT-Creation-Date: 2014-08-22 17:05+0200\n"
|
||||
"POT-Creation-Date: 2016-09-18 14:03-0500\n"
|
||||
"PO-Revision-Date: 2014-08-24 15:07+0200\n"
|
||||
"Last-Translator: Miroslav Kure <kurem@debian.cz>\n"
|
||||
"Language-Team: Czech <debian-l10n-czech@lists.debian.org>\n"
|
||||
@@ -330,30 +330,6 @@ msgstr "%s: Nelze získat jedinečné systémové GID (volná GID neexistují)\n
|
||||
msgid "%s: Can't get unique GID (no more available GIDs)\n"
|
||||
msgstr "%s: Nelze získat jedinečné GID (volná GID neexistují)\n"
|
||||
|
||||
#, c-format
|
||||
msgid ""
|
||||
"%s: Invalid configuration: SUB_GID_MIN (%lu), SUB_GID_MAX (%lu), "
|
||||
"SUB_GID_COUNT (%lu)\n"
|
||||
msgstr ""
|
||||
"%s: Neplatné nastavení: SUB_GID_MIN (%lu), SUB_GID_MAX (%lu), "
|
||||
"SUB_GID_COUNT (%lu)\n"
|
||||
|
||||
#, c-format
|
||||
msgid "%s: Can't get unique subordinate GID range\n"
|
||||
msgstr "%s: Nelze získat jedinečný rozsah podřízených GID\n"
|
||||
|
||||
#, c-format
|
||||
msgid ""
|
||||
"%s: Invalid configuration: SUB_UID_MIN (%lu), SUB_UID_MAX (%lu), "
|
||||
"SUB_UID_COUNT (%lu)\n"
|
||||
msgstr ""
|
||||
"%s: Neplatné nastavení: SUB_UID_MIN (%lu), SUB_UID_MAX (%lu), "
|
||||
"SUB_UID_COUNT (%lu)\n"
|
||||
|
||||
#, c-format
|
||||
msgid "%s: Can't get unique subordinate UID range\n"
|
||||
msgstr "%s: Nelze získat jedinečný rozsah podřízených UID\n"
|
||||
|
||||
#, c-format
|
||||
msgid "%s: Invalid configuration: UID_MIN (%lu), UID_MAX (%lu)\n"
|
||||
msgstr "%s: Neplatné nastavení: UID_MIN (%lu), UID_MAX (%lu)\n"
|
||||
@@ -373,26 +349,6 @@ msgstr "%s: Nelze získat jedinečné systémové UID (volná UID neexistují)\n
|
||||
msgid "%s: Can't get unique UID (no more available UIDs)\n"
|
||||
msgstr "%s: Nelze získat jedinečné UID (volná UID neexistují)\n"
|
||||
|
||||
#, c-format
|
||||
msgid "%s: Not enough arguments to form %u mappings\n"
|
||||
msgstr "%s: Nedostatek argumentů pro vytvoření %u mapování\n"
|
||||
|
||||
#, c-format
|
||||
msgid "%s: Memory allocation failure\n"
|
||||
msgstr "%s: Chyba alokace paměti\n"
|
||||
|
||||
#, c-format
|
||||
msgid "%s: snprintf failed!\n"
|
||||
msgstr "%s: snprintf selhalo!\n"
|
||||
|
||||
#, c-format
|
||||
msgid "%s: open of %s failed: %s\n"
|
||||
msgstr "%s: otevření %s selhalo: %s\n"
|
||||
|
||||
#, c-format
|
||||
msgid "%s: write to %s failed: %s\n"
|
||||
msgstr "%s: zápis do %s selhal: %s\n"
|
||||
|
||||
msgid "Too many logins.\n"
|
||||
msgstr "Příliš mnoho přihlášení.\n"
|
||||
|
||||
@@ -444,27 +400,6 @@ msgstr "passwd: heslo nebylo změněno\n"
|
||||
msgid "passwd: password updated successfully\n"
|
||||
msgstr "passwd: heslo bylo úspěšně změněno\n"
|
||||
|
||||
#, c-format
|
||||
msgid "%s: PAM modules requesting echoing are not supported.\n"
|
||||
msgstr ""
|
||||
"%s: PAM moduly vyžadující zobrazování zpětné vazby nejsou podporovány.\n"
|
||||
|
||||
#, c-format
|
||||
msgid "%s: conversation type %d not supported.\n"
|
||||
msgstr "%s: typ konverzace %d není podporován.\n"
|
||||
|
||||
#, c-format
|
||||
msgid "%s: (user %s) pam_start failure %d\n"
|
||||
msgstr "%s: (uživatel %s) chyba pam_start %d\n"
|
||||
|
||||
#, c-format
|
||||
msgid ""
|
||||
"%s: (user %s) pam_chauthtok() failed, error:\n"
|
||||
"%s\n"
|
||||
msgstr ""
|
||||
"%s: (uživatel %s) volání pam_chauthtok() selhalo, chyba:\n"
|
||||
"%s\n"
|
||||
|
||||
#, c-format
|
||||
msgid "Incorrect password for %s.\n"
|
||||
msgstr "Chybné heslo pro %s.\n"
|
||||
@@ -524,14 +459,6 @@ msgstr "Chybný kořenový adresář „%s“\n"
|
||||
msgid "Can't change root directory to '%s'\n"
|
||||
msgstr "Nelze změnit kořenový adresář na „%s“\n"
|
||||
|
||||
#, c-format
|
||||
msgid "%s: user %s is currently logged in\n"
|
||||
msgstr "%s: uživatel %s je právě přihlášen\n"
|
||||
|
||||
#, c-format
|
||||
msgid "%s: user %s is currently used by process %d\n"
|
||||
msgstr "%s: uživatel %s je momentálně používán procesem %d\n"
|
||||
|
||||
msgid "Unable to determine your tty name."
|
||||
msgstr "Nelze zjistit vaše uživatelské jméno."
|
||||
|
||||
@@ -1158,6 +1085,15 @@ msgstr "%s: GID „%lu“ již existuje\n"
|
||||
msgid "%s: Cannot setup cleanup service.\n"
|
||||
msgstr "%s: nelze nastavit úklidovou službu.\n"
|
||||
|
||||
#, fuzzy
|
||||
#| msgid ""
|
||||
#| " -r, --reset reset the counters of login failures\n"
|
||||
msgid ""
|
||||
" -f, --force delete group even if it is the primary group "
|
||||
"of a user\n"
|
||||
msgstr ""
|
||||
" -r, --reset vynuluje počitadla chybných přihlášení\n"
|
||||
|
||||
#, c-format
|
||||
msgid "%s: cannot remove entry '%s' from %s\n"
|
||||
msgstr "%s: nelze odstranit záznam „%s“ z %s\n"
|
||||
@@ -1383,6 +1319,26 @@ msgid ""
|
||||
msgstr ""
|
||||
" -b, --before DNŮ zobrazí záznamy lastlogu starší než DNŮ\n"
|
||||
|
||||
#, fuzzy
|
||||
#| msgid ""
|
||||
#| " -a, --all display faillog records for all users\n"
|
||||
msgid ""
|
||||
" -C, --clear clear lastlog record of an user (usable only "
|
||||
"with -u)\n"
|
||||
msgstr ""
|
||||
" -a, --all zobrazí záznamy faillogu o všech "
|
||||
"uživatelích\n"
|
||||
|
||||
#, fuzzy
|
||||
#| msgid ""
|
||||
#| " -a, --all display faillog records for all users\n"
|
||||
msgid ""
|
||||
" -S, --set set lastlog record to current time (usable "
|
||||
"only with -u)\n"
|
||||
msgstr ""
|
||||
" -a, --all zobrazí záznamy faillogu o všech "
|
||||
"uživatelích\n"
|
||||
|
||||
msgid ""
|
||||
" -t, --time DAYS print only lastlog records more recent than "
|
||||
"DAYS\n"
|
||||
@@ -1403,6 +1359,24 @@ msgstr "Uživatel Port Naposledy"
|
||||
msgid "**Never logged in**"
|
||||
msgstr "**Nikdy nebyl přihlášen**"
|
||||
|
||||
#, fuzzy, c-format
|
||||
#| msgid "%s: Failed to get the entry for UID %lu\n"
|
||||
msgid "%s: Failed to update the entry for UID %lu\n"
|
||||
msgstr "%s: nepodařilo se získat záznam pro UID %lu\n"
|
||||
|
||||
#, fuzzy, c-format
|
||||
#| msgid "%s: can't update password file\n"
|
||||
msgid "%s: Failed to update the lastlog file\n"
|
||||
msgstr "%s: soubor s hesly nelze aktualizovat\n"
|
||||
|
||||
#, c-format
|
||||
msgid "%s: Option -C cannot be used together with option -S\n"
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "%s: Options -C and -S require option -u to specify the user\n"
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "Usage: %s [-p] [name]\n"
|
||||
msgstr "Použití: %s [-p] [jméno]\n"
|
||||
@@ -1436,6 +1410,13 @@ msgstr ""
|
||||
"\n"
|
||||
"[Odpojení přeskočeno -- uživatel root smí být přihlášen.]"
|
||||
|
||||
#, c-format
|
||||
msgid "%s: Cannot possibly work without effective root\n"
|
||||
msgstr "%s: Bez efektivních oprávnění uživatele root nelze pracovat\n"
|
||||
|
||||
msgid "No utmp entry. You must exec \"login\" from the lowest level \"sh\""
|
||||
msgstr "utmp záznam neexistuje. Musíte spustit „login“ z nejnižšího „sh“"
|
||||
|
||||
#, c-format
|
||||
msgid ""
|
||||
"\n"
|
||||
@@ -1444,13 +1425,6 @@ msgstr ""
|
||||
"\n"
|
||||
"Vypršel časový limit pro přihlášení (%u sekund).\n"
|
||||
|
||||
#, c-format
|
||||
msgid "%s: Cannot possibly work without effective root\n"
|
||||
msgstr "%s: Bez efektivních oprávnění uživatele root nelze pracovat\n"
|
||||
|
||||
msgid "No utmp entry. You must exec \"login\" from the lowest level \"sh\""
|
||||
msgstr "utmp záznam neexistuje. Musíte spustit „login“ z nejnižšího „sh“"
|
||||
|
||||
#, c-format
|
||||
msgid "login: PAM Failure, aborting: %s\n"
|
||||
msgstr "login: Chyba PAM, končím: %s\n"
|
||||
@@ -1517,28 +1491,6 @@ msgstr ""
|
||||
msgid "Usage: logoutd\n"
|
||||
msgstr "Použití: logoutd\n"
|
||||
|
||||
#, c-format
|
||||
msgid "%s: gid range [%lu-%lu) -> [%lu-%lu) not allowed\n"
|
||||
msgstr "%s: rozsah gid [%lu-%lu) -> [%lu-%lu) není povolen\n"
|
||||
|
||||
#, c-format
|
||||
msgid ""
|
||||
"usage: %s <pid> <gid> <lowergid> <count> [ <gid> <lowergid> <count> ] ... \n"
|
||||
msgstr ""
|
||||
"použití: %s <pid> <gid> <spodnígid> <počet> [ <gid> <spodnígid> <počet> ] ...\n"
|
||||
|
||||
#, c-format
|
||||
msgid "%s: Could not open proc directory for target %u\n"
|
||||
msgstr "%s: Nelze otevřít proc adresář cílového procesu %u\n"
|
||||
|
||||
#, c-format
|
||||
msgid "%s: Could not stat directory for target %u\n"
|
||||
msgstr "%s: Nelze zavolat stat na adresář cílového procesu %u\n"
|
||||
|
||||
#, c-format
|
||||
msgid "%s: Target %u is owned by a different user\n"
|
||||
msgstr "%s: Cílový proces %u je vlastněn jiným uživatelem\n"
|
||||
|
||||
msgid "Usage: newgrp [-] [group]\n"
|
||||
msgstr "Použití: newgrp [-] [skupina]\n"
|
||||
|
||||
@@ -1563,16 +1515,6 @@ msgstr "%s: GID „%lu“ neexistuje\n"
|
||||
msgid "too many groups\n"
|
||||
msgstr "příliš mnoho skupin\n"
|
||||
|
||||
#, c-format
|
||||
msgid "%s: uid range [%lu-%lu) -> [%lu-%lu) not allowed\n"
|
||||
msgstr "%s: rozsah uid [%lu-%lu) -> [%lu-%lu) není povolen\n"
|
||||
|
||||
#, c-format
|
||||
msgid ""
|
||||
"usage: %s <pid> <uid> <loweruid> <count> [ <uid> <loweruid> <count> ] ... \n"
|
||||
msgstr ""
|
||||
"použití: %s <pid> <uid> <spodníuid> <počet> [ <uid> <spodníuid> <počet> ] ...\n"
|
||||
|
||||
msgid " -r, --system create system accounts\n"
|
||||
msgstr " -r, --system vytvoří systémový účet\n"
|
||||
|
||||
@@ -1898,12 +1840,6 @@ msgstr "Ověřování heslem vynecháno.\n"
|
||||
msgid "Please enter your OWN password as authentication.\n"
|
||||
msgstr "Pro ověření zadejte VAŠE vlastní heslo.\n"
|
||||
|
||||
msgid " ...killed.\n"
|
||||
msgstr " ...zabit.\n"
|
||||
|
||||
msgid " ...waiting for child to terminate.\n"
|
||||
msgstr " ...čeká na ukončení potomka.\n"
|
||||
|
||||
#, c-format
|
||||
msgid "%s: Cannot fork user shell\n"
|
||||
msgstr "%s: Nelze rozdvojit uživatelský shell\n"
|
||||
@@ -1919,6 +1855,12 @@ msgstr "%s: chyba maskování signálu\n"
|
||||
msgid "Session terminated, terminating shell..."
|
||||
msgstr "Sezení skončeno, ukončuji shell..."
|
||||
|
||||
msgid " ...killed.\n"
|
||||
msgstr " ...zabit.\n"
|
||||
|
||||
msgid " ...waiting for child to terminate.\n"
|
||||
msgstr " ...čeká na ukončení potomka.\n"
|
||||
|
||||
msgid " ...terminated.\n"
|
||||
msgstr " ...ukončen.\n"
|
||||
|
||||
@@ -2392,7 +2334,7 @@ msgstr ""
|
||||
msgid ""
|
||||
" -a, --append append the user to the supplemental GROUPS\n"
|
||||
" mentioned by the -G option without removing\n"
|
||||
" him/her from other groups\n"
|
||||
" the user from other groups\n"
|
||||
msgstr ""
|
||||
" -a, --append přidá uživatele do dalších SKUPIN zadaných\n"
|
||||
" volbou -G; neruší členství v ostatních sk.\n"
|
||||
@@ -2486,22 +2428,6 @@ msgstr "%s: UID „%lu“ již existuje\n"
|
||||
msgid "%s: %s does not exist, you cannot use the flags %s or %s\n"
|
||||
msgstr "%s: %s neexistuje, nemůžete použít přepínač %s ani %s\n"
|
||||
|
||||
#, c-format
|
||||
msgid "%s: failed to remove uid range %lu-%lu from '%s'\n"
|
||||
msgstr "%s: odebrání rozsahu uid %lu-%lu z „%s“ selhalo\n"
|
||||
|
||||
#, c-format
|
||||
msgid "%s: failed to add uid range %lu-%lu from '%s'\n"
|
||||
msgstr "%s: přidání rozsahu uid %lu-%lu z „%s“ selhalo\n"
|
||||
|
||||
#, c-format
|
||||
msgid "%s: failed to remove gid range %lu-%lu from '%s'\n"
|
||||
msgstr "%s: odebrání rozsahu gid %lu-%lu z „%s“ selhalo\n"
|
||||
|
||||
#, c-format
|
||||
msgid "%s: failed to add gid range %lu-%lu from '%s'\n"
|
||||
msgstr "%s: přidání rozsahu gid %lu-%lu z „%s“ selhalo\n"
|
||||
|
||||
#, c-format
|
||||
msgid "%s: directory %s exists\n"
|
||||
msgstr "%s: adresář %s již existuje\n"
|
||||
@@ -2548,6 +2474,22 @@ msgstr "chyba při změně vlastníka poštovní schránky"
|
||||
msgid "failed to rename mailbox"
|
||||
msgstr "chyba při přejmenovávání poštovní schránky"
|
||||
|
||||
#, c-format
|
||||
msgid "%s: failed to remove uid range %lu-%lu from '%s'\n"
|
||||
msgstr "%s: odebrání rozsahu uid %lu-%lu z „%s“ selhalo\n"
|
||||
|
||||
#, c-format
|
||||
msgid "%s: failed to add uid range %lu-%lu from '%s'\n"
|
||||
msgstr "%s: přidání rozsahu uid %lu-%lu z „%s“ selhalo\n"
|
||||
|
||||
#, c-format
|
||||
msgid "%s: failed to remove gid range %lu-%lu from '%s'\n"
|
||||
msgstr "%s: odebrání rozsahu gid %lu-%lu z „%s“ selhalo\n"
|
||||
|
||||
#, c-format
|
||||
msgid "%s: failed to add gid range %lu-%lu from '%s'\n"
|
||||
msgstr "%s: přidání rozsahu gid %lu-%lu z „%s“ selhalo\n"
|
||||
|
||||
#, c-format
|
||||
msgid ""
|
||||
"You have modified %s.\n"
|
||||
@@ -2634,6 +2576,93 @@ msgstr "%s: %s nelze obnovit: %s (změny jsou v %s)\n"
|
||||
msgid "%s: failed to find tcb directory for %s\n"
|
||||
msgstr "%s: nepodařilo se nalézt tcb adresář uživatele %s\n"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "%s: Invalid configuration: SUB_GID_MIN (%lu), SUB_GID_MAX (%lu), "
|
||||
#~ "SUB_GID_COUNT (%lu)\n"
|
||||
#~ msgstr ""
|
||||
#~ "%s: Neplatné nastavení: SUB_GID_MIN (%lu), SUB_GID_MAX (%lu), "
|
||||
#~ "SUB_GID_COUNT (%lu)\n"
|
||||
|
||||
#~ msgid "%s: Can't get unique subordinate GID range\n"
|
||||
#~ msgstr "%s: Nelze získat jedinečný rozsah podřízených GID\n"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "%s: Invalid configuration: SUB_UID_MIN (%lu), SUB_UID_MAX (%lu), "
|
||||
#~ "SUB_UID_COUNT (%lu)\n"
|
||||
#~ msgstr ""
|
||||
#~ "%s: Neplatné nastavení: SUB_UID_MIN (%lu), SUB_UID_MAX (%lu), "
|
||||
#~ "SUB_UID_COUNT (%lu)\n"
|
||||
|
||||
#~ msgid "%s: Can't get unique subordinate UID range\n"
|
||||
#~ msgstr "%s: Nelze získat jedinečný rozsah podřízených UID\n"
|
||||
|
||||
#~ msgid "%s: Not enough arguments to form %u mappings\n"
|
||||
#~ msgstr "%s: Nedostatek argumentů pro vytvoření %u mapování\n"
|
||||
|
||||
#~ msgid "%s: Memory allocation failure\n"
|
||||
#~ msgstr "%s: Chyba alokace paměti\n"
|
||||
|
||||
#~ msgid "%s: snprintf failed!\n"
|
||||
#~ msgstr "%s: snprintf selhalo!\n"
|
||||
|
||||
#~ msgid "%s: open of %s failed: %s\n"
|
||||
#~ msgstr "%s: otevření %s selhalo: %s\n"
|
||||
|
||||
#~ msgid "%s: write to %s failed: %s\n"
|
||||
#~ msgstr "%s: zápis do %s selhal: %s\n"
|
||||
|
||||
#~ msgid "%s: PAM modules requesting echoing are not supported.\n"
|
||||
#~ msgstr ""
|
||||
#~ "%s: PAM moduly vyžadující zobrazování zpětné vazby nejsou podporovány.\n"
|
||||
|
||||
#~ msgid "%s: conversation type %d not supported.\n"
|
||||
#~ msgstr "%s: typ konverzace %d není podporován.\n"
|
||||
|
||||
#~ msgid "%s: (user %s) pam_start failure %d\n"
|
||||
#~ msgstr "%s: (uživatel %s) chyba pam_start %d\n"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "%s: (user %s) pam_chauthtok() failed, error:\n"
|
||||
#~ "%s\n"
|
||||
#~ msgstr ""
|
||||
#~ "%s: (uživatel %s) volání pam_chauthtok() selhalo, chyba:\n"
|
||||
#~ "%s\n"
|
||||
|
||||
#~ msgid "%s: user %s is currently logged in\n"
|
||||
#~ msgstr "%s: uživatel %s je právě přihlášen\n"
|
||||
|
||||
#~ msgid "%s: user %s is currently used by process %d\n"
|
||||
#~ msgstr "%s: uživatel %s je momentálně používán procesem %d\n"
|
||||
|
||||
#~ msgid "%s: gid range [%lu-%lu) -> [%lu-%lu) not allowed\n"
|
||||
#~ msgstr "%s: rozsah gid [%lu-%lu) -> [%lu-%lu) není povolen\n"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "usage: %s <pid> <gid> <lowergid> <count> [ <gid> <lowergid> "
|
||||
#~ "<count> ] ... \n"
|
||||
#~ msgstr ""
|
||||
#~ "použití: %s <pid> <gid> <spodnígid> <počet> [ <gid> <spodnígid> "
|
||||
#~ "<počet> ] ...\n"
|
||||
|
||||
#~ msgid "%s: Could not open proc directory for target %u\n"
|
||||
#~ msgstr "%s: Nelze otevřít proc adresář cílového procesu %u\n"
|
||||
|
||||
#~ msgid "%s: Could not stat directory for target %u\n"
|
||||
#~ msgstr "%s: Nelze zavolat stat na adresář cílového procesu %u\n"
|
||||
|
||||
#~ msgid "%s: Target %u is owned by a different user\n"
|
||||
#~ msgstr "%s: Cílový proces %u je vlastněn jiným uživatelem\n"
|
||||
|
||||
#~ msgid "%s: uid range [%lu-%lu) -> [%lu-%lu) not allowed\n"
|
||||
#~ msgstr "%s: rozsah uid [%lu-%lu) -> [%lu-%lu) není povolen\n"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "usage: %s <pid> <uid> <loweruid> <count> [ <uid> <loweruid> "
|
||||
#~ "<count> ] ... \n"
|
||||
#~ msgstr ""
|
||||
#~ "použití: %s <pid> <uid> <spodníuid> <počet> [ <uid> <spodníuid> "
|
||||
#~ "<počet> ] ...\n"
|
||||
|
||||
#~ msgid " -c, --crypt-method the crypt method (one of %s)\n"
|
||||
#~ msgstr " -c, --crypt-method typ šifry (jeden z %s)\n"
|
||||
|
||||
@@ -2897,7 +2926,7 @@ msgstr "%s: nepodařilo se nalézt tcb adresář uživatele %s\n"
|
||||
#~ "GROUPS\n"
|
||||
#~ " mentioned by the -G option without "
|
||||
#~ "removing\n"
|
||||
#~ " him/her from other groups\n"
|
||||
#~ " the user from other groups\n"
|
||||
#~ " -h, --help display this help message and exit\n"
|
||||
#~ " -l, --login NEW_LOGIN new value of the login name\n"
|
||||
#~ " -L, --lock lock the user account\n"
|
||||
@@ -3270,9 +3299,6 @@ msgstr "%s: nepodařilo se nalézt tcb adresář uživatele %s\n"
|
||||
#~ msgid "%s: can't rewrite password file\n"
|
||||
#~ msgstr "%s: soubor s hesly nelze přepsat\n"
|
||||
|
||||
#~ msgid "%s: can't update password file\n"
|
||||
#~ msgstr "%s: soubor s hesly nelze aktualizovat\n"
|
||||
|
||||
#~ msgid "%s: can't update shadow password file\n"
|
||||
#~ msgstr "%s: soubor se stínovými hesly nelze aktualizovat\n"
|
||||
|
||||
|
||||
2
po/da.po
2
po/da.po
@@ -2370,7 +2370,7 @@ msgstr " -G, --groups GRUPPER ny liste med supplerende grupper\n"
|
||||
msgid ""
|
||||
" -a, --append append the user to the supplemental GROUPS\n"
|
||||
" mentioned by the -G option without removing\n"
|
||||
" him/her from other groups\n"
|
||||
" the user from other groups\n"
|
||||
msgstr ""
|
||||
" -a, --append tilføj brugeren til de supplementære "
|
||||
"GRUPPER\n"
|
||||
|
||||
198
po/de.po
198
po/de.po
@@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: shadow 4.2-2\n"
|
||||
"Report-Msgid-Bugs-To: pkg-shadow-devel@lists.alioth.debian.org\n"
|
||||
"POT-Creation-Date: 2012-05-20 19:52+0200\n"
|
||||
"POT-Creation-Date: 2016-09-18 14:03-0500\n"
|
||||
"PO-Revision-Date: 2014-07-27 23:06+0200\n"
|
||||
"Last-Translator: Holger Wansing <hwansing@mailbox.org>\n"
|
||||
"Language-Team: German <debian-l10n-german@lists.debian.org>\n"
|
||||
@@ -428,6 +428,11 @@ msgstr "%s: Ungültiger chroot-Pfad »%s«\n"
|
||||
msgid "%s: cannot access chroot directory %s: %s\n"
|
||||
msgstr "%s: auf chroot-Verzeichnis %s kann nicht zugegriffen werden: %s\n"
|
||||
|
||||
#, fuzzy, c-format
|
||||
#| msgid "%s: cannot access chroot directory %s: %s\n"
|
||||
msgid "%s: cannot chdir to chroot directory %s: %s\n"
|
||||
msgstr "%s: auf chroot-Verzeichnis %s kann nicht zugegriffen werden: %s\n"
|
||||
|
||||
#, c-format
|
||||
msgid "%s: unable to chroot to directory %s: %s\n"
|
||||
msgstr "%s: chroot-Wechsel in Verzeichnis %s nicht möglich: %s\n"
|
||||
@@ -796,6 +801,11 @@ msgstr "%s: Zeile %d: Zeile zu lang\n"
|
||||
msgid "%s: line %d: missing new password\n"
|
||||
msgstr "%s: Zeile %d: Neues Passwort fehlt\n"
|
||||
|
||||
#, fuzzy, c-format
|
||||
#| msgid "%s: Failed to write %s: %s\n"
|
||||
msgid "%s: failed to crypt password with salt '%s': %s\n"
|
||||
msgstr "%s: Schreiben von %s fehlgeschlagen: %s\n"
|
||||
|
||||
#, c-format
|
||||
msgid "%s: line %d: group '%s' does not exist\n"
|
||||
msgstr "%s: Zeile %d: Gruppe »%s« existiert nicht\n"
|
||||
@@ -1109,6 +1119,16 @@ msgstr "%s: GID »%lu« existiert bereits.\n"
|
||||
msgid "%s: Cannot setup cleanup service.\n"
|
||||
msgstr "%s: Ihr Benutzername konnte nicht bestimmt werden.\n"
|
||||
|
||||
#, fuzzy
|
||||
#| msgid ""
|
||||
#| " -r, --reset reset the counters of login failures\n"
|
||||
msgid ""
|
||||
" -f, --force delete group even if it is the primary group "
|
||||
"of a user\n"
|
||||
msgstr ""
|
||||
" -r, --reset Zähler fehlgeschlagener Anmeldungen\n"
|
||||
" zurücksetzen\n"
|
||||
|
||||
#, c-format
|
||||
msgid "%s: cannot remove entry '%s' from %s\n"
|
||||
msgstr "%s: Eintrag »%s« konnte nicht aus %s entfernt werden.\n"
|
||||
@@ -1345,6 +1365,26 @@ msgstr ""
|
||||
"älter\n"
|
||||
" als TAGE sind\n"
|
||||
|
||||
#, fuzzy
|
||||
#| msgid ""
|
||||
#| " -a, --all display faillog records for all users\n"
|
||||
msgid ""
|
||||
" -C, --clear clear lastlog record of an user (usable only "
|
||||
"with -u)\n"
|
||||
msgstr ""
|
||||
" -a, --all Aufzeichnungen fehlgeschlagener Anmeldungen\n"
|
||||
" für alle Benutzer anzeigen\n"
|
||||
|
||||
#, fuzzy
|
||||
#| msgid ""
|
||||
#| " -a, --all display faillog records for all users\n"
|
||||
msgid ""
|
||||
" -S, --set set lastlog record to current time (usable "
|
||||
"only with -u)\n"
|
||||
msgstr ""
|
||||
" -a, --all Aufzeichnungen fehlgeschlagener Anmeldungen\n"
|
||||
" für alle Benutzer anzeigen\n"
|
||||
|
||||
msgid ""
|
||||
" -t, --time DAYS print only lastlog records more recent than "
|
||||
"DAYS\n"
|
||||
@@ -1367,6 +1407,24 @@ msgstr "Benutzername Port Letzter"
|
||||
msgid "**Never logged in**"
|
||||
msgstr "**Noch nie angemeldet**"
|
||||
|
||||
#, fuzzy, c-format
|
||||
#| msgid "%s: Failed to get the entry for UID %lu\n"
|
||||
msgid "%s: Failed to update the entry for UID %lu\n"
|
||||
msgstr "%s: Auslesen des Eintrags für UID %lu fehlgeschlagen\n"
|
||||
|
||||
#, fuzzy, c-format
|
||||
#| msgid "%s: failed to reset the lastlog entry of UID %lu: %s\n"
|
||||
msgid "%s: Failed to update the lastlog file\n"
|
||||
msgstr "%s: Zurücksetzen des lastlog-Eintrags für UID %lu fehlgeschlagen: %s\n"
|
||||
|
||||
#, c-format
|
||||
msgid "%s: Option -C cannot be used together with option -S\n"
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "%s: Options -C and -S require option -u to specify the user\n"
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "Usage: %s [-p] [name]\n"
|
||||
msgstr "Aufruf: %s [-p] [Name]\n"
|
||||
@@ -1400,6 +1458,14 @@ msgstr ""
|
||||
"\n"
|
||||
"[Trennung abgebrochen -- root-Login erlaubt.]"
|
||||
|
||||
#, c-format
|
||||
msgid "%s: Cannot possibly work without effective root\n"
|
||||
msgstr "%s: Arbeit ohne effektive root-Rechte eventuell nicht möglich\n"
|
||||
|
||||
msgid "No utmp entry. You must exec \"login\" from the lowest level \"sh\""
|
||||
msgstr ""
|
||||
"Kein utmp-Eintrag. Sie müssen »login« vom niedrigsten »sh«-Level ausführen."
|
||||
|
||||
#, c-format
|
||||
msgid ""
|
||||
"\n"
|
||||
@@ -1409,14 +1475,6 @@ msgstr ""
|
||||
"Login nach %u Sekunden wegen\n"
|
||||
"Zeitüberschreitung abgebrochen.\n"
|
||||
|
||||
#, c-format
|
||||
msgid "%s: Cannot possibly work without effective root\n"
|
||||
msgstr "%s: Arbeit ohne effektive root-Rechte eventuell nicht möglich\n"
|
||||
|
||||
msgid "No utmp entry. You must exec \"login\" from the lowest level \"sh\""
|
||||
msgstr ""
|
||||
"Kein utmp-Eintrag. Sie müssen »login« vom niedrigsten »sh«-Level ausführen."
|
||||
|
||||
#, c-format
|
||||
msgid "login: PAM Failure, aborting: %s\n"
|
||||
msgstr "login: PAM-Fehler, Abbruch: %s\n"
|
||||
@@ -1489,6 +1547,11 @@ msgstr "Aufruf: newgrp [-] [Gruppe]\n"
|
||||
msgid "Usage: sg group [[-c] command]\n"
|
||||
msgstr "Aufruf: sg Gruppe [[-c] Befehl]\n"
|
||||
|
||||
#, fuzzy, c-format
|
||||
#| msgid "%s: Failed to write %s: %s\n"
|
||||
msgid "%s: failed to crypt password with previous salt: %s\n"
|
||||
msgstr "%s: Schreiben von %s fehlgeschlagen: %s\n"
|
||||
|
||||
msgid "Invalid password.\n"
|
||||
msgstr "Ungültiges Passwort.\n"
|
||||
|
||||
@@ -1557,6 +1620,21 @@ msgstr "%s: Zeile %d: chown %s (Eigentümer ändern) fehlgeschlagen: %s\n"
|
||||
msgid "%s: line %d: can't update entry\n"
|
||||
msgstr "%s: Zeile %d: Eintrag kann nicht aktualisiert werden.\n"
|
||||
|
||||
#, fuzzy, c-format
|
||||
#| msgid "%s: failed to prepare the new %s entry '%s'\n"
|
||||
msgid "%s: failed to prepare new %s entry\n"
|
||||
msgstr "%s: Vorbereiten des neuen %s-Eintrags »%s« fehlgeschlagen.\n"
|
||||
|
||||
#, fuzzy, c-format
|
||||
#| msgid "%s: can't create user\n"
|
||||
msgid "%s: can't find subordinate user range\n"
|
||||
msgstr "%s: Benutzer kann nicht erstellt werden\n"
|
||||
|
||||
#, fuzzy, c-format
|
||||
#| msgid "%s: can't create group\n"
|
||||
msgid "%s: can't find subordinate group range\n"
|
||||
msgstr "%s: Gruppe kann nicht erzeugt werden\n"
|
||||
|
||||
msgid ""
|
||||
" -a, --all report password status on all accounts\n"
|
||||
msgstr ""
|
||||
@@ -1827,12 +1905,6 @@ msgstr "Passwort-Authentifizierung umgangen.\n"
|
||||
msgid "Please enter your OWN password as authentication.\n"
|
||||
msgstr "Bitte geben Sie Ihr EIGENES Passwort als Authentifizierung ein.\n"
|
||||
|
||||
msgid " ...killed.\n"
|
||||
msgstr " ... abgeschossen.\n"
|
||||
|
||||
msgid " ...waiting for child to terminate.\n"
|
||||
msgstr " ... Warten auf Beendigung des Kindprozesses.\n"
|
||||
|
||||
#, c-format
|
||||
msgid "%s: Cannot fork user shell\n"
|
||||
msgstr "%s: Prozessaufspaltung (fork) für Benutzer-Shell nicht möglich\n"
|
||||
@@ -1848,13 +1920,19 @@ msgstr "%s: Signalmaskierungs-Fehlfunktion\n"
|
||||
msgid "Session terminated, terminating shell..."
|
||||
msgstr "Sitzung abgebrochen, Shell wird beendet ..."
|
||||
|
||||
#, c-format
|
||||
msgid "%s: %s\n"
|
||||
msgstr "%s: %s\n"
|
||||
msgid " ...killed.\n"
|
||||
msgstr " ... abgeschossen.\n"
|
||||
|
||||
msgid " ...waiting for child to terminate.\n"
|
||||
msgstr " ... Warten auf Beendigung des Kindprozesses.\n"
|
||||
|
||||
msgid " ...terminated.\n"
|
||||
msgstr " ... abgebrochen.\n"
|
||||
|
||||
#, c-format
|
||||
msgid "%s: %s\n"
|
||||
msgstr "%s: %s\n"
|
||||
|
||||
msgid ""
|
||||
"Usage: su [options] [LOGIN]\n"
|
||||
"\n"
|
||||
@@ -2149,6 +2227,11 @@ msgstr "%s: Zurücksetzen des faillog-Eintrags für UID %lu fehlgeschlagen: %s\n
|
||||
msgid "%s: failed to reset the lastlog entry of UID %lu: %s\n"
|
||||
msgstr "%s: Zurücksetzen des lastlog-Eintrags für UID %lu fehlgeschlagen: %s\n"
|
||||
|
||||
#, fuzzy, c-format
|
||||
#| msgid "%s: failed to prepare the new %s entry '%s'\n"
|
||||
msgid "%s: failed to prepare the new %s entry\n"
|
||||
msgstr "%s: Vorbereiten des neuen %s-Eintrags »%s« fehlgeschlagen.\n"
|
||||
|
||||
#, c-format
|
||||
msgid "%s: cannot create directory %s\n"
|
||||
msgstr "%s: Verzeichnis %s kann nicht erstellt werden.\n"
|
||||
@@ -2192,6 +2275,16 @@ msgstr "%s: Erstellen des tcb-Verzeichnisses für %s fehlgeschlagen\n"
|
||||
msgid "%s: can't create group\n"
|
||||
msgstr "%s: Gruppe kann nicht erzeugt werden\n"
|
||||
|
||||
#, fuzzy, c-format
|
||||
#| msgid "%s: can't create user\n"
|
||||
msgid "%s: can't create subordinate user IDs\n"
|
||||
msgstr "%s: Benutzer kann nicht erstellt werden\n"
|
||||
|
||||
#, fuzzy, c-format
|
||||
#| msgid "%s: can't create group\n"
|
||||
msgid "%s: can't create subordinate group IDs\n"
|
||||
msgstr "%s: Gruppe kann nicht erzeugt werden\n"
|
||||
|
||||
#, c-format
|
||||
msgid ""
|
||||
"%s: warning: the home directory already exists.\n"
|
||||
@@ -2243,6 +2336,11 @@ msgstr ""
|
||||
"%s: Gruppe %s ist die primäre Gruppe eines anderen Benutzers und wird\n"
|
||||
"nicht entfernt.\n"
|
||||
|
||||
#, fuzzy, c-format
|
||||
#| msgid "%s: cannot remove entry '%s' from %s\n"
|
||||
msgid "%s: cannot remove entry %lu from %s\n"
|
||||
msgstr "%s: Eintrag »%s« konnte nicht aus %s entfernt werden.\n"
|
||||
|
||||
#, c-format
|
||||
msgid "%s: %s mail spool (%s) not found\n"
|
||||
msgstr "%s: %s Mail-Warteschlange (%s) nicht gefunden\n"
|
||||
@@ -2327,7 +2425,7 @@ msgstr " -G, --groups GRUPPEN Neue Liste zusätzlicher GRUPPEN\n"
|
||||
msgid ""
|
||||
" -a, --append append the user to the supplemental GROUPS\n"
|
||||
" mentioned by the -G option without removing\n"
|
||||
" him/her from other groups\n"
|
||||
" the user from other groups\n"
|
||||
msgstr ""
|
||||
" -a, --append Benutzer zu zusätzlichen Gruppen "
|
||||
"hinzufügen,\n"
|
||||
@@ -2368,6 +2466,18 @@ msgstr " -u, --uid UID Neue UID des Benutzerzugangs\n"
|
||||
msgid " -U, --unlock unlock the user account\n"
|
||||
msgstr " -U, --unlock Den Benutzerzugang entsperren\n"
|
||||
|
||||
msgid " -v, --add-subuids FIRST-LAST add range of subordinate uids\n"
|
||||
msgstr ""
|
||||
|
||||
msgid " -V, --del-subuids FIRST-LAST remove range of subordinate uids\n"
|
||||
msgstr ""
|
||||
|
||||
msgid " -w, --add-subgids FIRST-LAST add range of subordinate gids\n"
|
||||
msgstr ""
|
||||
|
||||
msgid " -W, --del-subgids FIRST-LAST remove range of subordinate gids\n"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
" -Z, --selinux-user SEUSER new SELinux user mapping for the user "
|
||||
"account\n"
|
||||
@@ -2389,6 +2499,16 @@ msgstr ""
|
||||
msgid "%s: user '%s' already exists in %s\n"
|
||||
msgstr "%s: Benutzer »%s« existiert bereits in %s.\n"
|
||||
|
||||
#, fuzzy, c-format
|
||||
#| msgid "%s: invalid date '%s'\n"
|
||||
msgid "%s: invalid subordinate uid range '%s'\n"
|
||||
msgstr "%s: Ungültiges Datum »%s«\n"
|
||||
|
||||
#, fuzzy, c-format
|
||||
#| msgid "%s: invalid date '%s'\n"
|
||||
msgid "%s: invalid subordinate gid range '%s'\n"
|
||||
msgstr "%s: Ungültiges Datum »%s«\n"
|
||||
|
||||
#, c-format
|
||||
msgid "%s: no options\n"
|
||||
msgstr "%s: keine Optionen\n"
|
||||
@@ -2405,6 +2525,11 @@ msgstr "%s: shadow-Passwörter für -e und -f erforderlich\n"
|
||||
msgid "%s: UID '%lu' already exists\n"
|
||||
msgstr "%s: UID »%lu« existiert bereits\n"
|
||||
|
||||
#, fuzzy, c-format
|
||||
#| msgid "%s: %s is not authorized to change the password of %s\n"
|
||||
msgid "%s: %s does not exist, you cannot use the flags %s or %s\n"
|
||||
msgstr "%s: %s ist nicht berechtigt, das Passwort von %s zu ändern.\n"
|
||||
|
||||
#, c-format
|
||||
msgid "%s: directory %s exists\n"
|
||||
msgstr "%s: Verzeichnis %s existiert\n"
|
||||
@@ -2452,6 +2577,26 @@ msgstr "Fehler beim Ändern des mailbox-Besitzers"
|
||||
msgid "failed to rename mailbox"
|
||||
msgstr "Fehler beim Umbenennen von mailbox"
|
||||
|
||||
#, fuzzy, c-format
|
||||
#| msgid "%s: failed to prepare the new %s entry '%s'\n"
|
||||
msgid "%s: failed to remove uid range %lu-%lu from '%s'\n"
|
||||
msgstr "%s: Vorbereiten des neuen %s-Eintrags »%s« fehlgeschlagen.\n"
|
||||
|
||||
#, fuzzy, c-format
|
||||
#| msgid "%s: failed to prepare the new %s entry '%s'\n"
|
||||
msgid "%s: failed to add uid range %lu-%lu from '%s'\n"
|
||||
msgstr "%s: Vorbereiten des neuen %s-Eintrags »%s« fehlgeschlagen.\n"
|
||||
|
||||
#, fuzzy, c-format
|
||||
#| msgid "%s: failed to prepare the new %s entry '%s'\n"
|
||||
msgid "%s: failed to remove gid range %lu-%lu from '%s'\n"
|
||||
msgstr "%s: Vorbereiten des neuen %s-Eintrags »%s« fehlgeschlagen.\n"
|
||||
|
||||
#, fuzzy, c-format
|
||||
#| msgid "%s: failed to prepare the new %s entry '%s'\n"
|
||||
msgid "%s: failed to add gid range %lu-%lu from '%s'\n"
|
||||
msgstr "%s: Vorbereiten des neuen %s-Eintrags »%s« fehlgeschlagen.\n"
|
||||
|
||||
#, c-format
|
||||
msgid ""
|
||||
"You have modified %s.\n"
|
||||
@@ -2506,6 +2651,20 @@ msgstr "Datei konnte nicht gesperrt werden"
|
||||
msgid "Couldn't make backup"
|
||||
msgstr "Sicherung konnte nicht erstellt werden"
|
||||
|
||||
#, fuzzy, c-format
|
||||
#| msgid "%s: PAM: %s\n"
|
||||
msgid "%s: %s: %s\n"
|
||||
msgstr "%s: PAM: %s\n"
|
||||
|
||||
#, fuzzy, c-format
|
||||
#| msgid "%s: nscd exited with status %d\n"
|
||||
msgid "%s: %s returned with status %d\n"
|
||||
msgstr "%s: nscd wurde mit Status %d beendet\n"
|
||||
|
||||
#, c-format
|
||||
msgid "%s: %s killed by signal %d\n"
|
||||
msgstr ""
|
||||
|
||||
msgid "failed to open scratch file"
|
||||
msgstr "Öffnen der scratch-Datei fehlgeschlagen"
|
||||
|
||||
@@ -2530,4 +2689,3 @@ msgstr ""
|
||||
#, c-format
|
||||
msgid "%s: failed to find tcb directory for %s\n"
|
||||
msgstr "%s: tcb-Verzeichnis für %s konnte nicht gefunden werden\n"
|
||||
|
||||
|
||||
4
po/dz.po
4
po/dz.po
@@ -2298,7 +2298,7 @@ msgstr ""
|
||||
msgid ""
|
||||
" -a, --append append the user to the supplemental GROUPS\n"
|
||||
" mentioned by the -G option without removing\n"
|
||||
" him/her from other groups\n"
|
||||
" the user from other groups\n"
|
||||
msgstr ""
|
||||
|
||||
msgid " -l, --login NEW_LOGIN new value of the login name\n"
|
||||
@@ -2831,7 +2831,7 @@ msgstr "%s: ནུས་མེད་གཞི་རྟེན་སྣོད་
|
||||
#~ "GROUPS\n"
|
||||
#~ " mentioned by the -G option without "
|
||||
#~ "removing\n"
|
||||
#~ " him/her from other groups\n"
|
||||
#~ " the user from other groups\n"
|
||||
#~ " -h, --help display this help message and exit\n"
|
||||
#~ " -l, --login NEW_LOGIN new value of the login name\n"
|
||||
#~ " -L, --lock lock the user account\n"
|
||||
|
||||
4
po/el.po
4
po/el.po
@@ -2444,7 +2444,7 @@ msgstr ""
|
||||
msgid ""
|
||||
" -a, --append append the user to the supplemental GROUPS\n"
|
||||
" mentioned by the -G option without removing\n"
|
||||
" him/her from other groups\n"
|
||||
" the user from other groups\n"
|
||||
msgstr ""
|
||||
" -a, --append προσθήκη του χρήστη στις συμπληρωματικές "
|
||||
"ΟΜΑΔΕΣ\n"
|
||||
@@ -2981,7 +2981,7 @@ msgstr "%s: αποτυχία εύρεσης καταλόγου tcb %s\n"
|
||||
#~ "GROUPS\n"
|
||||
#~ " mentioned by the -G option without "
|
||||
#~ "removing\n"
|
||||
#~ " him/her from other groups\n"
|
||||
#~ " the user from other groups\n"
|
||||
#~ " -h, --help display this help message and exit\n"
|
||||
#~ " -l, --login NEW_LOGIN new value of the login name\n"
|
||||
#~ " -L, --lock lock the user account\n"
|
||||
|
||||
4
po/es.po
4
po/es.po
@@ -2462,7 +2462,7 @@ msgstr " -G, --groups GRUPOS lista de grupos suplementarios\n"
|
||||
msgid ""
|
||||
" -a, --append append the user to the supplemental GROUPS\n"
|
||||
" mentioned by the -G option without removing\n"
|
||||
" him/her from other groups\n"
|
||||
" the user from other groups\n"
|
||||
msgstr ""
|
||||
|
||||
msgid " -l, --login NEW_LOGIN new value of the login name\n"
|
||||
@@ -3019,7 +3019,7 @@ msgstr "%s: se produjo un fallo al buscar el directorio tcb de %s\n"
|
||||
#~ "GROUPS\n"
|
||||
#~ " mentioned by the -G option without "
|
||||
#~ "removing\n"
|
||||
#~ " him/her from other groups\n"
|
||||
#~ " the user from other groups\n"
|
||||
#~ " -h, --help display this help message and exit\n"
|
||||
#~ " -l, --login NEW_LOGIN new value of the login name\n"
|
||||
#~ " -L, --lock lock the user account\n"
|
||||
|
||||
4
po/eu.po
4
po/eu.po
@@ -2408,7 +2408,7 @@ msgstr ""
|
||||
msgid ""
|
||||
" -a, --append append the user to the supplemental GROUPS\n"
|
||||
" mentioned by the -G option without removing\n"
|
||||
" him/her from other groups\n"
|
||||
" the user from other groups\n"
|
||||
msgstr ""
|
||||
" -a, --append gehitu erabiltzailea -G aukerak zehaztutako "
|
||||
"talde\n"
|
||||
@@ -2962,7 +2962,7 @@ msgstr "%s: oinarrizko '%s' direktorio baliogabea\n"
|
||||
#~ "GROUPS\n"
|
||||
#~ " mentioned by the -G option without "
|
||||
#~ "removing\n"
|
||||
#~ " him/her from other groups\n"
|
||||
#~ " the user from other groups\n"
|
||||
#~ " -h, --help display this help message and exit\n"
|
||||
#~ " -l, --login NEW_LOGIN new value of the login name\n"
|
||||
#~ " -L, --lock lock the user account\n"
|
||||
|
||||
4
po/fi.po
4
po/fi.po
@@ -2302,7 +2302,7 @@ msgstr ""
|
||||
msgid ""
|
||||
" -a, --append append the user to the supplemental GROUPS\n"
|
||||
" mentioned by the -G option without removing\n"
|
||||
" him/her from other groups\n"
|
||||
" the user from other groups\n"
|
||||
msgstr ""
|
||||
|
||||
msgid " -l, --login NEW_LOGIN new value of the login name\n"
|
||||
@@ -2890,7 +2890,7 @@ msgstr "%s: virheellinen perushakemisto \"%s\"\n"
|
||||
#~ "GROUPS\n"
|
||||
#~ " mentioned by the -G option without "
|
||||
#~ "removing\n"
|
||||
#~ " him/her from other groups\n"
|
||||
#~ " the user from other groups\n"
|
||||
#~ " -h, --help display this help message and exit\n"
|
||||
#~ " -l, --login NEW_LOGIN new value of the login name\n"
|
||||
#~ " -L, --lock lock the user account\n"
|
||||
|
||||
4
po/gl.po
4
po/gl.po
@@ -2303,7 +2303,7 @@ msgstr ""
|
||||
msgid ""
|
||||
" -a, --append append the user to the supplemental GROUPS\n"
|
||||
" mentioned by the -G option without removing\n"
|
||||
" him/her from other groups\n"
|
||||
" the user from other groups\n"
|
||||
msgstr ""
|
||||
|
||||
msgid " -l, --login NEW_LOGIN new value of the login name\n"
|
||||
@@ -2837,7 +2837,7 @@ msgstr "%s: directorio base \"%s\" non válido\n"
|
||||
#~ "GROUPS\n"
|
||||
#~ " mentioned by the -G option without "
|
||||
#~ "removing\n"
|
||||
#~ " him/her from other groups\n"
|
||||
#~ " the user from other groups\n"
|
||||
#~ " -h, --help display this help message and exit\n"
|
||||
#~ " -l, --login NEW_LOGIN new value of the login name\n"
|
||||
#~ " -L, --lock lock the user account\n"
|
||||
|
||||
2
po/he.po
2
po/he.po
@@ -2169,7 +2169,7 @@ msgstr ""
|
||||
msgid ""
|
||||
" -a, --append append the user to the supplemental GROUPS\n"
|
||||
" mentioned by the -G option without removing\n"
|
||||
" him/her from other groups\n"
|
||||
" the user from other groups\n"
|
||||
msgstr ""
|
||||
|
||||
msgid " -l, --login NEW_LOGIN new value of the login name\n"
|
||||
|
||||
4
po/hu.po
4
po/hu.po
@@ -2297,7 +2297,7 @@ msgstr ""
|
||||
msgid ""
|
||||
" -a, --append append the user to the supplemental GROUPS\n"
|
||||
" mentioned by the -G option without removing\n"
|
||||
" him/her from other groups\n"
|
||||
" the user from other groups\n"
|
||||
msgstr ""
|
||||
|
||||
msgid " -l, --login NEW_LOGIN new value of the login name\n"
|
||||
@@ -2893,7 +2893,7 @@ msgstr "%s: érvénytelen alapkönyvtár: \"%s\"\n"
|
||||
#~ "GROUPS\n"
|
||||
#~ " mentioned by the -G option without "
|
||||
#~ "removing\n"
|
||||
#~ " him/her from other groups\n"
|
||||
#~ " the user from other groups\n"
|
||||
#~ " -h, --help display this help message and exit\n"
|
||||
#~ " -l, --login NEW_LOGIN new value of the login name\n"
|
||||
#~ " -L, --lock lock the user account\n"
|
||||
|
||||
4
po/id.po
4
po/id.po
@@ -2285,7 +2285,7 @@ msgstr ""
|
||||
msgid ""
|
||||
" -a, --append append the user to the supplemental GROUPS\n"
|
||||
" mentioned by the -G option without removing\n"
|
||||
" him/her from other groups\n"
|
||||
" the user from other groups\n"
|
||||
msgstr ""
|
||||
|
||||
msgid " -l, --login NEW_LOGIN new value of the login name\n"
|
||||
@@ -2809,7 +2809,7 @@ msgstr "%s: direktori awal `%s' tak sah\n"
|
||||
#~ "GROUPS\n"
|
||||
#~ " mentioned by the -G option without "
|
||||
#~ "removing\n"
|
||||
#~ " him/her from other groups\n"
|
||||
#~ " the user from other groups\n"
|
||||
#~ " -h, --help display this help message and exit\n"
|
||||
#~ " -l, --login NEW_LOGIN new value of the login name\n"
|
||||
#~ " -L, --lock lock the user account\n"
|
||||
|
||||
6
po/it.po
6
po/it.po
@@ -2487,7 +2487,7 @@ msgstr ""
|
||||
msgid ""
|
||||
" -a, --append append the user to the supplemental GROUPS\n"
|
||||
" mentioned by the -G option without removing\n"
|
||||
" him/her from other groups\n"
|
||||
" the user from other groups\n"
|
||||
msgstr ""
|
||||
|
||||
msgid " -l, --login NEW_LOGIN new value of the login name\n"
|
||||
@@ -3090,7 +3090,7 @@ msgstr "%s: directory di base «%s» non valida\n"
|
||||
#~| "GROUPS\n"
|
||||
#~| " mentioned by the -G option without "
|
||||
#~| "removing\n"
|
||||
#~| " him/her from other groups\n"
|
||||
#~| " the user from other groups\n"
|
||||
#~| " -h, --help display this help message and exit\n"
|
||||
#~| " -l, --login NEW_LOGIN new value of the login name\n"
|
||||
#~| " -L, --lock lock the user account\n"
|
||||
@@ -3120,7 +3120,7 @@ msgstr "%s: directory di base «%s» non valida\n"
|
||||
#~ "GROUPS\n"
|
||||
#~ " mentioned by the -G option without "
|
||||
#~ "removing\n"
|
||||
#~ " him/her from other groups\n"
|
||||
#~ " the user from other groups\n"
|
||||
#~ " -h, --help display this help message and exit\n"
|
||||
#~ " -l, --login NEW_LOGIN new value of the login name\n"
|
||||
#~ " -L, --lock lock the user account\n"
|
||||
|
||||
4
po/ja.po
4
po/ja.po
@@ -2332,7 +2332,7 @@ msgstr " -G, --groups GROUPS 新たな補助グループのリスト
|
||||
msgid ""
|
||||
" -a, --append append the user to the supplemental GROUPS\n"
|
||||
" mentioned by the -G option without removing\n"
|
||||
" him/her from other groups\n"
|
||||
" the user from other groups\n"
|
||||
msgstr ""
|
||||
" -a, --append ユーザを (-G で指定された) 補助グループ群\n"
|
||||
" GROUPS に追加する。他のグループからの削除は\n"
|
||||
@@ -2841,7 +2841,7 @@ msgstr "%s: %s の tcb ディレクトリが見付かりませんでした\n"
|
||||
#~ "GROUPS\n"
|
||||
#~ " mentioned by the -G option without "
|
||||
#~ "removing\n"
|
||||
#~ " him/her from other groups\n"
|
||||
#~ " the user from other groups\n"
|
||||
#~ " -h, --help display this help message and exit\n"
|
||||
#~ " -l, --login NEW_LOGIN new value of the login name\n"
|
||||
#~ " -L, --lock lock the user account\n"
|
||||
|
||||
19
po/kk.po
19
po/kk.po
@@ -785,7 +785,6 @@ msgid "%s: line %d: missing new password\n"
|
||||
msgstr "%s: жол %d: жаңа пароль жоқ\n"
|
||||
|
||||
#, c-format
|
||||
#| msgid "%s: Failed to write %s: %s\n"
|
||||
msgid "%s: failed to crypt password with salt '%s': %s\n"
|
||||
msgstr "%s: парольді '%s' тұзымен шифрлеу сәтсіз аяқталды: %s\n"
|
||||
|
||||
@@ -1095,8 +1094,6 @@ msgstr "%s: GID '%lu' бар болып тұр\n"
|
||||
msgid "%s: Cannot setup cleanup service.\n"
|
||||
msgstr "%s: Тазарту қызметін орнату мүмкін емес.\n"
|
||||
|
||||
#| msgid ""
|
||||
#| " -r, --reset reset the counters of login failures\n"
|
||||
msgid ""
|
||||
" -f, --force delete group even if it is the primary group "
|
||||
"of a user\n"
|
||||
@@ -1330,8 +1327,6 @@ msgstr ""
|
||||
" -b, --before КҮН мерзімі КҮНнен үлкен ғана lastlog жазбаларын "
|
||||
"көрсету\n"
|
||||
|
||||
#| msgid ""
|
||||
#| " -a, --all display faillog records for all users\n"
|
||||
msgid ""
|
||||
" -C, --clear clear lastlog record of an user (usable only "
|
||||
"with -u)\n"
|
||||
@@ -1339,8 +1334,6 @@ msgstr ""
|
||||
" -C, --clear пайдаланушының lastlog жазбасын тазарту (тек "
|
||||
"-u опциясымен бірге пайдаланылады)\n"
|
||||
|
||||
#| msgid ""
|
||||
#| " -a, --all display faillog records for all users\n"
|
||||
msgid ""
|
||||
" -S, --set set lastlog record to current time (usable "
|
||||
"only with -u)\n"
|
||||
@@ -1511,7 +1504,6 @@ msgid "Usage: sg group [[-c] command]\n"
|
||||
msgstr "Қолданылуы: sg топ [[-c] командасы]\n"
|
||||
|
||||
#, c-format
|
||||
#| msgid "%s: Failed to write %s: %s\n"
|
||||
msgid "%s: failed to crypt password with previous salt: %s\n"
|
||||
msgstr "%s: парольді алдыңғы тұзбен шифрлеу сәтсіз аяқталды: %s\n"
|
||||
|
||||
@@ -1587,7 +1579,6 @@ msgid "%s: failed to prepare new %s entry\n"
|
||||
msgstr "%s: жаңа %s жазбасын дайындау сәтсіз аяқталды\n"
|
||||
|
||||
#, c-format
|
||||
#| msgid "%s: can't create user\n"
|
||||
msgid "%s: can't find subordinate user range\n"
|
||||
msgstr "%s: бағынышты пайдаланушы ауқымын табу мүмкін емес\n"
|
||||
|
||||
@@ -2006,7 +1997,6 @@ msgid "%s: line too long in %s: %s..."
|
||||
msgstr "%s: %s ішіндегі жол тым ұзын: %s..."
|
||||
|
||||
#, c-format
|
||||
#| msgid "%s: Cannot create symbolic link %s: %s\n"
|
||||
msgid "%s: Cannot create backup file (%s): %s\n"
|
||||
msgstr "%s: Қор көшірме файлын жасау мүмкін емес (%s): %s\n"
|
||||
|
||||
@@ -2218,7 +2208,6 @@ msgid "%s: can't create group\n"
|
||||
msgstr "%s: топты құру мүмкін емес\n"
|
||||
|
||||
#, c-format
|
||||
#| msgid "%s: can't create user\n"
|
||||
msgid "%s: can't create subordinate user IDs\n"
|
||||
msgstr "%s: бағынышты пайдаланушы ID-ын жасау мүмкін емес\n"
|
||||
|
||||
@@ -2357,7 +2346,7 @@ msgstr " -G, --groups ТОПТАР пайдаланушыны қос
|
||||
msgid ""
|
||||
" -a, --append append the user to the supplemental GROUPS\n"
|
||||
" mentioned by the -G option without removing\n"
|
||||
" him/her from other groups\n"
|
||||
" the user from other groups\n"
|
||||
msgstr ""
|
||||
" -a, --append пайдаланушыны қосымша ТОПТАР ішіне қосу\n"
|
||||
" -G опциясы сияқты, пайдаланушыны басқа "
|
||||
@@ -2430,7 +2419,6 @@ msgid "%s: user '%s' already exists in %s\n"
|
||||
msgstr "%s: '%s' пайдаланушысы %s ішінде бар болып тұр\n"
|
||||
|
||||
#, c-format
|
||||
#| msgid "%s: invalid date '%s'\n"
|
||||
msgid "%s: invalid subordinate uid range '%s'\n"
|
||||
msgstr "%s: жарамсыз бағынышты uid ауқымы '%s'\n"
|
||||
|
||||
@@ -2455,7 +2443,6 @@ msgid "%s: UID '%lu' already exists\n"
|
||||
msgstr "%s: '%lu' UID-і бар болып тұр\n"
|
||||
|
||||
#, c-format
|
||||
#| msgid "%s: %s is not authorized to change the password of %s\n"
|
||||
msgid "%s: %s does not exist, you cannot use the flags %s or %s\n"
|
||||
msgstr "%s: %s жоқ болып тұр, %s немесе %s жалаушаларын қолдануға болмайды\n"
|
||||
|
||||
@@ -2504,7 +2491,6 @@ msgid "failed to rename mailbox"
|
||||
msgstr "mailbox атын ауыстыру қатемен аяқталды"
|
||||
|
||||
#, c-format
|
||||
#| msgid "%s: failed to prepare the new %s entry '%s'\n"
|
||||
msgid "%s: failed to remove uid range %lu-%lu from '%s'\n"
|
||||
msgstr "%s: %lu-%lu uid-тар ауқымын '%s' ішінен өшіру сәтсіз аяқталды\n"
|
||||
|
||||
@@ -2574,7 +2560,6 @@ msgid "Couldn't make backup"
|
||||
msgstr "Қор көшірмені жасау мүмкін емес"
|
||||
|
||||
#, c-format
|
||||
#| msgid "%s: PAM: %s\n"
|
||||
msgid "%s: %s: %s\n"
|
||||
msgstr "%s: %s: %s\n"
|
||||
|
||||
@@ -2891,7 +2876,7 @@ msgstr "%s: %s үшін tcb бумасын табу сәтсіз\n"
|
||||
#~ "GROUPS\n"
|
||||
#~ " mentioned by the -G option without "
|
||||
#~ "removing\n"
|
||||
#~ " him/her from other groups\n"
|
||||
#~ " the user from other groups\n"
|
||||
#~ " -h, --help display this help message and exit\n"
|
||||
#~ " -l, --login NEW_LOGIN new value of the login name\n"
|
||||
#~ " -L, --lock lock the user account\n"
|
||||
|
||||
4
po/km.po
4
po/km.po
@@ -2319,7 +2319,7 @@ msgstr ""
|
||||
msgid ""
|
||||
" -a, --append append the user to the supplemental GROUPS\n"
|
||||
" mentioned by the -G option without removing\n"
|
||||
" him/her from other groups\n"
|
||||
" the user from other groups\n"
|
||||
msgstr ""
|
||||
|
||||
msgid " -l, --login NEW_LOGIN new value of the login name\n"
|
||||
@@ -2845,7 +2845,7 @@ msgstr "%s ៖ ថតមូលដ្ឋានមិនត្រឹ
|
||||
#~ "GROUPS\n"
|
||||
#~ " mentioned by the -G option without "
|
||||
#~ "removing\n"
|
||||
#~ " him/her from other groups\n"
|
||||
#~ " the user from other groups\n"
|
||||
#~ " -h, --help display this help message and exit\n"
|
||||
#~ " -l, --login NEW_LOGIN new value of the login name\n"
|
||||
#~ " -L, --lock lock the user account\n"
|
||||
|
||||
6
po/ko.po
6
po/ko.po
@@ -2352,7 +2352,7 @@ msgstr " -s, --sha-rounds SHA* 암호화 알고리즘의 SHA 라
|
||||
msgid ""
|
||||
" -a, --append append the user to the supplemental GROUPS\n"
|
||||
" mentioned by the -G option without removing\n"
|
||||
" him/her from other groups\n"
|
||||
" the user from other groups\n"
|
||||
msgstr ""
|
||||
|
||||
msgid " -l, --login NEW_LOGIN new value of the login name\n"
|
||||
@@ -2884,7 +2884,7 @@ msgstr "%s: 기본 디렉터리 '%s' 잘못되었습니다\n"
|
||||
#~| "GROUPS\n"
|
||||
#~| " mentioned by the -G option without "
|
||||
#~| "removing\n"
|
||||
#~| " him/her from other groups\n"
|
||||
#~| " the user from other groups\n"
|
||||
#~| " -h, --help display this help message and exit\n"
|
||||
#~| " -l, --login NEW_LOGIN new value of the login name\n"
|
||||
#~| " -L, --lock lock the user account\n"
|
||||
@@ -2914,7 +2914,7 @@ msgstr "%s: 기본 디렉터리 '%s' 잘못되었습니다\n"
|
||||
#~ "GROUPS\n"
|
||||
#~ " mentioned by the -G option without "
|
||||
#~ "removing\n"
|
||||
#~ " him/her from other groups\n"
|
||||
#~ " the user from other groups\n"
|
||||
#~ " -h, --help display this help message and exit\n"
|
||||
#~ " -l, --login NEW_LOGIN new value of the login name\n"
|
||||
#~ " -L, --lock lock the user account\n"
|
||||
|
||||
4
po/ne.po
4
po/ne.po
@@ -2298,7 +2298,7 @@ msgstr ""
|
||||
msgid ""
|
||||
" -a, --append append the user to the supplemental GROUPS\n"
|
||||
" mentioned by the -G option without removing\n"
|
||||
" him/her from other groups\n"
|
||||
" the user from other groups\n"
|
||||
msgstr ""
|
||||
|
||||
msgid " -l, --login NEW_LOGIN new value of the login name\n"
|
||||
@@ -2829,7 +2829,7 @@ msgstr "%s: अवैध डाइरेक्ट्री '%s'\n"
|
||||
#~ "GROUPS\n"
|
||||
#~ " mentioned by the -G option without "
|
||||
#~ "removing\n"
|
||||
#~ " him/her from other groups\n"
|
||||
#~ " the user from other groups\n"
|
||||
#~ " -h, --help display this help message and exit\n"
|
||||
#~ " -l, --login NEW_LOGIN new value of the login name\n"
|
||||
#~ " -L, --lock lock the user account\n"
|
||||
|
||||
2
po/nn.po
2
po/nn.po
@@ -2265,7 +2265,7 @@ msgstr ""
|
||||
msgid ""
|
||||
" -a, --append append the user to the supplemental GROUPS\n"
|
||||
" mentioned by the -G option without removing\n"
|
||||
" him/her from other groups\n"
|
||||
" the user from other groups\n"
|
||||
msgstr ""
|
||||
|
||||
msgid " -l, --login NEW_LOGIN new value of the login name\n"
|
||||
|
||||
4
po/pl.po
4
po/pl.po
@@ -2305,7 +2305,7 @@ msgstr ""
|
||||
msgid ""
|
||||
" -a, --append append the user to the supplemental GROUPS\n"
|
||||
" mentioned by the -G option without removing\n"
|
||||
" him/her from other groups\n"
|
||||
" the user from other groups\n"
|
||||
msgstr ""
|
||||
|
||||
msgid " -l, --login NEW_LOGIN new value of the login name\n"
|
||||
@@ -2898,7 +2898,7 @@ msgstr "%s: nieprawidłowy katalog bazowy '%s'\n"
|
||||
#~ "GROUPS\n"
|
||||
#~ " mentioned by the -G option without "
|
||||
#~ "removing\n"
|
||||
#~ " him/her from other groups\n"
|
||||
#~ " the user from other groups\n"
|
||||
#~ " -h, --help display this help message and exit\n"
|
||||
#~ " -l, --login NEW_LOGIN new value of the login name\n"
|
||||
#~ " -L, --lock lock the user account\n"
|
||||
|
||||
4
po/pt.po
4
po/pt.po
@@ -2408,7 +2408,7 @@ msgstr " -G, --groups GRUPOS nova lista de grupos adicionais\n"
|
||||
msgid ""
|
||||
" -a, --append append the user to the supplemental GROUPS\n"
|
||||
" mentioned by the -G option without removing\n"
|
||||
" him/her from other groups\n"
|
||||
" the user from other groups\n"
|
||||
msgstr ""
|
||||
" -a, --append juntar o utilizador aos GRUPOS\n"
|
||||
" suplementares mencionados pela opção -G\n"
|
||||
@@ -2954,7 +2954,7 @@ msgstr "%s: falhou encontrar o directório tcb para %s\n"
|
||||
#~ "GROUPS\n"
|
||||
#~ " mentioned by the -G option without "
|
||||
#~ "removing\n"
|
||||
#~ " him/her from other groups\n"
|
||||
#~ " the user from other groups\n"
|
||||
#~ " -h, --help display this help message and exit\n"
|
||||
#~ " -l, --login NEW_LOGIN new value of the login name\n"
|
||||
#~ " -L, --lock lock the user account\n"
|
||||
|
||||
@@ -2395,7 +2395,7 @@ msgstr " -G, --groups GRUPOS nova lista de GRUPOS suplementares\n"
|
||||
msgid ""
|
||||
" -a, --append append the user to the supplemental GROUPS\n"
|
||||
" mentioned by the -G option without removing\n"
|
||||
" him/her from other groups\n"
|
||||
" the user from other groups\n"
|
||||
msgstr ""
|
||||
" -a, --append anexa o usuário para os GRUPOS "
|
||||
"suplementares\n"
|
||||
@@ -2932,7 +2932,7 @@ msgstr "%s: falha ao procurar o diretório tcb para %s\n"
|
||||
#~ "GROUPS\n"
|
||||
#~ " mentioned by the -G option without "
|
||||
#~ "removing\n"
|
||||
#~ " him/her from other groups\n"
|
||||
#~ " the user from other groups\n"
|
||||
#~ " -h, --help display this help message and exit\n"
|
||||
#~ " -l, --login NEW_LOGIN new value of the login name\n"
|
||||
#~ " -L, --lock lock the user account\n"
|
||||
|
||||
4
po/ro.po
4
po/ro.po
@@ -2304,7 +2304,7 @@ msgstr ""
|
||||
msgid ""
|
||||
" -a, --append append the user to the supplemental GROUPS\n"
|
||||
" mentioned by the -G option without removing\n"
|
||||
" him/her from other groups\n"
|
||||
" the user from other groups\n"
|
||||
msgstr ""
|
||||
|
||||
msgid " -l, --login NEW_LOGIN new value of the login name\n"
|
||||
@@ -2853,7 +2853,7 @@ msgstr "%s: director de bază nevalid '%s'\n"
|
||||
#~ "GROUPS\n"
|
||||
#~ " mentioned by the -G option without "
|
||||
#~ "removing\n"
|
||||
#~ " him/her from other groups\n"
|
||||
#~ " the user from other groups\n"
|
||||
#~ " -h, --help display this help message and exit\n"
|
||||
#~ " -l, --login NEW_LOGIN new value of the login name\n"
|
||||
#~ " -L, --lock lock the user account\n"
|
||||
|
||||
4
po/ru.po
4
po/ru.po
@@ -2413,7 +2413,7 @@ msgstr " -G, --groups ГРУППЫ список дополнител
|
||||
msgid ""
|
||||
" -a, --append append the user to the supplemental GROUPS\n"
|
||||
" mentioned by the -G option without removing\n"
|
||||
" him/her from other groups\n"
|
||||
" the user from other groups\n"
|
||||
msgstr ""
|
||||
" -a, --append добавить пользователя в дополнительные\n"
|
||||
" ГРУППЫ, указанные в параметре -G не удаляя\n"
|
||||
@@ -2960,7 +2960,7 @@ msgstr "%s: не удалось найти каталог tcb для %s\n"
|
||||
#~ "GROUPS\n"
|
||||
#~ " mentioned by the -G option without "
|
||||
#~ "removing\n"
|
||||
#~ " him/her from other groups\n"
|
||||
#~ " the user from other groups\n"
|
||||
#~ " -h, --help display this help message and exit\n"
|
||||
#~ " -l, --login NEW_LOGIN new value of the login name\n"
|
||||
#~ " -L, --lock lock the user account\n"
|
||||
|
||||
@@ -480,7 +480,7 @@ msgid ""
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
" -M, --maxdays MAX_DAYS set maximim number of days before password\n"
|
||||
" -M, --maxdays MAX_DAYS set maximum number of days before password\n"
|
||||
" change to MAX_DAYS\n"
|
||||
msgstr ""
|
||||
|
||||
@@ -2123,7 +2123,7 @@ msgstr ""
|
||||
msgid ""
|
||||
" -a, --append append the user to the supplemental GROUPS\n"
|
||||
" mentioned by the -G option without removing\n"
|
||||
" him/her from other groups\n"
|
||||
" the user from other groups\n"
|
||||
msgstr ""
|
||||
|
||||
msgid " -l, --login NEW_LOGIN new value of the login name\n"
|
||||
|
||||
6
po/sk.po
6
po/sk.po
@@ -2363,7 +2363,7 @@ msgstr " -G, --groups SKUPINY zobrazí prídavné skupiny\n"
|
||||
msgid ""
|
||||
" -a, --append append the user to the supplemental GROUPS\n"
|
||||
" mentioned by the -G option without removing\n"
|
||||
" him/her from other groups\n"
|
||||
" the user from other groups\n"
|
||||
msgstr ""
|
||||
|
||||
msgid " -l, --login NEW_LOGIN new value of the login name\n"
|
||||
@@ -2941,7 +2941,7 @@ msgstr "%s: chybný základný adresár „%s“\n"
|
||||
#~| "GROUPS\n"
|
||||
#~| " mentioned by the -G option without "
|
||||
#~| "removing\n"
|
||||
#~| " him/her from other groups\n"
|
||||
#~| " the user from other groups\n"
|
||||
#~| " -h, --help display this help message and exit\n"
|
||||
#~| " -l, --login NEW_LOGIN new value of the login name\n"
|
||||
#~| " -L, --lock lock the user account\n"
|
||||
@@ -2971,7 +2971,7 @@ msgstr "%s: chybný základný adresár „%s“\n"
|
||||
#~ "GROUPS\n"
|
||||
#~ " mentioned by the -G option without "
|
||||
#~ "removing\n"
|
||||
#~ " him/her from other groups\n"
|
||||
#~ " the user from other groups\n"
|
||||
#~ " -h, --help display this help message and exit\n"
|
||||
#~ " -l, --login NEW_LOGIN new value of the login name\n"
|
||||
#~ " -L, --lock lock the user account\n"
|
||||
|
||||
2
po/sq.po
2
po/sq.po
@@ -2130,7 +2130,7 @@ msgstr ""
|
||||
msgid ""
|
||||
" -a, --append append the user to the supplemental GROUPS\n"
|
||||
" mentioned by the -G option without removing\n"
|
||||
" him/her from other groups\n"
|
||||
" the user from other groups\n"
|
||||
msgstr ""
|
||||
|
||||
msgid " -l, --login NEW_LOGIN new value of the login name\n"
|
||||
|
||||
4
po/sv.po
4
po/sv.po
@@ -2376,7 +2376,7 @@ msgstr " -G, --groups GRUPPER ny lista över ytterligare GRUPPER\n"
|
||||
msgid ""
|
||||
" -a, --append append the user to the supplemental GROUPS\n"
|
||||
" mentioned by the -G option without removing\n"
|
||||
" him/her from other groups\n"
|
||||
" the user from other groups\n"
|
||||
msgstr ""
|
||||
" -a, --append lägg till användaren till ytterligare "
|
||||
"GRUPPER\n"
|
||||
@@ -2911,7 +2911,7 @@ msgstr "%s: misslyckades med att hitta tcb-katalog för %s\n"
|
||||
#~ "GROUPS\n"
|
||||
#~ " mentioned by the -G option without "
|
||||
#~ "removing\n"
|
||||
#~ " him/her from other groups\n"
|
||||
#~ " the user from other groups\n"
|
||||
#~ " -h, --help display this help message and exit\n"
|
||||
#~ " -l, --login NEW_LOGIN new value of the login name\n"
|
||||
#~ " -L, --lock lock the user account\n"
|
||||
|
||||
4
po/tl.po
4
po/tl.po
@@ -2311,7 +2311,7 @@ msgstr ""
|
||||
msgid ""
|
||||
" -a, --append append the user to the supplemental GROUPS\n"
|
||||
" mentioned by the -G option without removing\n"
|
||||
" him/her from other groups\n"
|
||||
" the user from other groups\n"
|
||||
msgstr ""
|
||||
|
||||
msgid " -l, --login NEW_LOGIN new value of the login name\n"
|
||||
@@ -2872,7 +2872,7 @@ msgstr "%s: hindi tanggap na batayang directory '%s'\n"
|
||||
#~ "GROUPS\n"
|
||||
#~ " mentioned by the -G option without "
|
||||
#~ "removing\n"
|
||||
#~ " him/her from other groups\n"
|
||||
#~ " the user from other groups\n"
|
||||
#~ " -h, --help display this help message and exit\n"
|
||||
#~ " -l, --login NEW_LOGIN new value of the login name\n"
|
||||
#~ " -L, --lock lock the user account\n"
|
||||
|
||||
6
po/tr.po
6
po/tr.po
@@ -2466,7 +2466,7 @@ msgstr ""
|
||||
msgid ""
|
||||
" -a, --append append the user to the supplemental GROUPS\n"
|
||||
" mentioned by the -G option without removing\n"
|
||||
" him/her from other groups\n"
|
||||
" the user from other groups\n"
|
||||
msgstr ""
|
||||
|
||||
msgid " -l, --login NEW_LOGIN new value of the login name\n"
|
||||
@@ -3089,7 +3089,7 @@ msgstr "%s: geçersiz ana dizin '%s'\n"
|
||||
#~| "GROUPS\n"
|
||||
#~| " mentioned by the -G option without "
|
||||
#~| "removing\n"
|
||||
#~| " him/her from other groups\n"
|
||||
#~| " the user from other groups\n"
|
||||
#~| " -h, --help display this help message and exit\n"
|
||||
#~| " -l, --login NEW_LOGIN new value of the login name\n"
|
||||
#~| " -L, --lock lock the user account\n"
|
||||
@@ -3119,7 +3119,7 @@ msgstr "%s: geçersiz ana dizin '%s'\n"
|
||||
#~ "GROUPS\n"
|
||||
#~ " mentioned by the -G option without "
|
||||
#~ "removing\n"
|
||||
#~ " him/her from other groups\n"
|
||||
#~ " the user from other groups\n"
|
||||
#~ " -h, --help display this help message and exit\n"
|
||||
#~ " -l, --login NEW_LOGIN new value of the login name\n"
|
||||
#~ " -L, --lock lock the user account\n"
|
||||
|
||||
4
po/uk.po
4
po/uk.po
@@ -2301,7 +2301,7 @@ msgstr ""
|
||||
msgid ""
|
||||
" -a, --append append the user to the supplemental GROUPS\n"
|
||||
" mentioned by the -G option without removing\n"
|
||||
" him/her from other groups\n"
|
||||
" the user from other groups\n"
|
||||
msgstr ""
|
||||
|
||||
msgid " -l, --login NEW_LOGIN new value of the login name\n"
|
||||
@@ -2894,7 +2894,7 @@ msgstr "%s: невірна базова тека \"%s\"\n"
|
||||
#~ "GROUPS\n"
|
||||
#~ " mentioned by the -G option without "
|
||||
#~ "removing\n"
|
||||
#~ " him/her from other groups\n"
|
||||
#~ " the user from other groups\n"
|
||||
#~ " -h, --help display this help message and exit\n"
|
||||
#~ " -l, --login NEW_LOGIN new value of the login name\n"
|
||||
#~ " -L, --lock lock the user account\n"
|
||||
|
||||
2
po/vi.po
2
po/vi.po
@@ -2365,7 +2365,7 @@ msgstr " -G, --groups NHÓM danh sách mới chứa các nhóm ph
|
||||
msgid ""
|
||||
" -a, --append append the user to the supplemental GROUPS\n"
|
||||
" mentioned by the -G option without removing\n"
|
||||
" him/her from other groups\n"
|
||||
" the user from other groups\n"
|
||||
msgstr ""
|
||||
" -a, --append thêm người dùng vào các nhóm phụ\n"
|
||||
" đưa ra bởi tùy chọn “-G” mà không gỡ bỏ ta "
|
||||
|
||||
@@ -2244,7 +2244,7 @@ msgstr " -G, --groups GROUPS 新的附加组列表 GROUPS\n"
|
||||
msgid ""
|
||||
" -a, --append append the user to the supplemental GROUPS\n"
|
||||
" mentioned by the -G option without removing\n"
|
||||
" him/her from other groups\n"
|
||||
" the user from other groups\n"
|
||||
msgstr ""
|
||||
" -a, --append GROUP 将用户追加至上边 -G 中提到的附加组中,\n"
|
||||
" 并不从其它组中删除此用户\n"
|
||||
@@ -2735,7 +2735,7 @@ msgstr "%s:无法为“%s”找到 tcb 目录\n"
|
||||
#~ "GROUPS\n"
|
||||
#~ " mentioned by the -G option without "
|
||||
#~ "removing\n"
|
||||
#~ " him/her from other groups\n"
|
||||
#~ " the user from other groups\n"
|
||||
#~ " -h, --help display this help message and exit\n"
|
||||
#~ " -l, --login NEW_LOGIN new value of the login name\n"
|
||||
#~ " -L, --lock lock the user account\n"
|
||||
|
||||
@@ -2261,7 +2261,7 @@ msgstr ""
|
||||
msgid ""
|
||||
" -a, --append append the user to the supplemental GROUPS\n"
|
||||
" mentioned by the -G option without removing\n"
|
||||
" him/her from other groups\n"
|
||||
" the user from other groups\n"
|
||||
msgstr ""
|
||||
|
||||
msgid " -l, --login NEW_LOGIN new value of the login name\n"
|
||||
|
||||
@@ -53,23 +53,25 @@ usbin_PROGRAMS = \
|
||||
noinst_PROGRAMS = id sulogin
|
||||
|
||||
suidbins = su
|
||||
suidubins = chage chfn chsh expiry gpasswd newgrp passwd
|
||||
suidubins = chage chfn chsh expiry gpasswd newgrp
|
||||
if !WITH_TCB
|
||||
suidubins += passwd
|
||||
endif
|
||||
if ACCT_TOOLS_SETUID
|
||||
suidubins += chage chgpasswd chpasswd groupadd groupdel groupmod newusers useradd userdel usermod
|
||||
suidubins += chgpasswd chpasswd groupadd groupdel groupmod newusers useradd userdel usermod
|
||||
endif
|
||||
if ENABLE_SUBIDS
|
||||
suidubins += newgidmap newuidmap
|
||||
endif
|
||||
|
||||
if WITH_TCB
|
||||
suidubins -= passwd
|
||||
shadowsgidubins = passwd
|
||||
endif
|
||||
|
||||
LDADD = $(INTLLIBS) \
|
||||
$(LIBTCB) \
|
||||
$(top_builddir)/libmisc/libmisc.a \
|
||||
$(top_builddir)/lib/libshadow.la
|
||||
$(top_builddir)/lib/libshadow.la \
|
||||
$(LIBTCB)
|
||||
|
||||
if ACCT_TOOLS_SETUID
|
||||
LIBPAM_SUID = $(LIBPAM)
|
||||
|
||||
@@ -154,7 +154,7 @@ static /*@noreturn@*/void usage (int status)
|
||||
(void) fputs (_(" -l, --list show account aging information\n"), usageout);
|
||||
(void) fputs (_(" -m, --mindays MIN_DAYS set minimum number of days before password\n"
|
||||
" change to MIN_DAYS\n"), usageout);
|
||||
(void) fputs (_(" -M, --maxdays MAX_DAYS set maximim number of days before password\n"
|
||||
(void) fputs (_(" -M, --maxdays MAX_DAYS set maximum number of days before password\n"
|
||||
" change to MAX_DAYS\n"), usageout);
|
||||
(void) fputs (_(" -R, --root CHROOT_DIR directory to chroot into\n"), usageout);
|
||||
(void) fputs (_(" -W, --warndays WARN_DAYS set expiration warning days to WARN_DAYS\n"), usageout);
|
||||
@@ -362,7 +362,7 @@ static void list_fields (void)
|
||||
/*
|
||||
* Start with the easy numbers - the number of days before the
|
||||
* password can be changed, the number of days after which the
|
||||
* password must be chaged, the number of days before the password
|
||||
* password must be changed, the number of days before the password
|
||||
* expires that the user is told, and the number of days after the
|
||||
* password expires that the account becomes unusable.
|
||||
*/
|
||||
@@ -780,7 +780,7 @@ static void get_defaults (/*@null@*/const struct spwd *sp)
|
||||
* -E set account expiration date (*)
|
||||
* -I set password inactive after expiration (*)
|
||||
* -l show account aging information
|
||||
* -M set maximim number of days before password change (*)
|
||||
* -M set maximum number of days before password change (*)
|
||||
* -m set minimum number of days before password change (*)
|
||||
* -W set expiration warning days (*)
|
||||
*
|
||||
|
||||
@@ -464,7 +464,7 @@ int main (int argc, char **argv)
|
||||
|
||||
#ifdef USE_PAM
|
||||
if (use_pam){
|
||||
if (do_pam_passwd_non_interractive ("chpasswd", name, newpwd) != 0) {
|
||||
if (do_pam_passwd_non_interactive ("chpasswd", name, newpwd) != 0) {
|
||||
fprintf (stderr,
|
||||
_("%s: (line %d, user %s) password not changed\n"),
|
||||
Prog, line, name);
|
||||
|
||||
@@ -77,6 +77,8 @@ static gid_t group_id;
|
||||
static /*@null@*/char *group_passwd;
|
||||
static /*@null@*/char *empty_list = NULL;
|
||||
|
||||
static const char *prefix = "";
|
||||
|
||||
static bool oflg = false; /* permit non-unique group ID to be specified with -g */
|
||||
static bool gflg = false; /* ID value for the new group */
|
||||
static bool fflg = false; /* if group already exists, do nothing and exit(0) */
|
||||
@@ -123,6 +125,7 @@ static /*@noreturn@*/void usage (int status)
|
||||
(void) fputs (_(" -p, --password PASSWORD use this encrypted password for the new group\n"), usageout);
|
||||
(void) fputs (_(" -r, --system create a system account\n"), usageout);
|
||||
(void) fputs (_(" -R, --root CHROOT_DIR directory to chroot into\n"), usageout);
|
||||
(void) fputs (_(" -P, --prefix PREFIX_DIR directory prefix\n"), usageout);
|
||||
(void) fputs ("\n", usageout);
|
||||
exit (status);
|
||||
}
|
||||
@@ -386,10 +389,11 @@ static void process_flags (int argc, char **argv)
|
||||
{"password", required_argument, NULL, 'p'},
|
||||
{"system", no_argument, NULL, 'r'},
|
||||
{"root", required_argument, NULL, 'R'},
|
||||
{"prefix", required_argument, NULL, 'P'},
|
||||
{NULL, 0, NULL, '\0'}
|
||||
};
|
||||
|
||||
while ((c = getopt_long (argc, argv, "fg:hK:op:rR:",
|
||||
while ((c = getopt_long (argc, argv, "fg:hK:op:rR:P:",
|
||||
long_options, NULL)) != -1) {
|
||||
switch (c) {
|
||||
case 'f':
|
||||
@@ -446,6 +450,8 @@ static void process_flags (int argc, char **argv)
|
||||
break;
|
||||
case 'R': /* no-op, handled in process_root_flag () */
|
||||
break;
|
||||
case 'P': /* no-op, handled in process_prefix_flag () */
|
||||
break;
|
||||
default:
|
||||
usage (E_USAGE);
|
||||
}
|
||||
@@ -480,7 +486,7 @@ static void check_flags (void)
|
||||
* Check if the group already exist.
|
||||
*/
|
||||
/* local, no need for xgetgrnam */
|
||||
if (getgrnam (group_name) != NULL) {
|
||||
if (prefix_getgrnam (group_name) != NULL) {
|
||||
/* The group already exist */
|
||||
if (fflg) {
|
||||
/* OK, no need to do anything */
|
||||
@@ -492,7 +498,7 @@ static void check_flags (void)
|
||||
exit (E_NAME_IN_USE);
|
||||
}
|
||||
|
||||
if (gflg && (getgrgid (group_id) != NULL)) {
|
||||
if (gflg && (prefix_getgrgid (group_id) != NULL)) {
|
||||
/* A GID was specified, and a group already exist with that GID
|
||||
* - either we will use this GID anyway (-o)
|
||||
* - either we ignore the specified GID and
|
||||
@@ -578,6 +584,7 @@ int main (int argc, char **argv)
|
||||
(void) textdomain (PACKAGE);
|
||||
|
||||
process_root_flag ("-R", argc, argv);
|
||||
prefix = process_prefix_flag ("-P", argc, argv);
|
||||
|
||||
OPENLOG ("groupadd");
|
||||
#ifdef WITH_AUDIT
|
||||
|
||||
@@ -62,6 +62,8 @@ static char *group_name;
|
||||
static gid_t group_id = -1;
|
||||
static bool check_group_busy = true;
|
||||
|
||||
static const char* prefix = "";
|
||||
|
||||
#ifdef SHADOWGRP
|
||||
static bool is_shadow_grp;
|
||||
#endif
|
||||
@@ -97,6 +99,7 @@ static /*@noreturn@*/void usage (int status)
|
||||
Prog);
|
||||
(void) fputs (_(" -h, --help display this help message and exit\n"), usageout);
|
||||
(void) fputs (_(" -R, --root CHROOT_DIR directory to chroot into\n"), usageout);
|
||||
(void) fputs (_(" -P, --prefix PREFIX_DIR prefix directory where are located the /etc/* files\n"), usageout);
|
||||
(void) fputs (_(" -f, --force delete group even if it is the primary group of a user\n"), usageout);
|
||||
(void) fputs ("\n", usageout);
|
||||
exit (status);
|
||||
@@ -283,11 +286,11 @@ static void group_busy (gid_t gid)
|
||||
* Nice slow linear search.
|
||||
*/
|
||||
|
||||
setpwent ();
|
||||
prefix_setpwent ();
|
||||
|
||||
while ( ((pwd = getpwent ()) != NULL) && (pwd->pw_gid != gid) );
|
||||
while ( ((pwd = prefix_getpwent ()) != NULL) && (pwd->pw_gid != gid) );
|
||||
|
||||
endpwent ();
|
||||
prefix_endpwent ();
|
||||
|
||||
/*
|
||||
* If pwd isn't NULL, it stopped because the gid's matched.
|
||||
@@ -320,10 +323,11 @@ static void process_flags (int argc, char **argv)
|
||||
static struct option long_options[] = {
|
||||
{"help", no_argument, NULL, 'h'},
|
||||
{"root", required_argument, NULL, 'R'},
|
||||
{"prefix", required_argument, NULL, 'P'},
|
||||
{NULL, 0, NULL, '\0'}
|
||||
};
|
||||
|
||||
while ((c = getopt_long (argc, argv, "hfR:",
|
||||
while ((c = getopt_long (argc, argv, "hfR:P:",
|
||||
long_options, NULL)) != -1) {
|
||||
switch (c) {
|
||||
case 'h':
|
||||
@@ -331,6 +335,8 @@ static void process_flags (int argc, char **argv)
|
||||
/*@notreached@*/break;
|
||||
case 'R': /* no-op, handled in process_root_flag () */
|
||||
break;
|
||||
case 'P': /* no-op, handled in process_prefix_flag () */
|
||||
break;
|
||||
case 'f':
|
||||
check_group_busy = false;
|
||||
break;
|
||||
@@ -374,6 +380,7 @@ int main (int argc, char **argv)
|
||||
(void) textdomain (PACKAGE);
|
||||
|
||||
process_root_flag ("-R", argc, argv);
|
||||
prefix = process_prefix_flag ("-P", argc, argv);
|
||||
|
||||
OPENLOG ("groupdel");
|
||||
#ifdef WITH_AUDIT
|
||||
@@ -434,7 +441,7 @@ int main (int argc, char **argv)
|
||||
/*
|
||||
* Start with a quick check to see if the group exists.
|
||||
*/
|
||||
grp = getgrnam (group_name); /* local, no need for xgetgrnam */
|
||||
grp = prefix_getgrnam (group_name); /* local, no need for xgetgrnam */
|
||||
if (NULL == grp) {
|
||||
fprintf (stderr,
|
||||
_("%s: group '%s' does not exist\n"),
|
||||
|
||||
@@ -278,7 +278,7 @@ static void remove_user (const char *user,
|
||||
}
|
||||
|
||||
/*
|
||||
* purge_members - Rmeove every members of the specified group
|
||||
* purge_members - Remove every members of the specified group
|
||||
*/
|
||||
static void purge_members (const struct group *grp)
|
||||
{
|
||||
|
||||
@@ -66,6 +66,11 @@
|
||||
#define E_NOTFOUND 6 /* specified group doesn't exist */
|
||||
#define E_NAME_IN_USE 9 /* group name already in use */
|
||||
#define E_GRP_UPDATE 10 /* can't update group file */
|
||||
#define E_CLEANUP_SERVICE 11 /* can't setup cleanup service */
|
||||
#define E_PAM_USERNAME 12 /* can't determine your username for use with pam */
|
||||
#define E_PAM_ERROR 13 /* pam returned an error, see Syslog facility id groupmod */
|
||||
|
||||
|
||||
/*
|
||||
* Global variables
|
||||
*/
|
||||
@@ -80,6 +85,8 @@ static char *group_passwd;
|
||||
static gid_t group_id;
|
||||
static gid_t group_newid;
|
||||
|
||||
static const char* prefix = "";
|
||||
|
||||
static struct cleanup_info_mod info_passwd;
|
||||
static struct cleanup_info_mod info_group;
|
||||
#ifdef SHADOWGRP
|
||||
@@ -128,6 +135,7 @@ static void usage (int status)
|
||||
(void) fputs (_(" -p, --password PASSWORD change the password to this (encrypted)\n"
|
||||
" PASSWORD\n"), usageout);
|
||||
(void) fputs (_(" -R, --root CHROOT_DIR directory to chroot into\n"), usageout);
|
||||
(void) fputs (_(" -P, --prefix PREFIX_DIR prefix directory where are located the /etc/* files\n"), usageout);
|
||||
(void) fputs ("\n", usageout);
|
||||
exit (status);
|
||||
}
|
||||
@@ -340,7 +348,7 @@ static void check_new_name (void)
|
||||
* If the entry is found, too bad.
|
||||
*/
|
||||
/* local, no need for xgetgrnam */
|
||||
if (getgrnam (group_newname) != NULL) {
|
||||
if (prefix_getgrnam (group_newname) != NULL) {
|
||||
fprintf (stderr,
|
||||
_("%s: group '%s' already exists\n"),
|
||||
Prog, group_newname);
|
||||
@@ -376,9 +384,10 @@ static void process_flags (int argc, char **argv)
|
||||
{"non-unique", no_argument, NULL, 'o'},
|
||||
{"password", required_argument, NULL, 'p'},
|
||||
{"root", required_argument, NULL, 'R'},
|
||||
{"prefix", required_argument, NULL, 'P'},
|
||||
{NULL, 0, NULL, '\0'}
|
||||
};
|
||||
while ((c = getopt_long (argc, argv, "g:hn:op:R:",
|
||||
while ((c = getopt_long (argc, argv, "g:hn:op:R:P:",
|
||||
long_options, NULL)) != -1) {
|
||||
switch (c) {
|
||||
case 'g':
|
||||
@@ -407,6 +416,8 @@ static void process_flags (int argc, char **argv)
|
||||
break;
|
||||
case 'R': /* no-op, handled in process_root_flag () */
|
||||
break;
|
||||
case 'P': /* no-op, handled in process_prefix_flag () */
|
||||
break;
|
||||
default:
|
||||
usage (E_USAGE);
|
||||
}
|
||||
@@ -697,8 +708,8 @@ void update_primary_groups (gid_t ogid, gid_t ngid)
|
||||
{
|
||||
struct passwd *pwd;
|
||||
|
||||
setpwent ();
|
||||
while ((pwd = getpwent ()) != NULL) {
|
||||
prefix_setpwent ();
|
||||
while ((pwd = prefix_getpwent ()) != NULL) {
|
||||
if (pwd->pw_gid == ogid) {
|
||||
const struct passwd *lpwd;
|
||||
struct passwd npwd;
|
||||
@@ -720,7 +731,7 @@ void update_primary_groups (gid_t ogid, gid_t ngid)
|
||||
}
|
||||
}
|
||||
}
|
||||
endpwent ();
|
||||
prefix_endpwent ();
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -746,6 +757,7 @@ int main (int argc, char **argv)
|
||||
(void) textdomain (PACKAGE);
|
||||
|
||||
process_root_flag ("-R", argc, argv);
|
||||
prefix = process_prefix_flag ("-P", argc, argv);
|
||||
|
||||
OPENLOG ("groupmod");
|
||||
#ifdef WITH_AUDIT
|
||||
@@ -756,7 +768,7 @@ int main (int argc, char **argv)
|
||||
fprintf (stderr,
|
||||
_("%s: Cannot setup cleanup service.\n"),
|
||||
Prog);
|
||||
exit (1);
|
||||
exit (E_CLEANUP_SERVICE);
|
||||
}
|
||||
|
||||
process_flags (argc, argv);
|
||||
@@ -770,7 +782,7 @@ int main (int argc, char **argv)
|
||||
fprintf (stderr,
|
||||
_("%s: Cannot determine your user name.\n"),
|
||||
Prog);
|
||||
exit (1);
|
||||
exit (E_PAM_USERNAME);
|
||||
}
|
||||
|
||||
retval = pam_start ("groupmod", pampw->pw_name, &conv, &pamh);
|
||||
@@ -791,7 +803,7 @@ int main (int argc, char **argv)
|
||||
if (NULL != pamh) {
|
||||
(void) pam_end (pamh, retval);
|
||||
}
|
||||
exit (1);
|
||||
exit (E_PAM_ERROR);
|
||||
}
|
||||
(void) pam_end (pamh, retval);
|
||||
#endif /* USE_PAM */
|
||||
@@ -805,7 +817,7 @@ int main (int argc, char **argv)
|
||||
/*
|
||||
* Start with a quick check to see if the group exists.
|
||||
*/
|
||||
grp = getgrnam (group_name); /* local, no need for xgetgrnam */
|
||||
grp = prefix_getgrnam (group_name); /* local, no need for xgetgrnam */
|
||||
if (NULL == grp) {
|
||||
fprintf (stderr,
|
||||
_("%s: group '%s' does not exist\n"),
|
||||
|
||||
@@ -198,6 +198,7 @@ int main (int argc, char **argv)
|
||||
Prog, sg->sg_name, sgr_dbname ());
|
||||
fail_exit (3);
|
||||
}
|
||||
(void) sgr_rewind ();
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@@ -1163,7 +1163,7 @@ int main (int argc, char **argv)
|
||||
* entries.
|
||||
* Use the x variants because we need to keep the
|
||||
* entry for a long time, and there might be other
|
||||
* getxxyy in between.
|
||||
* getxxyyy in between.
|
||||
*/
|
||||
pw_free (pwd);
|
||||
pwd = xgetpwnam (username);
|
||||
|
||||
@@ -46,32 +46,37 @@
|
||||
*/
|
||||
const char *Prog;
|
||||
|
||||
static bool verify_range(struct passwd *pw, struct map_range *range)
|
||||
|
||||
static bool verify_range(struct passwd *pw, struct map_range *range, bool *allow_setgroups)
|
||||
{
|
||||
/* An empty range is invalid */
|
||||
if (range->count == 0)
|
||||
return false;
|
||||
|
||||
/* Test /etc/subgid */
|
||||
if (have_sub_gids(pw->pw_name, range->lower, range->count))
|
||||
/* Test /etc/subgid. If the mapping is valid then we allow setgroups. */
|
||||
if (have_sub_gids(pw->pw_name, range->lower, range->count)) {
|
||||
*allow_setgroups = true;
|
||||
return true;
|
||||
}
|
||||
|
||||
/* Allow a process to map its own gid */
|
||||
if ((range->count == 1) && (pw->pw_gid == range->lower))
|
||||
/* Allow a process to map its own gid. */
|
||||
if ((range->count == 1) && (pw->pw_gid == range->lower)) {
|
||||
/* noop -- if setgroups is enabled already we won't disable it. */
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
static void verify_ranges(struct passwd *pw, int ranges,
|
||||
struct map_range *mappings)
|
||||
struct map_range *mappings, bool *allow_setgroups)
|
||||
{
|
||||
struct map_range *mapping;
|
||||
int idx;
|
||||
|
||||
mapping = mappings;
|
||||
for (idx = 0; idx < ranges; idx++, mapping++) {
|
||||
if (!verify_range(pw, mapping)) {
|
||||
if (!verify_range(pw, mapping, allow_setgroups)) {
|
||||
fprintf(stderr, _( "%s: gid range [%lu-%lu) -> [%lu-%lu) not allowed\n"),
|
||||
Prog,
|
||||
mapping->upper,
|
||||
@@ -89,6 +94,70 @@ static void usage(void)
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
void write_setgroups(int proc_dir_fd, bool allow_setgroups)
|
||||
{
|
||||
int setgroups_fd;
|
||||
char *policy, policy_buffer[4096];
|
||||
|
||||
/*
|
||||
* Default is "deny", and any "allow" will out-rank a "deny". We don't
|
||||
* forcefully write an "allow" here because the process we are writing
|
||||
* mappings for may have already set themselves to "deny" (and "allow"
|
||||
* is the default anyway). So allow_setgroups == true is a noop.
|
||||
*/
|
||||
policy = "deny\n";
|
||||
if (allow_setgroups)
|
||||
return;
|
||||
|
||||
setgroups_fd = openat(proc_dir_fd, "setgroups", O_RDWR|O_CLOEXEC);
|
||||
if (setgroups_fd < 0) {
|
||||
/*
|
||||
* If it's an ENOENT then we are on too old a kernel for the setgroups
|
||||
* code to exist. Emit a warning and bail on this.
|
||||
*/
|
||||
if (ENOENT == errno) {
|
||||
fprintf(stderr, _("%s: kernel doesn't support setgroups restrictions\n"), Prog);
|
||||
goto out;
|
||||
}
|
||||
fprintf(stderr, _("%s: couldn't open process setgroups: %s\n"),
|
||||
Prog,
|
||||
strerror(errno));
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
/*
|
||||
* Check whether the policy is already what we want. /proc/self/setgroups
|
||||
* is write-once, so attempting to write after it's already written to will
|
||||
* fail.
|
||||
*/
|
||||
if (read(setgroups_fd, policy_buffer, sizeof(policy_buffer)) < 0) {
|
||||
fprintf(stderr, _("%s: failed to read setgroups: %s\n"),
|
||||
Prog,
|
||||
strerror(errno));
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
if (!strncmp(policy_buffer, policy, strlen(policy)))
|
||||
goto out;
|
||||
|
||||
/* Write the policy. */
|
||||
if (lseek(setgroups_fd, 0, SEEK_SET) < 0) {
|
||||
fprintf(stderr, _("%s: failed to seek setgroups: %s\n"),
|
||||
Prog,
|
||||
strerror(errno));
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
if (dprintf(setgroups_fd, "%s", policy) < 0) {
|
||||
fprintf(stderr, _("%s: failed to setgroups %s policy: %s\n"),
|
||||
Prog,
|
||||
policy,
|
||||
strerror(errno));
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
out:
|
||||
close(setgroups_fd);
|
||||
}
|
||||
|
||||
/*
|
||||
* newgidmap - Set the gid_map for the specified process
|
||||
*/
|
||||
@@ -103,6 +172,7 @@ int main(int argc, char **argv)
|
||||
struct stat st;
|
||||
struct passwd *pw;
|
||||
int written;
|
||||
bool allow_setgroups = false;
|
||||
|
||||
Prog = Basename (argv[0]);
|
||||
|
||||
@@ -145,7 +215,7 @@ int main(int argc, char **argv)
|
||||
(unsigned long) getuid ()));
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
|
||||
|
||||
/* Get the effective uid and effective gid of the target process */
|
||||
if (fstat(proc_dir_fd, &st) < 0) {
|
||||
fprintf(stderr, _("%s: Could not stat directory for target %u\n"),
|
||||
@@ -177,8 +247,9 @@ int main(int argc, char **argv)
|
||||
if (!mappings)
|
||||
usage();
|
||||
|
||||
verify_ranges(pw, ranges, mappings);
|
||||
verify_ranges(pw, ranges, mappings, &allow_setgroups);
|
||||
|
||||
write_setgroups(proc_dir_fd, allow_setgroups);
|
||||
write_mapping(proc_dir_fd, ranges, mappings, "gid_map");
|
||||
sub_gid_close();
|
||||
|
||||
|
||||
77
src/newgrp.c
77
src/newgrp.c
@@ -83,16 +83,30 @@ static void usage (void)
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* find_matching_group - search all groups of a given group id for
|
||||
* membership of a given username
|
||||
*/
|
||||
static /*@null@*/struct group *find_matching_group (const char *name, gid_t gid)
|
||||
static bool ingroup(const char *name, struct group *gr)
|
||||
{
|
||||
struct group *gr;
|
||||
char **look;
|
||||
bool notfound = true;
|
||||
|
||||
look = gr->gr_mem;
|
||||
while (*look && notfound)
|
||||
notfound = strcmp (*look++, name);
|
||||
|
||||
return !notfound;
|
||||
}
|
||||
|
||||
/*
|
||||
* find_matching_group - search all groups of a gr's group id for
|
||||
* membership of a given username
|
||||
* but check gr itself first
|
||||
*/
|
||||
static /*@null@*/struct group *find_matching_group (const char *name, struct group *gr)
|
||||
{
|
||||
gid_t gid = gr->gr_gid;
|
||||
|
||||
if (ingroup(name, gr))
|
||||
return gr;
|
||||
|
||||
setgrent ();
|
||||
while ((gr = getgrent ()) != NULL) {
|
||||
if (gr->gr_gid != gid) {
|
||||
@@ -103,14 +117,8 @@ static /*@null@*/struct group *find_matching_group (const char *name, gid_t gid)
|
||||
* A group with matching GID was found.
|
||||
* Test for membership of 'name'.
|
||||
*/
|
||||
look = gr->gr_mem;
|
||||
while ((NULL != *look) && notfound) {
|
||||
notfound = (strcmp (*look, name) != 0);
|
||||
look++;
|
||||
}
|
||||
if (!notfound) {
|
||||
if (ingroup(name, gr))
|
||||
break;
|
||||
}
|
||||
}
|
||||
endgrent ();
|
||||
return gr;
|
||||
@@ -248,7 +256,7 @@ failure:
|
||||
/*
|
||||
* syslog_sg - log the change of group to syslog
|
||||
*
|
||||
* The loggout will also be logged when the user will quit the
|
||||
* The logout will also be logged when the user will quit the
|
||||
* sg/newgrp session.
|
||||
*/
|
||||
static void syslog_sg (const char *name, const char *group)
|
||||
@@ -387,6 +395,7 @@ int main (int argc, char **argv)
|
||||
{
|
||||
bool initflag = false;
|
||||
int i;
|
||||
bool is_member = false;
|
||||
bool cflag = false;
|
||||
int err = 0;
|
||||
gid_t gid;
|
||||
@@ -625,22 +634,36 @@ int main (int argc, char **argv)
|
||||
goto failure;
|
||||
}
|
||||
|
||||
#ifdef HAVE_SETGROUPS
|
||||
/* when using pam_group, she will not be listed in the groups
|
||||
* database. However getgroups() will return the group. So
|
||||
* if she is listed there already it is ok to grant membership.
|
||||
*/
|
||||
for (i = 0; i < ngroups; i++) {
|
||||
if (grp->gr_gid == grouplist[i]) {
|
||||
is_member = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
#endif /* HAVE_SETGROUPS */
|
||||
/*
|
||||
* For splitted groups (due to limitations of NIS), check all
|
||||
* groups of the same GID like the requested group for
|
||||
* membership of the current user.
|
||||
*/
|
||||
grp = find_matching_group (name, grp->gr_gid);
|
||||
if (NULL == grp) {
|
||||
/*
|
||||
* No matching group found. As we already know that
|
||||
* the group exists, this happens only in the case
|
||||
* of a requested group where the user is not member.
|
||||
*
|
||||
* Re-read the group entry for further processing.
|
||||
*/
|
||||
grp = xgetgrnam (group);
|
||||
assert (NULL != grp);
|
||||
if (!is_member) {
|
||||
grp = find_matching_group (name, grp);
|
||||
if (NULL == grp) {
|
||||
/*
|
||||
* No matching group found. As we already know that
|
||||
* the group exists, this happens only in the case
|
||||
* of a requested group where the user is not member.
|
||||
*
|
||||
* Re-read the group entry for further processing.
|
||||
*/
|
||||
grp = xgetgrnam (group);
|
||||
assert (NULL != grp);
|
||||
}
|
||||
}
|
||||
#ifdef SHADOWGRP
|
||||
sgrp = getsgnam (group);
|
||||
@@ -653,7 +676,9 @@ int main (int argc, char **argv)
|
||||
/*
|
||||
* Check if the user is allowed to access this group.
|
||||
*/
|
||||
check_perms (grp, pwd, group);
|
||||
if (!is_member) {
|
||||
check_perms (grp, pwd, group);
|
||||
}
|
||||
|
||||
/*
|
||||
* all successful validations pass through this point. The group id
|
||||
|
||||
@@ -290,7 +290,8 @@ static int add_group (const char *name, const char *gid, gid_t *ngid, uid_t uid)
|
||||
fprintf (stderr,
|
||||
_("%s: invalid group name '%s'\n"),
|
||||
Prog, grent.gr_name);
|
||||
free (grent.gr_name);
|
||||
if (grent.gr_name)
|
||||
free (grent.gr_name);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@@ -1237,7 +1238,7 @@ int main (int argc, char **argv)
|
||||
unsigned int i;
|
||||
/* Now update the passwords using PAM */
|
||||
for (i = 0; i < nusers; i++) {
|
||||
if (do_pam_passwd_non_interractive ("newusers", usernames[i], passwords[i]) != 0) {
|
||||
if (do_pam_passwd_non_interactive ("newusers", usernames[i], passwords[i]) != 0) {
|
||||
fprintf (stderr,
|
||||
_("%s: (line %d, user %s) password not changed\n"),
|
||||
Prog, lines[i], usernames[i]);
|
||||
|
||||
@@ -281,7 +281,7 @@ static void open_files (void)
|
||||
* Open the files. Use O_RDONLY if we are in read_only mode, O_RDWR
|
||||
* otherwise.
|
||||
*/
|
||||
if (pw_open (read_only ? O_RDONLY : O_CREAT | O_RDWR) == 0) {
|
||||
if (pw_open (read_only ? O_RDONLY : O_RDWR) == 0) {
|
||||
fprintf (stderr, _("%s: cannot open %s\n"),
|
||||
Prog, pw_dbname ());
|
||||
if (use_system_pw_file) {
|
||||
@@ -290,7 +290,7 @@ static void open_files (void)
|
||||
fail_exit (E_CANTOPEN);
|
||||
}
|
||||
if (is_shadow && !use_tcb) {
|
||||
if (spw_open (read_only ? O_RDONLY : O_CREAT | O_RDWR) == 0) {
|
||||
if (spw_open (read_only ? O_RDONLY : O_RDWR) == 0) {
|
||||
fprintf (stderr, _("%s: cannot open %s\n"),
|
||||
Prog, spw_dbname ());
|
||||
if (use_system_spw_file) {
|
||||
@@ -566,7 +566,7 @@ static void check_pw_file (int *errors, bool *changed)
|
||||
continue;
|
||||
}
|
||||
spw_locked = true;
|
||||
if (spw_open (read_only ? O_RDONLY : O_CREAT | O_RDWR) == 0) {
|
||||
if (spw_open (read_only ? O_RDONLY : O_RDWR) == 0) {
|
||||
fprintf (stderr,
|
||||
_("%s: cannot open %s\n"),
|
||||
Prog, spw_dbname ());
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user