Compare commits

...

303 Commits
4.3.0 ... 4.7

Author SHA1 Message Date
Serge Hallyn
2bb99b8fe6 release 4.7
Signed-off-by: Serge Hallyn <shallyn@cisco.com>
2019-06-13 11:38:49 -05:00
Serge Hallyn
d2808b1b51 github pages takes an index.html
Signed-off-by: Serge Hallyn <serge@hallyn.com>
2019-06-09 00:02:45 -05:00
Serge Hallyn
b679cdbd3e add README.md for the homepage
Signed-off-by: Serge Hallyn <serge@hallyn.com>
2019-06-08 23:51:32 -05:00
Christian Brauner
a5f034f272 Merge pull request #161 from tabraham/master
lib/spawn.c run_command: don't loop forever if waitpid() is returning ECHILD
2019-06-04 13:31:08 +02:00
Thomas Abraham
82fa6eccf9 lib/spawn.c run_command: don't loop forever if waitpid() is returning ECHILD
If SIGCHILD is being ignored, waitpid() will forever error with ECHILD and
this loop with never end, so don't loop if it errors with ECHILD.
2019-05-06 14:26:14 -04:00
Thomas Abraham
8d39357c84 Revert "lib/spawn.c run_command: don't loop forever if waitpid() is returning ECHILD"
This reverts commit 1697c192ac.
2019-05-06 14:23:58 -04:00
Serge Hallyn
aff40d8515 libmisc/btrfs: no sense trying to calculate 'btrfs' string
Signed-off-by: Serge Hallyn <shallyn@cisco.com>
2019-05-03 22:40:14 -07:00
Serge Hallyn
51cfc1f89a libmisc/btrfs: find btrfs command
Ubuntu for instance keeps it in /bin, not /sbin.  So look
for it in our usual places.

Signed-off-by: Serge Hallyn <shallyn@cisco.com>
2019-05-03 22:39:53 -07:00
Serge Hallyn
816220f90c autoconf: fix cut-paste errors in btrfs detection
Signed-off-by: Serge Hallyn <shallyn@cisco.com>
2019-05-03 22:39:47 -07:00
Adam Majer
50b23584d7 Add autotools support for BtrFS option
Feature is enabled by default, if headers are available. It can be
turned off explictly.
2019-05-03 22:38:23 -07:00
Adam Majer
c1d36a8acb Add support for btrfs subvolumes for user homes
new switch added to useradd command, --btrfs-subvolume-home. When
specified *and* the filesystem is detected as btrfs, it will create a
subvolume for user's home instead of a plain directory. This is done via
`btrfs subvolume` command.  Specifying the new switch while trying to
create home on non-btrfs will result in an error.

userdel -r will handle and remove this subvolume transparently via
`btrfs subvolume` command. Previosuly this failed as you can't rmdir a
subvolume.

usermod, when moving user's home across devices, will detect if the home
is a subvolume and issue an error messages instead of copying it. Moving
user's home (as subvolume) on same btrfs works transparently.
2019-05-03 22:38:23 -07:00
Christian Brauner
caefe9e8de Merge pull request #164 from t8m/use-lckpwdf
Use lckpwdf() again if prefix is not set and fix a possible DoS in locking
2019-05-03 10:43:41 +02:00
Tomas Mraz
64d7688acb Do not fail locking if there is a stale lockfile.
As the lockfiles have PID in the name, there can be no conflict
in the name with other process, so there is no point in using
O_EXCL and it only can fail if there is a stale lockfile from
previous execution that crashed for some reason.
2019-05-02 14:39:01 +02:00
Tomas Mraz
408b8a5482 Use the lckpwdf() again if prefix is not set
The implementation of prefix option dropped the use of lckpwdf().
However that is incorrect as other tools manipulating the shadow passwords
such as PAM use lckpwdf() and do not know anything about the
shadow's own locking mechanism.

This reverts the implementation to use lckpwdf() if prefix option
is not used.
2019-05-02 14:33:06 +02:00
Christian Brauner
ce2941ca0d Merge pull request #162 from jtojnar/check-correct-docbook
build: Check correct DocBook version
2019-04-30 20:39:22 +02:00
Jan Tojnar
47797ca665 build: Check correct DocBook version
The documentation uses DocBook 4.5 DOCTYPE but the configure script
checked for 4.1.2.
2019-04-30 20:35:07 +02:00
Thomas Abraham
1697c192ac lib/spawn.c run_command: don't loop forever if waitpid() is returning ECHILD
If SIGCHILD is being ignored, waitpid() will forever error with ECHILD and
this loop with never end, so don't loop if it erros with ECHILD.
2019-04-25 14:56:22 -04:00
Serge Hallyn
5837240451 usermod: print "no changes" to stdout, not stderr
Closes #113

Signed-off-by: Serge Hallyn <serge@hallyn.com>
2019-04-21 17:28:12 -05:00
Serge Hallyn
2c8171f8c8 Merge pull request #146 from lamby/reproducible-shadow-files
Make the sp_lstchg shadow field reproducible (re. #71)
2019-04-21 17:13:58 -05:00
Serge Hallyn
fbb59823c5 Merge pull request #143 from t8m/fedora
usermod: Guard against unsafe change of ownership of home contents
2019-04-21 16:56:36 -05:00
Serge Hallyn
fe87a1ad96 Merge pull request #158 from nathanruiz/master
Fix chpasswd long line handling
2019-04-21 16:50:07 -05:00
Serge Hallyn
38e3e35c72 Merge pull request #156 from cvuillemez/no_flush_in_read_only
Do not flush nscd and sssd cache in read-only mode
2019-04-15 00:17:32 -05:00
Nathan Ruiz
a8f7132113 Fix chpasswd long line handling 2019-04-10 07:56:59 +10:00
Chris Lamb
3d921155e0 gettime: Use secure_getenv over getenv. 2019-03-31 16:00:01 +01:00
Chris Lamb
fe34a2a0e4 Make the sp_lstchg shadow field reproducible (re. #71)
From <https://github.com/shadow-maint/shadow/pull/71>:

```
The third field in the /etc/shadow file (sp_lstchg) contains the date of
the last password change expressed as the number of days since Jan 1, 1970.
As this is a relative time, creating a user today will result in:

username:17238:0:99999:7:::
whilst creating the same user tomorrow will result in:

username:17239:0:99999:7:::
This has an impact for the Reproducible Builds[0] project where we aim to
be independent of as many elements the build environment as possible,
including the current date.

This patch changes the behaviour to use the SOURCE_DATE_EPOCH[1]
environment variable (instead of Jan 1, 1970) if valid.
```

This updated PR adds some missing calls to gettime (). This was originally
filed by Johannes Schauer in Debian as #917773 [2].

[0] https://reproducible-builds.org/
[1] https://reproducible-builds.org/specs/source-date-epoch/
[2] https://bugs.debian.org/917773
2019-03-31 16:00:01 +01:00
Christian Brauner
e24deea4c9 Merge pull request #157 from t8m/close-crash
Do not crash in commonio_close if database FILE not opened.
2019-03-25 12:56:55 -07:00
Tomas Mraz
d6276066dd Do not crash in commonio_close if database FILE not opened.
The db->fp can be NULL if commonio_unlock() is called when the
shadow file is opened but did not exist before.
2019-03-25 14:51:26 +01:00
Serge Hallyn
d2e1e9ce85 Add Christian to maintainers list
Signed-off-by: Serge Hallyn <shallyn@cisco.com>
2019-03-17 21:11:05 -05:00
Serge Hallyn
e61db2c618 README: Update the homepage link
and remove ftp.  Maybe i should run an ftp server for releases...

Signed-off-by: Serge Hallyn <shallyn@cisco.com>
2019-03-17 11:48:05 -05:00
Serge Hallyn
c40c49536e README: Add Eric to contributors list
subids were not a small amount of work.

Signed-off-by: Serge Hallyn <shallyn@cisco.com>
2019-03-17 11:39:24 -05:00
Charlie Vuillemez
dd2033c40c Do not flush nscd and sssd cache in read-only mode
Fix #155

signed-off-by: Charlie Vuillemez <cvuillemez@users.noreply.github.com>
2019-02-27 17:40:04 +01:00
Serge Hallyn
d66a1fe069 Merge pull request #153 from AlbanVidal/man-po-fr
French man translation update
2019-02-19 00:49:40 -06:00
Alban VIDAL
beb75c6fd6 French man translation update
- translated by Jean-Philippe MENGUAL
- proofread by the debian-l10n-french mailing list contributors

Signed-off-by: Alban VIDAL <alban.vidal@zordhak.fr>
2019-02-11 07:02:52 +01:00
Christian Brauner
c0c2b99164 Merge pull request #151 from t8m/uid-count-default
Fix the default mentioned in man page for SUB_UID/GID_COUNT variables.
2019-02-01 09:11:27 +01:00
Tomas Mraz
ebad423023 Fix the default mentioned in man page for SUB_UID/GID_COUNT variables. 2019-01-31 13:30:59 +01:00
Serge Hallyn
c5898d9f02 Merge pull request #148 from AlbanVidal/master
Sync po files from template "shadow.pot" file
2019-01-26 22:58:53 -06:00
Alban VIDAL
ee87cda65d Sync po files from pot shadow.pot file
Signed-off-by: Alban VIDAL <alban.vidal@zordhak.fr>
2019-01-19 13:32:42 +01:00
Tomas Mraz
5b41b7d1b1 usermod: Guard against unsafe change of ownership of home directory content
In case the home directory is not a real home directory
(owned by the user) but things like / or /var or similar,
it is unsafe to change ownership of home directory content.

The test checks whether the home directory is owned by the
user him/herself, if not no ownership modification of contents
is performed.
2018-12-18 16:32:13 +01:00
Tomas Mraz
4633164857 login.defs: Add LASTLOG_UID_MAX variable to limit lastlog to small uids.
As the large uids are usually provided by remote user identity and
authentication service, which also provide user login tracking,
there is no need to create a huge sparse file for them on every local
machine.

fixup! login.defs: Add LASTLOG_UID_MAX variable to limit lastlog to small uids.
2018-12-10 13:25:56 -06:00
Giuseppe Scrivano
59c2dabb26 idmap: always seteuid to the owner of the namespace
simplify the condition for setting the euid of the process.  Now it is
always set when we are running as root, the issue was introduced with
the commit 52c081b02c

Changelog: 2018-11-24 - seh - enforce that euid only gets set to ruid if
   it currently == 0 (i.e. really was setuid-*root*).

Closes: https://github.com/genuinetools/img/issues/191

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
Signed-off-by: Serge Hallyn <shallyn@cisco.com>
2018-11-24 17:30:46 -06:00
Serge Hallyn
42324e5017 Merge pull request #138 from brauner/2018-10-27/setuid_fscaps
new{g,u}idmap: align setuid and fscaps behavior
2018-10-27 19:00:23 -05:00
Christian Brauner
52c081b02c new{g,u}idmap: align setuid and fscaps behavior
Commit 1ecca8439d ("new[ug]idmap: not require CAP_SYS_ADMIN in the parent userNS")
does contain a wrong commit message, is lacking an explanation of the
issue, misses some simplifications and hardening features. This commit
tries to rectify this.

In (crazy) environment where all capabilities are dropped from the
capability bounding set apart from CAP_SET{G,U}ID setuid- and
fscaps-based new{g,u}idmap binaries behave differently when writing
complex mappings for an unprivileged user:

1. newuidmap is setuid

unshare -U sleep infinity &
newuidmap $? 0 100000 65536

First file_ns_capable(file, ns, CAP_SYS_ADMIN) is hit. This calls into
cap_capable() and hits the loop

for (;;) {
        /* Do we have the necessary capabilities? */
        if (ns == cred->user_ns)
                return cap_raised(cred->cap_effective, cap) ? 0 : -EPERM;

        /*
         * If we're already at a lower level than we're looking for,
         * we're done searching.
         */
        if (ns->level <= cred->user_ns->level)
                return -EPERM;

        /*
         * The owner of the user namespace in the parent of the
         * user namespace has all caps.
        */
        if ((ns->parent == cred->user_ns) && uid_eq(ns->owner, cred->euid))
                return 0;

        /*
         * If you have a capability in a parent user ns, then you have
         * it over all children user namespaces as well.
        */
        ns = ns->parent;
}

The first check fails and falls through to the end of the loop and
retrieves the parent user namespace and checks whether CAP_SYS_ADMIN is
available there which isn't.

2. newuidmap has CAP_SETUID as fscaps set

unshare -U sleep infinity &
newuidmap $? 0 100000 65536

The first file_ns_capable() check for CAP_SYS_ADMIN is passed since the
euid has not been changed:

if ((ns->parent == cred->user_ns) && uid_eq(ns->owner, cred->euid))
        return 0;

Now new_idmap_permitted() is hit which calls ns_capable(ns->parent,
CAP_SET{G,U}ID). This check passes since CAP_SET{G,U}ID is available in
the parent user namespace.
Now file_ns_capable(file, ns->parent, CAP_SETUID) is hit and the
cap_capable() loop (see above) is entered again. This passes

if (ns == cred->user_ns)
        return cap_raised(cred->cap_effective, cap) ? 0 : -EPERM;

since CAP_SET{G,U}ID is available in the parent user namespace. Now the
mapping can be written.

There is no need for this descrepancy between setuid and fscaps based
new{g,u}idmap binaries. The solution is to do a
seteuid() back to the unprivileged uid and PR_SET_KEEPCAPS to keep
CAP_SET{G,U}ID. The seteuid() will cause the
file_ns_capable(file, ns, CAP_SYS_ADMIN) check to pass and the
PR_SET_KEEPCAPS for CAP_SET{G,U}ID will cause the CAP_SET{G,U}ID to
pass.

Fixes: 1ecca8439d ("new[ug]idmap: not require CAP_SYS_ADMIN in the parent userNS")
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
2018-10-28 01:27:48 +02:00
Serge Hallyn
bb3f810611 Merge pull request #136 from giuseppe/fcap-newuidmap-newgidmap
newuidmap/newgidmap: install with file capabilities
2018-10-27 11:26:31 -05:00
Serge Hallyn
d5255da20b Merge pull request #132 from giuseppe/no-cap-sys-admin
newuidmap/newgidmap: do not require CAP_SYS_ADMIN in the parent user namespace
2018-10-27 11:22:37 -05:00
Giuseppe Scrivano
70971457b7 newuidmap/newgidmap: install with file capabilities
do not install newuidmap/newgidmap as suid binaries.  Running these
tools with the same euid as the owner of the user namespace to
configure requires only CAP_SETUID and CAP_SETGID instead of requiring
CAP_SYS_ADMIN when it is installed as a suid binary.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2018-10-24 23:10:59 +02:00
Serge Hallyn
ff8b1ebafa Merge pull request #118 from AdelieLinux/utmpx-only-support
[WIP] Support systems that only have utmpx
2018-10-23 22:35:19 -05:00
Serge Hallyn
83f1380600 Merge pull request #133 from t8m/trivial
Fix some issues found in Coverity scan.
2018-10-23 22:21:12 -05:00
Giuseppe Scrivano
1ecca8439d new[ug]idmap: not require CAP_SYS_ADMIN in the parent userNS
if the euid!=owner of the userns, the kernel returns EPERM when trying
to write the uidmap and there is no CAP_SYS_ADMIN in the parent
namespace.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2018-10-22 16:57:50 +02:00
Serge Hallyn
58ee899dce Merge pull request #128 from jhrozek/sssd
Flush sssd caches in addition to nscd caches
2018-10-18 12:26:38 -07:00
Tomas Mraz
10e388efc2 useradd: fix segfault trying to overwrite const data with mkstemp
Also fix memory leaks in error paths.
2018-10-12 10:14:02 +02:00
Tomas Mraz
fb97da1ce1 Fix some issues found in Coverity scan. 2018-10-10 12:22:04 +02:00
Jakub Hrozek
4aaf05d72e Flush sssd caches in addition to nscd caches
Some distributions, notably Fedora, have the following order of nsswitch
modules by default:
    passwd: sss files
    group:  sss files

The advantage of serving local users through SSSD is that the nss_sss
module has a fast mmapped-cache that speeds up NSS lookups compared to
accessing the disk an opening the files on each NSS request.

Traditionally, this has been done with the help of nscd, but using nscd
in parallel with sssd is cumbersome, as both SSSD and nscd use their own
independent caching, so using nscd in setups where sssd is also serving
users from some remote domain (LDAP, AD, ...) can result in a bit of
unpredictability.

More details about why Fedora chose to use sss before files can be found
on e.g.:
    https://fedoraproject.org//wiki/Changes/SSSDCacheForLocalUsers
or:
    https://docs.pagure.org/SSSD.sssd/design_pages/files_provider.html

Now, even though sssd watches the passwd and group files with the help
of inotify, there can still be a small window where someone requests a
user or a group, finds that it doesn't exist, adds the entry and checks
again. Without some support in shadow-utils that would explicitly drop
the sssd caches, the inotify watch can fire a little late, so a
combination of commands like this:
    getent passwd user || useradd user; getent passwd user
can result in the second getent passwd not finding the newly added user
as the racy behaviour might still return the cached negative hit from
the first getent passwd.

This patch more or less copies the already existing support that
shadow-utils had for dropping nscd caches, except using the "sss_cache"
tool that sssd ships.
2018-09-13 14:20:02 +02:00
Serge Hallyn
6bf2d74dfc Merge pull request #122 from ivladdalvi/nologin-uid
Log UID in nologin
2018-08-13 18:37:02 -05:00
Vladimir Ivanov
4be18d3299 Log UID in nologin
Sometimes getlogin() may fail, e.g., in a chroot() environment or due to NSS
misconfiguration. Loggin UID allows for investigation and troubleshooting in
such situation.
2018-08-13 16:46:04 +08:00
Serge Hallyn
0d725c1e60 Merge pull request #116 from LionNatsu/master
po/zh_CN: update
2018-08-11 00:40:02 -05:00
Serge Hallyn
3c69af9ed3 Merge pull request #119 from mvo5/su-l
su.c: run pam_getenvlist() after setup_env
2018-08-11 00:39:07 -05:00
Michael Vogt
89b96cb85c su.c: run pam_getenvlist() after setup_env
When "su -l" is used the behaviour is described as similar to
a direct login. However login.c is doing a setup_env(pw) and then a
pam_getenvlist() in this scenario. But su.c is doing it the other
way around. Which means that the value of PATH from /etc/environment
is overriden. I think this is a bug because:

The man-page claims that "-l": "provides an environment similar
to what the user would expect had the user logged in directly."

And login.c is using the PATH from /etc/environment.

This will fix:
https://bugs.launchpad.net/ubuntu/+source/shadow/+bug/984390
2018-06-25 16:00:21 +02:00
A. Wilcox
99dbd4b9ee Support systems that only have utmpx
This allows shadow-utils to build on systems like Adélie, which have no
<utmp.h> header or `struct utmp`.  We use a <utmpx.h>-based daemon,
utmps[1], which uses `struct utmpx` only.

Tested both `login` and `logoutd` with utmps and both work correctly.

[1]: http://skarnet.org/software/utmps/
2018-06-24 00:13:12 -05:00
Serge Hallyn
67ec1a5266 Merge pull request #117 from rindeal/ENABLE_SUBIDS
fix unguarded ENABLE_SUBIDS code
2018-06-19 08:17:57 -04:00
Jan Chren (rindeal)
2fd5815546 fix unguarded ENABLE_SUBIDS code 2018-06-18 15:51:27 +02:00
Lion Yang
cba31b52b3 po/zh_CN: update 2018-06-16 18:26:28 +08:00
Serge Hallyn
eadcb472e1 Merge pull request #112 from jubalh/useradd-mkdirs
Create parent dirs for useradd -m
2018-05-23 09:57:40 -05:00
Michael Vetter
b3b6d9d77c Create parent dirs for useradd -m
Equivalent of `mkdir -p`. It will create all parent directories.
Example: `useradd -d /home2/testu1 -m testu1`

Based on https://github.com/shadow-maint/shadow/pull/2 by Thorsten Kukuk
and Thorsten Behrens which was Code from pwdutils 3.2.2 with slight adaptations.

Adapted to so it applies to current code.
2018-05-15 17:30:34 +02:00
Serge Hallyn
48dcf7852e usermod: prevent a segv
in the case where prefix does not exist.

Signed-off-by: Serge Hallyn <shallyn@cisco.com>
2018-05-08 21:37:55 -05:00
fariouche
73a876a056 Fix usermod crash
Return newly allocated pointers when the caller will free them.

Closes #110
2018-05-08 21:17:46 -05:00
Serge Hallyn
f50603a5fc release 4.6
Signed-off-by: Serge Hallyn <shallyn@cisco.com>
2018-04-29 11:41:41 -05:00
Serge Hallyn
164dcfe65b Merge pull request #103 from HarmtH/be-predictable
su.c: be more predictable
2018-03-29 23:10:51 -07:00
Serge Hallyn
fb356b1344 Merge pull request #21 from fariouche/master
Add --prefix argument
2018-03-29 22:36:28 -07:00
Serge Hallyn
a3d91ae318 Merge pull request #102 from HarmtH/fix-dashdash-slurp
su.c: fix '--' slurping
2018-03-29 15:45:54 -07:00
fariouche
65b4f58703 add --prefix option: some fixes + fixed pwd.lock file location 2018-03-28 21:14:12 +02:00
fariouche
54551c7d6e Merge remote-tracking branch 'upstream/master' 2018-03-28 21:11:36 +02:00
Harm te Hennepe
d877e3fcac su.c: be more predictable
Always parse first non-option as username.
2018-03-27 00:57:21 +02:00
Harm te Hennepe
dbfe7dd42e su.c: fix '--' slurping
All arguments are already reordered and parsed by getopt_long since e663c69, so manual '--' slurping is wrong.

Closes #101
2018-03-26 22:37:56 +02:00
Serge Hallyn
45b4187596 pwconv and grpconv: rewind after deleting an entry
Otherwise our spw_next() will cause us to skip an entry.
Ideally we'd be able to do an swp_rewind(1), but I don't
see a helper for this.

Closes #60

Signed-off-by: Serge Hallyn <shallyn@cisco.com>
2018-03-25 09:18:22 -05:00
Serge Hallyn
44c63795a7 userdel: fix wrong variable name in tcb case
Found in mandriva distro patch, and with a test build.

Signed-off-by: Serge Hallyn <shallyn@cisco.com>
2018-03-24 23:44:09 -05:00
Serge Hallyn
36244ac1ff src/Makefile.am: tcb fixes from mandriva
1. suidubins -= was breaking build with WITH_TCB.
2. stick libtcb at end of ldlibs list.

Signed-off-by: Serge Hallyn <shallyn@cisco.com>
2018-03-24 23:41:23 -05:00
Serge Hallyn
d3790feac0 pwck.c: do not pass O_CREAT
It causes a crash later when we try to close files.

Closes #96

Signed-off-by: Serge Hallyn <shallyn@cisco.com>
2018-03-24 20:29:48 -05:00
Serge Hallyn
b63aca9a2c src/Makefile.am: drop duplicate inclusion of chage
Closes #80

Signed-off-by: Serge Hallyn <shallyn@cisco.com>
2018-03-24 16:27:20 -05:00
Serge Hallyn
8f2f2a0d9d Merge pull request #98 from jsoref/spelling
Spelling
2018-03-24 15:54:51 -05:00
Serge Hallyn
5d57ca10d9 Merge pull request #100 from akrosikam/patch-1
Complete translation to Norwegian bokmål
2018-03-24 15:54:22 -05:00
akrosikam
a5913d98e1 Complete translation to Norwegian bokmål
Translate remaining strings to Norwegian bokmål (nb). Also, cure previous translation of excessive anglicism and apply a more consistent use of actual Norwegian syntax.
2018-03-12 08:39:16 +01:00
Serge Hallyn
5f3e3c2c62 Merge pull request #93 from rahul1809/master
Double freeing up pointers , Causing Segmentation fault
2018-02-19 14:45:13 -06:00
Serge Hallyn
c53e4c1d77 Merge pull request #97 from cyphar/newgidmap-secure-setgroups
newgidmap: enforce setgroups=deny if self-mapping a group
2018-02-16 08:40:39 -06:00
Aleksa Sarai
6d8be68071 README: add Aleksa Sarai to author list
Signed-off-by: Aleksa Sarai <asarai@suse.de>
2018-02-16 17:56:36 +11:00
Aleksa Sarai
fb28c99b8a newgidmap: enforce setgroups=deny if self-mapping a group
This is necessary to match the kernel-side policy of "self-mapping in a
user namespace is fine, but you cannot drop groups" -- a policy that was
created in order to stop user namespaces from allowing trivial privilege
escalation by dropping supplementary groups that were "blacklisted" from
certain paths.

This is the simplest fix for the underlying issue, and effectively makes
it so that unless a user has a valid mapping set in /etc/subgid (which
only administrators can modify) -- and they are currently trying to use
that mapping -- then /proc/$pid/setgroups will be set to deny. This
workaround is only partial, because ideally it should be possible to set
an "allow_setgroups" or "deny_setgroups" flag in /etc/subgid to allow
administrators to further restrict newgidmap(1).

We also don't write anything in the "allow" case because "allow" is the
default, and users may have already written "deny" even if they
technically are allowed to use setgroups. And we don't write anything if
the setgroups policy is already "deny".

Ref: https://bugs.launchpad.net/ubuntu/+source/shadow/+bug/1729357
Fixes: CVE-2018-7169
Reported-by: Craig Furman <craig.furman89@gmail.com>
Signed-off-by: Aleksa Sarai <asarai@suse.de>
2018-02-16 17:56:35 +11:00
fariouche
acaed3deab upstream merge 2018-01-23 23:10:19 +01:00
rahul
bb47fdf25e indentation fix 2018-01-22 17:07:27 +05:30
rahul
97bb5b2b6d added a check to avoid freeing null pointer 2018-01-22 17:05:52 +05:30
Serge Hallyn
c0f0c67864 Merge pull request #92 from IronicBadger/master
Fixes mispelling of MAX_DAYS help text
2018-01-18 22:42:12 -06:00
Alex Kretzschmar
e91b0f0517 Fixes mispelling of MAX_DAYS help text 2018-01-17 12:21:48 +00:00
Serge Hallyn
3f1f999e2d Merge pull request #90 from t8m/userdel-chroot
Make userdel to work with -R.
2018-01-08 22:57:43 -06:00
Serge Hallyn
c63bc6bfaa Merge pull request #91 from kloeri/master
Add note to passwd(1) that --maxdays -1 disables the setting.
2018-01-08 22:56:23 -06:00
Bryan Østergaard
a54907dce3 Add note to passwd(1) that --maxdays -1 disables the setting.
This note already exists in chage(1).
2018-01-03 18:36:40 +01:00
Tomas Mraz
2c57c399bf Make userdel to work with -R.
The userdel checks for users with getpwnam() which might not work
properly in chroot. Check for the user's presence in local files only.
2017-12-21 09:12:58 +01:00
Josh Soref
a063580dbb spelling: within 2017-10-22 21:37:53 +00:00
Josh Soref
a2c6e429b3 spelling: various 2017-10-22 21:33:42 +00:00
Josh Soref
f3e07f105e spelling: using 2017-10-22 21:31:09 +00:00
Josh Soref
f21700d876 spelling: username 2017-10-22 21:31:35 +00:00
Josh Soref
34669aa651 spelling: unrecognized 2017-10-22 21:30:30 +00:00
Josh Soref
08248f0859 spelling: typical 2017-10-22 21:28:58 +00:00
Josh Soref
722be83a14 spelling: thanks 2017-10-22 21:24:49 +00:00
Josh Soref
ea1a6e814b spelling: success 2017-10-22 21:23:13 +00:00
Josh Soref
2c930b19ba spelling: succeeded 2017-10-22 21:23:22 +00:00
Josh Soref
75e8eaad78 spelling: submitting 2017-10-22 21:23:03 +00:00
Josh Soref
b74d6cfb98 spelling: spotted 2017-10-22 21:16:50 +00:00
Josh Soref
a95d4ac1b5 spelling: spectacularly 2017-10-22 21:16:07 +00:00
Josh Soref
b9c9d411ff spelling: similar 2017-10-22 21:14:37 +00:00
Josh Soref
05cc753275 spelling: session 2017-10-22 21:13:32 +00:00
Josh Soref
af4a1c4e6b spelling: security 2017-10-22 21:13:23 +00:00
Josh Soref
ef39098a1b spelling: rewritten 2017-10-22 21:11:59 +00:00
Josh Soref
6671b44434 spelling: remove 2017-10-22 21:12:29 +00:00
Josh Soref
b2dbde4b8c spelling: really 2017-10-22 21:06:22 +00:00
Josh Soref
57cb36333b spelling: queried 2017-10-22 21:05:52 +00:00
Josh Soref
bfacc99ac3 spelling: provided 2017-10-22 21:04:46 +00:00
Josh Soref
e2192e119d spelling: poor 2017-10-22 21:15:45 +00:00
Josh Soref
4e0ac33eae spelling: password 2017-10-22 21:03:28 +00:00
Josh Soref
8078e5bd54 spelling: partially 2017-10-22 21:03:00 +00:00
Josh Soref
146a0da7b3 spelling: overridden 2017-10-22 21:01:25 +00:00
Josh Soref
ad7b83fc86 spelling: output 2017-10-22 21:00:52 +00:00
Josh Soref
c668c49a15 spelling: originally 2017-10-22 20:58:52 +00:00
Josh Soref
3574346318 spelling: options 2017-10-22 20:58:25 +00:00
Josh Soref
008be2848e spelling: nonexistent 2017-10-22 20:54:42 +00:00
Josh Soref
63261593c8 spelling: negative 2017-10-22 20:48:57 +00:00
Josh Soref
18b14eb4a8 spelling: necessary 2017-10-22 20:45:06 +00:00
Josh Soref
4724e503b0 spelling: multiple 2017-10-22 20:41:18 +00:00
Josh Soref
2c4d93c7cf spelling: moment 2017-10-22 20:39:14 +00:00
Josh Soref
148c1c0984 spelling: modification 2017-10-22 20:38:52 +00:00
Josh Soref
6bc784b95a spelling: missing 2017-10-22 20:37:31 +00:00
Josh Soref
d275cce099 spelling: message 2017-10-22 20:34:22 +00:00
Josh Soref
5136659a59 spelling: maximum 2017-10-22 20:33:55 +00:00
Josh Soref
414816064f spelling: match 2017-10-22 20:33:00 +00:00
Josh Soref
dcf96e43fa spelling: mapping 2017-10-22 20:32:45 +00:00
Josh Soref
ea7d7bb644 spelling: many 2017-10-22 20:30:00 +00:00
Josh Soref
60891cd197 spelling: logout 2017-10-22 20:28:57 +00:00
Josh Soref
0556fea593 spelling: locally 2017-10-22 20:28:46 +00:00
Josh Soref
74fcf6f28d spelling: interactive 2017-10-22 20:24:32 +00:00
Josh Soref
70eb03ec29 spelling: inserted 2017-10-22 20:22:44 +00:00
Josh Soref
856d26cb4b spelling: improvements 2017-10-22 20:11:27 +00:00
Josh Soref
1adf386345 spelling: if the 2017-10-22 19:47:52 +00:00
Josh Soref
02137de419 spelling: if 2017-10-22 20:52:44 +00:00
Josh Soref
73516df908 spelling: gshadow 2017-10-22 19:47:08 +00:00
Josh Soref
3025b9ebac spelling: groupmod 2017-10-22 19:33:50 +00:00
Josh Soref
e235f372ce spelling: gratuitously 2017-10-22 19:17:02 +00:00
Josh Soref
62ace035c6 spelling: getxxyyy 2017-10-22 19:16:30 +00:00
Josh Soref
07a169d964 spelling: forgotten 2017-10-22 19:13:08 +00:00
Josh Soref
8e2b91c8cc spelling: faillog 2017-10-22 19:11:52 +00:00
Josh Soref
831ff281d0 spelling: equivalent 2017-10-22 19:11:20 +00:00
Josh Soref
29ad485d17 spelling: enviroment 2017-10-22 19:10:52 +00:00
Josh Soref
51f740e23e spelling: entered 2017-10-22 19:10:41 +00:00
Josh Soref
c751f4a6ec spelling: else 2017-10-22 19:08:39 +00:00
Josh Soref
742868dc2d spelling: display its 2017-10-22 18:44:58 +00:00
Josh Soref
9b8bddd179 spelling: displaying 2017-10-22 18:43:40 +00:00
Josh Soref
1987203745 spelling: displayed 2017-10-22 18:43:48 +00:00
Josh Soref
f7abcfb39a spelling: devices 2017-10-22 18:40:47 +00:00
Josh Soref
016bc8b813 spelling: default 2017-10-22 18:34:35 +00:00
Josh Soref
66b1a59efe spelling: cumulative 2017-10-22 18:33:13 +00:00
Josh Soref
bd4750126b spelling: created 2017-10-22 08:23:57 +00:00
Josh Soref
0fba6bd347 spelling: conversation 2017-10-22 18:32:19 +00:00
Josh Soref
eb9db854d7 spelling: constraints 2017-10-22 21:07:23 +00:00
Josh Soref
7d68d59cc2 spelling: configuration 2017-10-22 18:31:51 +00:00
Josh Soref
f9311ba61d spelling: conditionally 2017-10-22 18:31:24 +00:00
Josh Soref
60d2888605 spelling: comment 2017-10-22 18:25:35 +00:00
Josh Soref
c2ada4c306 spelling: command 2017-10-22 18:25:46 +00:00
Josh Soref
310ef194a1 spelling: close 2017-10-22 18:25:14 +00:00
Josh Soref
daf30eff79 spelling: chpasswd 2017-10-22 18:23:41 +00:00
Josh Soref
a90585f1d6 spelling: checking 2017-10-22 18:22:12 +00:00
Josh Soref
4be6d423e4 spelling: changed 2017-10-22 08:24:23 +00:00
Josh Soref
2db724bc50 spelling: change 2017-10-22 08:24:59 +00:00
Josh Soref
452b9c26e4 spelling: categories 2017-10-22 08:08:07 +00:00
Josh Soref
d0c05b0143 spelling: cannot 2017-10-22 08:05:45 +00:00
Josh Soref
36aeb4e9ee spelling: built 2017-10-22 18:41:48 +00:00
Josh Soref
f8d4b66edd spelling: better 2017-10-22 08:05:08 +00:00
Josh Soref
483de7d614 spelling: beginning 2017-10-22 08:04:51 +00:00
Josh Soref
a95ed40bf0 spelling: available 2017-10-22 08:02:00 +00:00
Josh Soref
686efcfcb1 spelling: attributes 2017-10-22 07:59:41 +00:00
Josh Soref
bd6f2760a3 spelling: at the 2017-10-22 08:00:59 +00:00
Josh Soref
15631009b4 spelling: applied 2017-10-22 07:57:56 +00:00
Josh Soref
8eb822ebf3 spelling: anonymous 2017-10-22 07:56:49 +00:00
Josh Soref
aa95b1b763 spelling: always 2017-10-22 07:56:16 +00:00
Josh Soref
92e3a5e386 spelling: allowed 2017-10-22 07:56:05 +00:00
Josh Soref
4c22dcfbfd spelling: address 2017-10-22 07:55:43 +00:00
Josh Soref
4f459198db spelling: account 2017-10-22 07:52:04 +00:00
Serge Hallyn
056f7352ef Merge pull request #86 from WheresAlice/master
Make language more inclusive
2017-10-06 17:47:31 -05:00
Serge Hallyn
0c2939b331 Merge pull request #82 from t8m/ingroup
newgrp: avoid unnecessary group lookups
2017-10-06 17:45:31 -05:00
Serge Hallyn
68e3d685fd Merge pull request #84 from jubalh/mentionman
Add note about conditional man pages
2017-10-06 17:43:47 -05:00
Serge Hallyn
0209d3f185 Merge pull request #85 from jubalh/nosilent
Add warning when turning off man switch
2017-09-29 10:08:47 -05:00
Michael Vetter
ef6890c31d Add error when turning off man switch
Print a warning and abort in case xsltproc is missing.
2017-09-29 11:01:39 +02:00
WheresAlice
1e98b3b559 Make language less binary 2017-09-20 17:00:29 +01:00
Michael Vetter
223238d265 Add note about conditional man pages
Closes https://github.com/shadow-maint/shadow/issues/83
2017-09-08 22:14:17 +02:00
Tomas Mraz
33f1f69e9c newgrp: avoid unnecessary group lookups
In case a system uses remote identity server (LDAP) the group lookup
can be very slow. We avoid it when we already know the user has the
group membership.
2017-08-14 11:38:46 +02:00
Serge Hallyn
fb04f2723a nl.po: fix some missing newlines
Signed-off-by: Serge Hallyn <serge@hallyn.com>
2017-07-16 17:09:00 -05:00
Serge Hallyn
78d4265f65 Import new Dutch translations.
Thanks to Frans Spiesschaert.

Signed-off-by: Serge Hallyn <serge@hallyn.com>
2017-07-16 16:46:21 -05:00
Serge Hallyn
c2aed5345e update changelog for last commit 2017-07-10 21:52:02 -05:00
sbts
2392894eb0 add error constant names to groupmod.8.xml This assists someone wanting to work out what may have caused the error 2017-07-10 21:50:49 -05:00
sbts
59fa2c0763 implement and document additional error codes for groupmod add E_CLEANUP_SERVICE, E_PAM_USERNAME, E_PAM_ERROR to groupmod.c and groupmod.8.xml 2017-07-10 21:50:49 -05:00
Serge Hallyn
7081b2df85 Merge pull request #74 from AdamMajer/upstream
support dynamically added users via pam_group
2017-06-15 22:41:25 -05:00
Serge Hallyn
1f34221552 Merge pull request #76 from edmorley/fix-changelog-dates
Correct wrong year in ChangeLog dates
2017-06-15 22:38:01 -05:00
Ed Morley
c43681a068 Correct wrong year in ChangeLog dates
The recently added entries were actually for 2017.
2017-06-15 14:34:46 +01:00
Adam Majer
992fab50ee support dynamically added users via pam_group
Dynamically added users via pam_group are not listed in groups
databases but are still valid.
2017-05-22 13:42:35 +02:00
Serge Hallyn
15be89f89d release 4.5 2017-05-17 14:33:02 -05:00
Serge Hallyn
d2902c8d3b update Changelog 2017-05-17 14:27:48 -05:00
Serge Hallyn
8e51ec9ee4 Merge pull request #72 from stoeckmann/su-regression
Reset pid_child only if waitpid was successful.
2017-05-14 11:41:40 -05:00
Tobias Stoeckmann
7d82f203ee Reset pid_child only if waitpid was successful.
Do not reset the pid_child to 0 if the child process is still
running. This else-condition can be reached with pid being -1,
therefore explicitly test this condition.

This is a regression fix for CVE-2017-2616. If su receives a
signal like SIGTERM, it is not propagated to the child.

Reported-by: Radu Duta <raduduta@gmail.com>
Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org>
2017-05-14 17:58:10 +02:00
Serge Hallyn
c07711de1d Merge pull request #71 from lamby/sp_lstchg-reproducible-857803
Make the sp_lstchg shadow field reproducible.
2017-04-19 17:11:32 -05:00
Chris Lamb
cb610d54b4 Make the sp_lstchg shadow field reproducible.
The third field in the /etc/shadow file (sp_lstchg) contains the date of
the last password change expressed as the number of days since Jan 1, 1970.
As this is a relative time, creating a user today will result in:

   username:17238:0:99999:7:::

whilst creating the same user tomorrow will result in:

    username:17239:0:99999:7:::

This has an impact for the Reproducible Builds[0] project where we aim to
be independent of as many elements the build environment as possible,
including the current date.

This patch changes the behaviour to use the SOURCE_DATE_EPOCH[1]
environment variable (instead of Jan 1, 1970) if valid.

 [0] https://reproducible-builds.org/
 [1] https://reproducible-builds.org/specs/source-date-epoch/

Signed-off-by: Chris Lamb <lamby@debian.org>
2017-04-10 22:29:21 +01:00
Serge Hallyn
2f36da5201 Merge pull request #70 from t8m/master
Fix buffer overflow if NULL line is present in db.
2017-04-01 15:46:05 -05:00
Tomas Mraz
954e3d2e71 Fix buffer overflow if NULL line is present in db.
If ptr->line == NULL for an entry, the first cycle will exit,
but the second one will happily write past entries buffer.
We actually do not want to exit the first cycle prematurely
on ptr->line == NULL.
Signed-off-by: Tomas Mraz <tmraz@fedoraproject.org>
2017-03-31 16:25:06 +02:00
Serge Hallyn
830ae266c4 Merge pull request #68 from yurayko/master
updated russian translation
2017-03-27 08:24:40 -05:00
Serge Hallyn
6eae751e70 user_busy: fix missing close of subuid file on error
Closes #69

Reported-by: plenkow
Signed-off-by: Serge Hallyn <serge@hallyn.com>
2017-03-23 17:07:46 -05:00
Yuri Kozlov
f0e0c35f2b Merge branch 'master' of https://github.com/yurayko/shadow 2017-03-18 10:42:12 +03:00
Yuri Kozlov
dc8253450d updated russian translation 2017-03-18 10:41:13 +03:00
yurayko
8d28d8cca0 Update ru.po 2017-03-18 11:27:34 +04:00
yurayko
274afc2c61 Update ru.po 2017-03-18 11:17:56 +04:00
Yuri Kozlov
5717fe9ca8 updated russian translation 2017-03-05 11:17:27 +03:00
fariouche
b6b2c756c9 add --prefix option 2017-03-01 22:51:09 +01:00
Serge Hallyn
db57db52cf changelog for last commit 2017-02-23 13:44:27 -06:00
Tobias Stoeckmann
08fd4b69e8 su: properly clear child PID
If su is compiled with PAM support, it is possible for any local user
to send SIGKILL to other processes with root privileges. There are
only two conditions. First, the user must be able to perform su with
a successful login. This does NOT have to be the root user, even using
su with the same id is enough, e.g. "su $(whoami)". Second, SIGKILL
can only be sent to processes which were executed after the su process.
It is not possible to send SIGKILL to processes which were already
running. I consider this as a security vulnerability, because I was
able to write a proof of concept which unlocked a screen saver of
another user this way.
2017-02-23 09:47:29 -06:00
Serge Hallyn
24130c882d Merge pull request #67 from AdamMajer/upstream
Print error on exec failure + cosmetic changes
2017-02-21 14:37:42 -06:00
Adam Majer
759f94e17a Remove extra parenthesis 2017-02-20 14:50:30 +01:00
Adam Majer
90c0525c7e Remove unnecessary static variable usage 2017-02-20 14:48:55 +01:00
Josef Möllers
5ac4918bdd Add error handling in case exec fails
We should print error message if exec fails, for some reason.
2017-02-20 14:32:37 +01:00
Serge Hallyn
3f9af9deb9 Update changelog 2017-02-11 09:03:56 -06:00
David Michael
c6b0664f52 useradd: Read defaults after changing root directories
This reverts the behavior of "useradd --root" to using the settings
from login.defs in the target root directory, not the root of the
executed useradd command.
2017-02-11 08:59:49 -06:00
Josef Moellers
e36c0a418a Deleted a misplaced semicolon. 2017-02-11 08:55:07 -06:00
Baurzhan Muftakhidinov
efc8c61f75 Update Kazakh translation
Signed-off-by: Serge Hallyn <serge@hallyn.com>
2017-02-08 16:40:53 -06:00
Serge Hallyn
44c690cd9a Merge pull request #59 from rbalint/master
Patches from the Debian BTS
2017-02-04 20:27:17 -06:00
Serge Hallyn
f84a88a824 Update changelog 2017-01-29 14:49:03 -06:00
Bernhard Rosenkränzer
c33ceddc26 Don't crash on bogus keys in login.defs if PAM is enabled
Without this patch, PAM enabled builds crash when encountering an
invalid key in login.defs or key overrides because of array overflows

To reproduce, simply
	useradd -K Windows=broken

Signed-off-by: Bernhard Rosenkränzer <bero@lindev.ch>
Signed-off-by: Serge Hallyn <serge@hallyn.com>
2017-01-29 14:47:24 -06:00
Jakub Wilk
6a750c7a50 zh_TW.po: Remove duplicated Plural-Forms
Signed-off-by: Serge Hallyn <serge@hallyn.com>
2017-01-29 14:42:35 -06:00
Serge Hallyn
f288c4fcef Changelog for last commit 2017-01-29 14:38:44 -06:00
Tomas Mraz
ee9e506af2 Make the group and user allocation more effective.
Previously, the allocation was optimized for an outdated
deployment style (that of /etc/group alongside nss_db). The issue
here is that this results in extremely poor performance when using
SSSD, Winbind or nss_ldap.

There were actually two serious bugs here that have been addressed:

1) Running getgrent() loops won't work in most SSSD or Winbind
environments, as full group enumeration is disabled by default.
This could easily result in auto-allocating a group that was
already in use. (This might result in a security issue as well, if
the shared GID is a privileged group).

2) For system groups, the loop was always iterating through the
complete SYS_GID_MIN->SYS_GID_MAX range. On SSSD and Winbind, this
means hundreds of round-trips to LDAP (unless the GIDs were
specifically configured to be ignored by the SSSD or winbindd).
To a user with a slow connection to their LDAP server, this would
appear as if groupadd -r was hung. (Though it would eventually
complete).

This patch changes the algorithm to be more favorable for LDAP
environments, at the expense of some performance when using nss_db.
Given that the DB is a local service, this should have a negligible
effect from a user's perspective.

With the new algorithm, we simply first iterate through all entries
in the local database with gr_next(), recording the IDs that are in
use. We then start from the highest presumed-available entry and
call getgrgid() to see if it is available. We continue this until
we come to the first unused GID. We then select that and return it.

If we make it through all the remaining IDs without finding a free
one, we start over from the beginning of the range and try to find
room in one of the gaps in the range.

The patch was originally written by Stephen Gallagher and applied
identically also to the user allocation by Tomáš Mráz.

Signed-off-by: Serge Hallyn <serge@hallyn.com>
2017-01-29 14:37:21 -06:00
Lars Bahner
8a122a90fa Fix some spelling issues in the Norwegian translation 2017-01-19 18:44:54 +01:00
Thomas Blein
45f141ce69 French manpage translation 2017-01-19 17:39:42 +01:00
Holger Wansing
a9824dc6a3 Update for German man pages 2017-01-19 17:36:55 +01:00
Miroslav Kuře
84228eaeda Updated Czech translation 2017-01-19 17:26:22 +01:00
Frans Spiesschaert
c739407f92 Dutch translation update 2017-01-19 17:15:11 +01:00
Micah Anderson
578d495f91 Last bits of enabling subuids
This patch has been carried by Debian, originally
submitted to BTS in #739981
2017-01-18 18:06:05 +01:00
Simon Kainz
bdd68116b7 Typos fix in german translation of man pages
Reported to Debian BTS in #734609
2017-01-18 17:24:44 +01:00
Balint Reczey
c8508fabd0 Replace user´s -> user's to make login.def files valid ASCII instead of UTF-8
The Unicode character caused issues in LANG=C environment.
See Debian bug #850338 for details.
2017-01-18 16:54:51 +01:00
Serge Hallyn
36bc770ed4 Update changelog 2016-12-21 12:58:05 -06:00
Serge Hallyn
5701e147ef Update _COMMONIO_H and _SHADOWIO_H to drop leading underscore
Closes #23

Signed-off-by: Serge Hallyn <serge@hallyn.com>
2016-12-21 12:45:50 -06:00
Serge Hallyn
5fc99f02cf Merge pull request #58 from juiceme/master
shadow: Add auditing support to su
2016-12-21 12:41:39 -06:00
Serge Hallyn
411f540590 Fix s/from/to/ in usermod.c error message
Closes #49

Signed-off-by: Serge Hallyn <serge@hallyn.com>
2016-12-21 12:40:08 -06:00
Michael Vetter
b2bd56a012 Reset user in tallylog
The useradd application resets the user data in /var/log/faillog, if it
exists and a new user is created.

pam_tally2 is used in many distributions.

Check for /var/log/tallylog and reset the user there.

Patch was written by Josef Moellers <jmoellers@suse.de>.

https://bugzilla.suse.com/show_bug.cgi?id=980486
2016-12-21 12:36:11 -06:00
Jussi Ohenoja
a3bf32fe87 shadow: Add auditing support to su
This patch extends the auditing feature used in login to su.

Signed-off-by: Jussi Ohenoja <jussi.ohenoja@nokia.com>
2016-12-13 18:44:19 +02:00
Serge Hallyn
9e93c984f7 Merge pull request #17 from wking/includes-to-am-cppflags
*/Makefile.am: Replace INCLUDES with AM_CPPFLAGS
2016-12-07 00:01:54 -06:00
Serge Hallyn
d7ce9430ca Revert "Add files via upload"
This has caused build errors.  Please feel free to re-submit.

This reverts commit 93e3044c6d.
2016-12-06 23:31:58 -06:00
Serge Hallyn
0fb53623a5 Merge pull request #55 from glensc/travis2
enable travis integration
2016-12-06 23:27:19 -06:00
Serge Hallyn
9ad34243aa Merge pull request #52 from vapier/master
autotools refresh
2016-12-06 23:24:42 -06:00
Serge Hallyn
06f719e501 Merge pull request #53 from vapier/prototypes
include getdef.h for getdef_bool prototype
2016-12-06 23:23:17 -06:00
Elan Ruusamäe
f439149cb3 run travis 2016-12-06 01:09:17 +02:00
Mike Frysinger
32c0b283ef include getdef.h for getdef_bool prototype
Otherwise we get build warnings like:
sgroupio.c:255:6: warning: implicit declaration of function 'getdef_bool' [-Wimplicit-function-declaration]
shadowio.c:131:6: warning: implicit declaration of function 'getdef_bool' [-Wimplicit-function-declaration]
2016-12-05 17:15:29 -05:00
Mike Frysinger
6e91297fa2 enable silent build output by default
Enable the automake feature to produce silent output by default.
When compiling code, we now see things like:
$ make
  CC       addgrps.o
  CC       age.o
  CC       audit_help.o
...

This can be disabled via configure's --disable-silent-rules or
by passing V=1 to make.

Custom output (like in the man subdirs) don't (yet) respect this
feature.  More work will be needed to clean those up.
2016-12-05 16:02:55 -05:00
Mike Frysinger
752ca15da4 man: make clean-local more robust
If the subdirs aren't empty, the rmdir calls can fail.  Simplify this
code by just using `rm -rf` since that matches what we really want.
2016-12-05 16:02:19 -05:00
Mike Frysinger
e33cb8ae12 switch bz2 dist to xz
Since xz is fairly common nowadays, and is typically smaller/faster than
bzip2 for people to decompress, switch shadow over too.  We also merge
the two init locations into configure.ac to match newer autotools style.

The min automake version is bumped to 1.11 too since that's when xz was
released.
2016-12-05 15:57:34 -05:00
Mike Frysinger
10bd7bab14 ignore config.cache & dist files
config.cache is generated when running `./configure -C`.

The tarballs are generated when running `make dist`.
2016-12-05 15:48:10 -05:00
Mike Frysinger
84f0ae00d2 configure: avoid deprecated AC_INIT/AM_INIT_AUTOMAKE invocation
The autoconf/automake guys want AC_INIT to be passed the details of the
package directly rather than going through AM_INIT_AUTOMAKE.  Update them
both to use the newer style.

This also allows us to pass in contact details for the project.

We set the minimum autoconf version to 2.64 as that's the first one to
support passing the homepage URL in to AC_INIT.  That's a pretty old
release by now, so it shouldn't be a problem.
2016-12-05 15:43:20 -05:00
Serge Hallyn
e3f213305b update Changelog 2016-12-02 16:15:28 -06:00
Serge Hallyn
d886cf40ef Merge pull request #48 from t8m/fedora
Four simple patches from the Fedora package to merge
2016-12-02 16:14:24 -06:00
Serge Hallyn
d572e3b1f9 update changelog, finally 2016-12-02 13:41:49 -06:00
Serge Hallyn
816bd48c83 Merge pull request #50 from m4sk1n/master
update Polish translation
2016-11-25 11:58:14 -06:00
m4sk1n
05563a7832 Merge pull request #1 from m4sk1n/pl-translation-update
Add files via upload
2016-11-24 09:16:48 +01:00
m4sk1n
93e3044c6d Add files via upload
81% completed
2016-11-24 09:07:41 +01:00
Serge Hallyn
6825e6c90a Merge pull request #43 from Blub/suidbins-rule-fixup
buildsys: fix suidubins assignments
2016-11-18 20:13:48 -06:00
Tomas Mraz
6401c5b4ee snprintf() always terminates output with \0 2016-11-15 16:05:44 +01:00
Tomas Mraz
4471e5419d Keep the permissions of the original file when creating a backup. 2016-11-15 16:04:24 +01:00
Tomas Mraz
2b820c534d Audit the home directory ownership change. 2016-11-15 16:03:40 +01:00
Tomas Mraz
765993846d Print error message if SELinux file context manipulation fails. 2016-11-15 16:00:51 +01:00
Serge Hallyn
d9073bb033 Merge pull request #44 from evgeni/man-subuid-spelling
man: fix --{add,del}-sub{g,u}ids spelling
2016-11-09 17:05:33 -06:00
Evgeni Golov
efbff6a3d9 man: fix --{add,del}-sub{g,u}ids spelling
docs wrongly had a hyphen between sub and uids/gids
2016-11-09 22:23:18 +01:00
Wolfgang Bumiller
61abb4645c buildsys: fix suidubins assignments
These assignments were pasted as is into the Makefile and
ended up as part of a rule. (Usually the .PRECIOUS rule
which is why the build system never attempted to execute it
as commands, hiding the problem.)

Signed-off-by: Wolfgang Bumiller <wry.git@bumiller.com>
Reported-by: Rahel A <ra00177@surrey.ac.uk>
2016-11-05 16:09:07 +01:00
Serge Hallyn
11d1b661db Merge pull request #42 from jubalh/maint
Update README with current maintainer
2016-11-04 09:01:16 -05:00
Michael Vetter
b95b766bc0 Update README with current maintainer 2016-11-02 09:30:05 +01:00
Serge Hallyn
4094dc0c96 Merge pull request #41 from selkfoster/master
Remove non-POSIX option in chmod(1) used for src/Makefile.am
2016-10-19 19:29:43 -05:00
Matias A. Fonzo
b7fffe8f7e Remove non-POSIX option in chmod(1) used for src/Makefile.am 2016-10-18 15:46:27 -03:00
Trần Ngọc Quân
a87e2bcdf1 Update Vietnamese translations 2016-10-06 12:16:21 -05:00
Serge Hallyn
6564241674 Merge pull request #33 from t8m/master
Fix regression in useradd not loading defaults properly.
2016-09-21 09:12:15 -05:00
Serge Hallyn
dc5b2a2ec0 Merge pull request #36 from atsampson/master
Add missing size args to snprintf calls.
2016-09-20 08:14:28 -05:00
Adam Sampson
924cc34647 Use sizeof rather than hardcoding snprintf's size argument. 2016-09-20 08:04:14 +01:00
Serge Hallyn
68061f2059 release 4.4 2016-09-18 21:38:10 -05:00
Serge Hallyn
67d2bb6e0a su.c: fix missing length argument to snprintf 2016-09-18 21:31:18 -05:00
Serge Hallyn
99b5feadd9 update translations 2016-09-18 18:23:49 -05:00
Tomas Mraz
507f96cdeb Fix regression in useradd not loading defaults properly.
The get_defaults() has to be called before processing the flags.

Signed-off-by: Tomáš Mráz <tmraz@fedoraproject.org>
2016-08-25 11:20:34 +02:00
Serge Hallyn
6fbc11ce21 configure.ac: release 4.3.1
Signed-off-by: Serge Hallyn <serge@hallyn.com>
2016-08-14 23:00:59 -05:00
Serge Hallyn
ff2baed5db idmapping: add more checks for overflow
At this point they are redundant but should be safe.  Thanks to
Sebastian Krahmer for the first check.
2016-08-14 21:48:50 -05:00
Serge Hallyn
94da3dc5c8 also check upper for wrap 2016-08-14 21:48:45 -05:00
Serge Hallyn
9df58a7545 Merge pull request #30 from jwilk/spelling
man: Fix typos
2016-08-05 11:59:45 -05:00
Serge Hallyn
5b017af90d Merge pull request #29 from hemio-ev/lower-su-syslog-priority
Reduces syslog priority of common usage events
2016-08-05 11:59:15 -05:00
Jakub Wilk
a7a7a1fdea man: Fix typos 2016-08-05 18:50:51 +02:00
Serge Hallyn
ca0ccaba27 Merge pull request #24 from stoeckmann/typos
Fixed typos in new{g,u}idmap tools.
2016-08-04 23:39:25 -05:00
Serge Hallyn
8f1836bad9 Merge pull request #25 from stoeckmann/sigrace
Fixed signal races in shadow tools.
2016-08-04 23:38:24 -05:00
Michael Herold
61fc90b268 Reduces syslog priority of common usage events
- Log INFO instead of ERR on `su missing-user`
- Log NOTICE/WARN instead of ERR on pam_authenticate failure (wrong password for example)
2016-08-04 22:17:31 +02:00
Sebastian Krahmer
1d5a926cc2 Simplify getulong
Use strtoul to read an unsigned long, rather than reading
a signed long long and casting it.

https://bugzilla.suse.com/show_bug.cgi?id=979282
2016-08-03 11:51:07 -05:00
Serge Hallyn
7f5a14817d get_map_ranges: check for overflow
The kernel accepts u32 values, so make sure that userspace
is not passing large values.

Signed-off-by: Serge Hallyn <serge@hallyn.com>
2016-07-31 12:56:48 -05:00
Serge Hallyn
9bf01bf010 Merge pull request #26 from jubalh/master
Fix sentence in usermod manual
2016-07-19 08:02:31 -05:00
Michael Vetter
358bd9b359 Fix sentence in usermod manual
Should have been: '[...] but only checkS [...]'.
So there was a missing 's'. Architectures isn't the right word either.
I decided to write the whole sentence new.
2016-07-18 15:21:08 +02:00
Tobias Stoeckmann
dd50014055 Fixed signal races in shadow tools.
Some of the supplied tools use functions which are not signal-safe.

Most of the times it's exit() vs. _exit().

In other times it's how the standard output or standard error is
handled. FILE-related functions shall be avoided, therefore I replaced
them with write().

Also there is no need to call closelog(). At worst, it allows to
trigger a deadlock by issuing different signal types at bad timings.
But as these fixes are about race conditions, expect bad timings in
general for these bugs to be triggered. :)
2016-07-02 18:11:09 +02:00
Tobias Stoeckmann
a84b0cafdd Fixed typos in new{g,u}idmap tools.
Fixed small typos in manual pages and code comments.

Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org>
2016-07-02 16:39:18 +02:00
Serge Hallyn
a4dee3d1ad Merge pull request #16 from sebras/master
man: Fix a number of typos for various commands.
2016-05-20 14:05:56 -05:00
Serge Hallyn
340729bbe8 Merge pull request #19 from brauner/manfix
add long option --no-create-home to -M
2016-05-05 16:18:15 -05:00
Christian Brauner
4518826376 add long option --no-create-home to -M
Let's get rid of all the downstream fixes floating around.

Signed-off-by: Christian Brauner <christian.brauner@mailbox.org>
2016-05-05 12:00:07 +02:00
W. Trevor King
c07397695a */Makefile.am: Replace INCLUDES with AM_CPPFLAGS
Catch up with Automake's [1], which was part of v1.6b, cut 2002-07-28
[2].  Avoids:

  $ autoreconf -v -f --install
  ...
  libmisc/Makefile.am:4: warning: 'INCLUDES' is the old name for 'AM_CPPFLAGS' (or '*_CPPFLAGS')
  ...
  src/Makefile.am:10: warning: 'INCLUDES' is the old name for 'AM_CPPFLAGS' (or '*_CPPFLAGS')
  ...

Consolidating with the earlier AM_CPPFLAGS avoids:

  $ autoreconf -v -f --install
  src/Makefile.am:72: warning: AM_CPPFLAGS multiply defined in condition TRUE ...
  src/Makefile.am:10: ... 'AM_CPPFLAGS' previously defined here
  autoreconf-2.69: Leaving directory `.'

[1]: http://git.savannah.gnu.org/cgit/automake.git/commit/?id=1415d22f6203206bc393fc4ea233123ba579222d
     Summary: automake.in (generate_makefile): Suggest using AM_CPPFLAGS instead of INCLUDES
     Date: 2002-07-09
[2]: http://git.savannah.gnu.org/cgit/automake.git/tag/?id=Release-1-6b
2016-04-29 17:30:18 -07:00
Sebastian Rasmussen
aa38e0da9a man: Fix a number of typos for various commands. 2016-04-28 15:56:28 +02:00
727 changed files with 28331 additions and 16226 deletions

2
.gitignore vendored
View File

@@ -18,6 +18,7 @@ Makefile.in
/aclocal.m4
/autom4te.cache
/compile
/config.cache
/config.guess
/config.h
/config.h.in
@@ -45,4 +46,5 @@ Makefile.in
/po/stamp-po
/shadow.spec
/shadow-*.tar.*
/libmisc/getdate.c

20
.travis.yml Normal file
View File

@@ -0,0 +1,20 @@
sudo: false
language: c
compiler:
- gcc
- clang
addons:
apt:
packages:
- autopoint
- xsltproc
script:
- ./autogen.sh --without-selinux --disable-man
- grep ENABLE_ config.status
- make
# vim:et:ts=2:sw=2

137
ChangeLog
View File

@@ -1,3 +1,140 @@
2019-06-13 Serge Hallyn <serge@hallyn.com>
* Release 4.7
* Spawn: don't loop forever on ECHILD
* Do not fail locking if there is a stale lockfile Tomas Mraz)
* Use lckpwdf if prefix not set (Tomas Mraz)
* Build: check correct DocBook version (Jan Tojnar)
* Usermod: Print 'no changes' to stdout, not stderr (Serge Hallyn)
* Add support for btrfs subvolumes for home (Adam Majer)
* Fix chpasswd long line handling (Nathan Ruiz)
* Use secure_getenv for gettime (Chris Lamb)
* Make sp_lstchg reproducible (Chris Lamb)
* Do not crash commonio_close if db file is not open (Tomas Mraz)
* Don't flush nscd and sssd cache in read-only mode (Charlie Vuillemez)
* French manpage update (Alban VIDAL)
* Fix manpage defaults for SUB_UID/GID_COUNT (Tomas Mraz)
* Sync po files from shadow.pot (Alban VIDAL)
* Usermod: guard against unsafe chown of homedir contents (Tomas Mraz)
* Add LASTLOG_UID_MAX to login.defs (Tomas Mraz)
* new[ug]idmap file capabilities support (Giuseppe Scrivano and Christian Brauner)
* Fix segfault in useradd (Tomas Mraz)
* Coverity issues (Tomas Mraz)
* Flush sssd caches (Jakub Hrozek)
* Log UID in nologin (Vladimir Ivanov)
* run pam_getenvlist after setup_env in su.c (Michael Vogt)
* Support systems with only utmpx (A. Wilcox)
* Fix unguarded ENABLE_SUBIDS code (Jan Chren (rindeal))
* Update po/zh_CN translation (Lion Yang)
* Create parent dirs for useradd -m (Michael Vetter)
* Prevent usermod segv
* Fix usermod crash (fariouche)
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
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.
* Patch from Chris Lamb making sp_lstchg shadow field reproducible.
* Merge Russian translation updates from Yuri Kozlov
* Fix missing close of subuid file on error
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.
2017-02-08 Serge Hallyn <serge@hallyn.com>
* Update Kazakh translations
* Consult configuration before calculating subuids
* Remove misplaced semicolon
2017-01-29 Serge Hallyn <serge@hallyn.com>
* Patch from Fedora to improve performance with SSSD, Winbind,
or nss_ldap. (Tomas Mraz)
* Make sure knowndef_table is NULL-terminated. (Bernhard Rosenkränzer)
2016-12-21 Serge Hallyn <serge@hallyn.com>
* Drop leading underscore from _COMMONIO_H and _SHADOWIO_H
* Fix readability in usermod error messages.
* Reset user in tallylog
* Add audit support to su
2016-12-02 Serge Hallyn <serge@hallyn.com>
* changes since 4.4
- Use sizeof rather than hardcoding snprintf args
- Fix useradd improper default loading
- Update Vietnamese translations
- Update Polish translations
- Remove non-POSIX chmod option in Makefile
- Fix suidubins assignments
- Fix --add-subuids etc spelling in manpages
- Audit homedir ownership change.
- Print error on selinux file context update failure
- Keep original file perms when creating a backup
* (henceforth we'll update Changelog with each commit
and proper credit)
2016-12-02 Serge Hallyn <serge@hallyn.com>
* Changes since 4.2.1:
- Documentation, error report and translations updates
- Replace path_max with 32
- User namespace support fixes/updates including:
- Correct sanity checks in newXidmap
- Fix building without subuid support
- Add /etc/subuid support for UID matching
- Support subuid for nonlocal users
- Default to 65536 subuid allocations
- Respect -r
- Check for range overflows
- Add tests from svn tree
- Use AC_CHECK_SIZEOF for uid_t size checks
- Accomodate missing /etc and login.defs
- Support FORCE_SHADOW
- Be more robust in hostile environment
- Allow removing a primary group
- Clear passwords on __pw_dup errors
- Memory leak fix in commonio_update and get_map_ranges
- Fix resource leak in syslog_sg
- Fix user busy error at userdel
- Support set/clear lastlog record via lastlog command
- Add --no-create-home as longopt for -M
- Fix signal races
- Reduce syslog priority of common usage events
2013-08-25 Nicolas François <nicolas.francois@centraliens.net>
* src/vipw.c: After waitpid(), use errno only if waitpid returned

View File

@@ -2,7 +2,5 @@
EXTRA_DIST = NEWS README TODO shadow.spec.in
AUTOMAKE_OPTIONS = 1.5 dist-bzip2 foreign
SUBDIRS = po man libmisc lib src \
contrib doc etc

142
NEWS
View File

@@ -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>).

22
README
View File

@@ -2,18 +2,13 @@ Shadow SITES
============
Homepage
http://pkg-shadow.alioth.debian.org/
http://github.com/shadow-maint/shadow
FTP site
ftp://pkg-shadow.alioth.debian.org/pub/pkg-shadow
Issue tracker
http://github.com/shadow-maint/shadow/issues
SVN repository
anonymous read only access: svn://svn.debian.org/pkg-shadow/upstream
SVN web interface
http://svn.debian.org/wsvn/pkg-shadow/upstream
or
http://svn.debian.org/viewsvn/pkg-shadow/upstream
Releases
https://github.com/shadow-maint/shadow/releases
Mailing lists
for general discuss: pkg-shadow-devel@lists.alioth.debian.org
@@ -44,6 +39,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>
@@ -55,6 +51,7 @@ Brian R. Gaeke <brg@dgate.org>
Calle Karlsson <ckn@kash.se>
Chip Rosenthal <chip@unicom.com>
Chris Evans <lady0110@sable.ox.ac.uk>
Chris Lamb <chris@chris-lamb.co.uk>
Cristian Gafton <gafton@sorosis.ro>
Dan Walsh <dwalsh@redhat.com>
Darcy Boese <possum@chardonnay.niagara.com>
@@ -62,6 +59,7 @@ Dave Hagewood <admin@arrowweb.com>
David A. Holland <dholland@hcs.harvard.edu>
David Frey <David.Frey@lugs.ch>
Ed Carp <ecarp@netcom.com>
Eric W. Biederman" <ebiederm@xmission.com>
Floody <flood@evcom.net>
Frank Denis <j@4u.net>
George Kraft IV <gk4@us.ibm.com>
@@ -117,5 +115,7 @@ Maintainers
===========
Tomasz Kłoczko <kloczek@pld.org.pl> (2000-2007)
Nicolas François <nicolas.francois@centraliens.net> (2007-now)
Nicolas François <nicolas.francois@centraliens.net> (2007-2014)
Serge E. Hallyn <serge@hallyn.com> (2014-now)
Christian Brauner <christian@brauner.io> (2019-now)

View File

@@ -1,6 +1,9 @@
dnl Process this file with autoconf to produce a configure script.
AC_INIT
AM_INIT_AUTOMAKE(shadow, 4.3)
AC_PREREQ([2.64])
AC_INIT([shadow], [4.7], [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])
AC_CONFIG_HEADERS([config.h])
dnl Some hacks...
@@ -31,7 +34,7 @@ AC_HEADER_STDBOOL
AC_CHECK_HEADERS(errno.h fcntl.h limits.h unistd.h sys/time.h utmp.h \
utmpx.h termios.h termio.h sgtty.h sys/ioctl.h syslog.h paths.h \
utime.h ulimit.h sys/resource.h gshadow.h lastlog.h \
utime.h ulimit.h sys/capability.h sys/resource.h gshadow.h lastlog.h \
locale.h rpc/key_prot.h netdb.h acl/libacl.h attr/libattr.h \
attr/error_context.h)
@@ -71,12 +74,6 @@ AC_CHECK_MEMBERS([struct utmp.ut_type,
struct utmp.ut_time,
struct utmp.ut_xtime,
struct utmp.ut_tv],,,[[#include <utmp.h>]])
dnl There are dependencies:
dnl If UTMPX has to be used, the utmp structure shall have a ut_id field.
if test "$ac_cv_header_utmpx_h" = "yes" &&
test "$ac_cv_member_struct_utmp_ut_id" != "yes"; then
AC_MSG_ERROR(Systems with UTMPX and no ut_id field in the utmp structure are not supported)
fi
AC_CHECK_MEMBERS([struct utmpx.ut_name,
struct utmpx.ut_host,
@@ -113,6 +110,9 @@ AC_REPLACE_FUNCS(sgetgrent sgetpwent sgetspent)
AC_REPLACE_FUNCS(snprintf strcasecmp strdup strerror strstr)
AC_CHECK_FUNC(setpgrp)
AC_CHECK_FUNC(secure_getenv, [AC_DEFINE(HAS_SECURE_GETENV,
1,
[Defined to 1 if you have the declaration of 'secure_getenv'])])
if test "$ac_cv_header_shadow_h" = "yes"; then
AC_CACHE_CHECK(for working shadow group support,
@@ -253,6 +253,9 @@ AC_ARG_WITH(audit,
AC_ARG_WITH(libpam,
[AC_HELP_STRING([--with-libpam], [use libpam for PAM support @<:@default=yes if found@:>@])],
[with_libpam=$withval], [with_libpam=maybe])
AC_ARG_WITH(btrfs,
[AC_HELP_STRING([--with-btrfs], [add BtrFS support @<:@default=yes if found@:>@])],
[with_btrfs=$withval], [with_btrfs=maybe])
AC_ARG_WITH(selinux,
[AC_HELP_STRING([--with-selinux], [use SELinux support @<:@default=yes if found@:>@])],
[with_selinux=$withval], [with_selinux=maybe])
@@ -277,6 +280,9 @@ AC_ARG_WITH(sha-crypt,
AC_ARG_WITH(nscd,
[AC_HELP_STRING([--with-nscd], [enable support for nscd @<:@default=yes@:>@])],
[with_nscd=$withval], [with_nscd=yes])
AC_ARG_WITH(sssd,
[AC_HELP_STRING([--with-sssd], [enable support for flushing sssd caches @<:@default=yes@:>@])],
[with_sssd=$withval], [with_sssd=yes])
AC_ARG_WITH(group-name-max-length,
[AC_HELP_STRING([--with-group-name-max-length], [set max group name length @<:@default=16@:>@])],
[with_group_name_max_length=$withval], [with_group_name_max_length=yes])
@@ -301,6 +307,12 @@ if test "$with_nscd" = "yes"; then
[AC_MSG_ERROR([posix_spawn is needed for nscd support])])
fi
if test "$with_sssd" = "yes"; then
AC_CHECK_FUNC(posix_spawn,
[AC_DEFINE(USE_SSSD, 1, [Define to support flushing of sssd caches])],
[AC_MSG_ERROR([posix_spawn is needed for sssd support])])
fi
dnl Check for some functions in libc first, only if not found check for
dnl other libraries. This should prevent linking libnsl if not really
dnl needed (Linux glibc, Irix), but still link it if needed (Solaris).
@@ -321,11 +333,12 @@ 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.
JH_CHECK_XML_CATALOG([-//OASIS//DTD DocBook XML V4.1.2//EN],
[DocBook XML DTD V4.1.2], [], enable_man=no)
JH_CHECK_XML_CATALOG([-//OASIS//DTD DocBook XML V4.5//EN],
[DocBook XML DTD V4.5], [], enable_man=no)
JH_CHECK_XML_CATALOG([http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl],
[DocBook XSL Stylesheets >= 1.70.1], [], enable_man=no)
fi
@@ -449,6 +462,20 @@ if test "$with_libcrack" = "yes"; then
AC_DEFINE(HAVE_LIBCRACK_PW, 1, [Defined if it includes *Pw functions.]))
fi
if test "$with_btrfs" != "no"; then
AC_CHECK_HEADERS([sys/statfs.h linux/magic.h linux/btrfs_tree.h], \
[btrfs_headers="yes"], [btrfs_headers="no"])
if test "$btrfs_headers$with_btrfs" = "noyes" ; then
AC_MSG_ERROR([One of sys/statfs.h linux/magic.h linux/btrfs_tree.h is missing])
fi
if test "$btrfs_headers" = "yes" ; then
AC_DEFINE(WITH_BTRFS, 1, [Build shadow with BtrFS support])
with_btrfs="yes"
fi
fi
AM_CONDITIONAL(WITH_BTRFS, test x$with_btrfs = xyes)
AC_SUBST(LIBSELINUX)
AC_SUBST(LIBSEMANAGE)
if test "$with_selinux" != "no"; then
@@ -563,7 +590,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)
@@ -593,6 +620,19 @@ if test "$enable_acct_tools_setuid" != "no"; then
fi
AM_CONDITIONAL(ACCT_TOOLS_SETUID, test "x$enable_acct_tools_setuid" = "xyes")
AC_ARG_WITH(fcaps,
[AC_HELP_STRING([--with-fcaps], [use file capabilities instead of suid binaries for newuidmap/newgidmap @<:@default=no@:>@])],
[with_fcaps=$withval], [with_fcaps=no])
AM_CONDITIONAL(FCAPS, test "x$with_fcaps" = "xyes")
if test "x$with_fcaps" = "xyes"; then
AC_CHECK_PROGS(capcmd, "setcap")
if test "x$capcmd" = "x" ; then
AC_MSG_ERROR([setcap command not available])
fi
fi
AC_SUBST(LIBSKEY)
AC_SUBST(LIBMD)
if test "$with_skey" = "yes"; then
@@ -668,6 +708,7 @@ if test "$with_libpam" = "yes"; then
echo " suid account management tools: $enable_acct_tools_setuid"
fi
echo " SELinux support: $with_selinux"
echo " BtrFS support: $with_btrfs"
echo " ACL support: $with_acl"
echo " Extended Attributes support: $with_attr"
echo " tcb support (incomplete): $with_tcb"
@@ -675,5 +716,7 @@ echo " shadow group support: $enable_shadowgrp"
echo " S/Key support: $with_skey"
echo " SHA passwords encryption: $with_sha_crypt"
echo " nscd support: $with_nscd"
echo " sssd support: $with_sssd"
echo " subordinate IDs support: $enable_subids"
echo " use file caps: $with_fcaps"
echo

View File

@@ -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.
**

View File

@@ -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.
**

View File

@@ -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

View File

@@ -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).

View File

@@ -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

View File

@@ -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

15
docs/index.html Normal file
View File

@@ -0,0 +1,15 @@
<HEAD>
<title>shadow - Welcome</title>
</head>
<body>
<h2> Welcome!</h2>
<p> This is the shadow tool suite home page. </p>
<p>
You can find releases <a href="https://github.com/shadow-maint/shadow/releases">here</a>.
</p>
<p>
Raise issues, request features, and report bugs <a href="https://github.com/shadow-maint/shadow/issues">here</a>.
</p>
</body>

View File

@@ -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
#

View File

@@ -30,6 +30,8 @@ libshadow_la_SOURCES = \
lockpw.c \
nscd.c \
nscd.h \
sssd.c \
sssd.h \
pam_defs.h \
port.c \
port.h \

View File

@@ -45,6 +45,7 @@
#include <stdio.h>
#include <signal.h>
#include "nscd.h"
#include "sssd.h"
#ifdef WITH_TCB
#include <tcb.h>
#endif /* WITH_TCB */
@@ -140,7 +141,7 @@ static int do_lock_file (const char *file, const char *lock, bool log)
int retval;
char buf[32];
fd = open (file, O_CREAT | O_EXCL | O_WRONLY, 0600);
fd = open (file, O_CREAT | O_TRUNC | O_WRONLY, 0600);
if (-1 == fd) {
if (log) {
(void) fprintf (stderr,
@@ -301,15 +302,12 @@ static int create_backup (const char *backup, FILE * fp)
struct utimbuf ub;
FILE *bkfp;
int c;
mode_t mask;
if (fstat (fileno (fp), &sb) != 0) {
return -1;
}
mask = umask (077);
bkfp = fopen (backup, "w");
(void) umask (mask);
bkfp = fopen_set_perms (backup, "w", &sb);
if (NULL == bkfp) {
return -1;
}
@@ -366,6 +364,7 @@ static void free_linked_list (struct commonio_db *db)
int commonio_setname (struct commonio_db *db, const char *name)
{
snprintf (db->filename, sizeof (db->filename), "%s", name);
db->setname = true;
return 1;
}
@@ -378,57 +377,77 @@ 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 = 0;
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) {
goto cleanup_ENOMEM;
}
lock = (char*)malloc(lock_file_len);
if(lock == NULL) {
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)
{
int i;
#ifdef HAVE_LCKPWDF
/*
* only if the system libc has a real lckpwdf() - the one from
* Only if the system libc has a real lckpwdf() - the one from
* lockpw.c calls us and would cause infinite recursion!
* It is also not used with the prefix option.
*/
/*
* Call lckpwdf() on the first lock.
* If it succeeds, call *_lock() only once
* (no retries, it should always succeed).
*/
if (0 == lock_count) {
if (lckpwdf () == -1) {
if (geteuid () != 0) {
(void) fprintf (stderr,
"%s: Permission denied.\n",
Prog);
if (!db->setname) {
/*
* Call lckpwdf() on the first lock.
* If it succeeds, call *_lock() only once
* (no retries, it should always succeed).
*/
if (0 == lock_count) {
if (lckpwdf () == -1) {
if (geteuid () != 0) {
(void) fprintf (stderr,
"%s: Permission denied.\n",
Prog);
}
return 0; /* failure */
}
return 0; /* failure */
}
}
if (commonio_lock_nowait (db, true) != 0) {
return 1; /* success */
}
if (commonio_lock_nowait (db, true) != 0) {
return 1; /* success */
}
ulckpwdf ();
return 0; /* failure */
#else /* !HAVE_LCKPWDF */
int i;
ulckpwdf ();
return 0; /* failure */
}
#endif /* !HAVE_LCKPWDF */
/*
* lckpwdf() not used - do it the old way.
@@ -455,7 +474,6 @@ int commonio_lock (struct commonio_db *db)
}
}
return 0; /* failure */
#endif /* !HAVE_LCKPWDF */
}
static void dec_lock_count (void)
@@ -468,6 +486,7 @@ static void dec_lock_count (void)
if (nscd_need_reload) {
nscd_flush_cache ("passwd");
nscd_flush_cache ("group");
sssd_flush_cache (SSSD_DB_PASSWD | SSSD_DB_GROUP);
nscd_need_reload = false;
}
#ifdef HAVE_LCKPWDF
@@ -754,16 +773,16 @@ commonio_sort (struct commonio_db *db, int (*cmp) (const void *, const void *))
for (ptr = db->head;
(NULL != ptr)
#if KEEP_NIS_AT_END
&& (NULL != ptr->line)
&& ( ('+' != ptr->line[0])
&& ('-' != ptr->line[0]))
&& ((NULL == ptr->line)
|| (('+' != ptr->line[0])
&& ('-' != ptr->line[0])))
#endif
;
ptr = ptr->next) {
n++;
}
#if KEEP_NIS_AT_END
if ((NULL != ptr) && (NULL != ptr->line)) {
if (NULL != ptr) {
nis = ptr;
}
#endif
@@ -908,7 +927,6 @@ static int write_all (const struct commonio_db *db)
int commonio_close (struct commonio_db *db)
/*@requires notnull db->fp@*/
{
char buf[1024];
int errors = 0;
@@ -921,8 +939,10 @@ int commonio_close (struct commonio_db *db)
db->isopen = false;
if (!db->changed || db->readonly) {
(void) fclose (db->fp);
db->fp = NULL;
if (NULL != db->fp) {
(void) fclose (db->fp);
db->fp = NULL;
}
goto success;
}

View File

@@ -31,8 +31,8 @@
*/
/* $Id$ */
#ifndef _COMMONIO_H
#define _COMMONIO_H
#ifndef COMMONIO_H
#define COMMONIO_H
#ifdef WITH_SELINUX
#include <selinux/selinux.h>
@@ -143,6 +143,7 @@ struct commonio_db {
bool isopen:1;
bool locked:1;
bool readonly:1;
bool setname:1;
};
extern int commonio_setname (struct commonio_db *, const char *);

View File

@@ -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);
@@ -382,4 +382,10 @@ extern char *strerror ();
# endif
#endif
#ifdef HAVE_SECURE_GETENV
# define shadow_getenv(name) secure_getenv(name)
# else
# define shadow_getenv(name) getenv(name)
#endif
#endif /* _DEFINES_H_ */

View File

@@ -92,6 +92,7 @@ static struct itemdef def_table[] = {
{"GID_MIN", NULL},
{"HUSHLOGIN_FILE", NULL},
{"KILLCHAR", NULL},
{"LASTLOG_UID_MAX", NULL},
{"LOGIN_RETRIES", NULL},
{"LOGIN_TIMEOUT", NULL},
{"LOG_OK_LOGINS", NULL},
@@ -148,13 +149,14 @@ static struct itemdef knowndef_table[] = {
#ifdef USE_PAM
PAMDEFS
#endif
{NULL, NULL}
};
#ifndef LOGINDEFS
#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 */
@@ -423,6 +425,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
*

View File

@@ -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

View File

@@ -44,22 +44,19 @@
*/
int getulong (const char *numstr, /*@out@*/unsigned long int *result)
{
long long int val;
unsigned long int val;
char *endptr;
errno = 0;
val = strtoll (numstr, &endptr, 0);
val = strtoul (numstr, &endptr, 0);
if ( ('\0' == *numstr)
|| ('\0' != *endptr)
|| (ERANGE == errno)
/*@+ignoresigns@*/
|| (val != (unsigned long int)val)
/*@=ignoresigns@*/
) {
return 0;
}
*result = (unsigned long int)val;
*result = val;
return 1;
}

View File

@@ -139,7 +139,8 @@ static /*@owned@*/struct commonio_db group_db = {
false, /* changed */
false, /* isopen */
false, /* locked */
false /* readonly */
false, /* readonly */
false /* setname */
};
int gr_setdbname (const char *filename)
@@ -338,8 +339,7 @@ static /*@null@*/struct commonio_entry *merge_group_entries (
errno = ENOMEM;
return NULL;
}
snprintf(new_line, new_line_len, "%s\n%s", gr1->line, gr2->line);
new_line[new_line_len] = '\0';
snprintf(new_line, new_line_len + 1, "%s\n%s", gr1->line, gr2->line);
/* Concatenate the 2 list of members */
for (i=0; NULL != gptr1->gr_mem[i]; i++);

View File

@@ -72,6 +72,14 @@ extern int expire (const struct passwd *, /*@null@*/const struct spwd *);
/* isexpired.c */
extern int isexpired (const struct passwd *, /*@null@*/const struct spwd *);
/* btrfs.c */
#ifdef WITH_BTRFS
extern int btrfs_create_subvolume(const char *path);
extern int btrfs_remove_subvolume(const char *path);
extern int btrfs_is_subvolume(const char *path);
extern int is_btrfs(const char *path);
#endif
/* basename() renamed to Basename() to avoid libc name space confusion */
/* basename.c */
extern /*@observer@*/const char *Basename (const char *str);
@@ -179,6 +187,9 @@ extern int getrange (char *range,
unsigned long *min, bool *has_min,
unsigned long *max, bool *has_max);
/* gettime.c */
extern time_t gettime ();
/* get_uid.c */
extern int get_uid (const char *uidstr, uid_t *uid);
@@ -251,9 +262,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 */
@@ -271,6 +282,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 *);
@@ -398,17 +424,19 @@ extern int set_filesize_limit (int blocks);
extern int user_busy (const char *name, uid_t uid);
/* utmp.c */
#ifndef USE_UTMPX
extern /*@null@*/struct utmp *get_current_utmp (void);
extern struct utmp *prepare_utmp (const char *name,
const char *line,
const char *host,
/*@null@*/const struct utmp *ut);
extern int setutmp (struct utmp *ut);
#ifdef USE_UTMPX
#else
extern /*@null@*/struct utmpx *get_current_utmp (void);
extern struct utmpx *prepare_utmpx (const char *name,
const char *line,
const char *host,
/*@null@*/const struct utmp *ut);
/*@null@*/const struct utmpx *ut);
extern int setutmpx (struct utmpx *utx);
#endif /* USE_UTMPX */

View File

@@ -114,7 +114,8 @@ static struct commonio_db passwd_db = {
false, /* changed */
false, /* isopen */
false, /* locked */
false /* readonly */
false, /* readonly */
false /* setname */
};
int pw_setdbname (const char *filename)

View File

@@ -40,6 +40,7 @@
#include "prototypes.h"
#include "defines.h"
#include "commonio.h"
#include "getdef.h"
#include "sgroupio.h"
/*@null@*/ /*@only@*/struct sgrp *__sgr_dup (const struct sgrp *sgent)
@@ -237,7 +238,8 @@ static struct commonio_db gshadow_db = {
false, /* changed */
false, /* isopen */
false, /* locked */
false /* readonly */
false, /* readonly */
false /* setname */
};
int sgr_setdbname (const char *filename)

View File

@@ -40,6 +40,7 @@
#include <shadow.h>
#include <stdio.h>
#include "commonio.h"
#include "getdef.h"
#include "shadowio.h"
#ifdef WITH_TCB
#include <tcb.h>
@@ -113,7 +114,8 @@ static struct commonio_db shadow_db = {
false, /* changed */
false, /* isopen */
false, /* locked */
false /* readonly */
false, /* readonly */
false /* setname */
};
int spw_setdbname (const char *filename)

View File

@@ -31,8 +31,8 @@
*/
/* $Id$ */
#ifndef _SHADOWIO_H
#define _SHADOWIO_H
#ifndef SHADOWIO_H
#define SHADOWIO_H
#include "defines.h"

View File

@@ -68,8 +68,10 @@ int run_command (const char *cmd, const char *argv[],
do {
wpid = waitpid (pid, status, 0);
if ((pid_t)-1 == wpid && errno == ECHILD)
break;
} while ( ((pid_t)-1 == wpid && errno == EINTR)
|| (wpid != pid));
|| ((pid_t)-1 != wpid && wpid != pid));
if ((pid_t)-1 == wpid) {
fprintf (stderr, "%s: waitpid (status: %d): %s\n",

75
lib/sssd.c Normal file
View File

@@ -0,0 +1,75 @@
/* Author: Peter Vrabec <pvrabec@redhat.com> */
#include <config.h>
#ifdef USE_SSSD
#include <stdio.h>
#include <sys/wait.h>
#include <sys/types.h>
#include "exitcodes.h"
#include "defines.h"
#include "prototypes.h"
#include "sssd.h"
#define MSG_SSSD_FLUSH_CACHE_FAILED "%s: Failed to flush the sssd cache.\n"
int sssd_flush_cache (int dbflags)
{
int status, code, rv;
const char *cmd = "/usr/sbin/sss_cache";
char *sss_cache_args = NULL;
const char *spawnedArgs[] = {"sss_cache", NULL, NULL};
const char *spawnedEnv[] = {NULL};
int i = 0;
sss_cache_args = malloc(4);
if (sss_cache_args == NULL) {
return -1;
}
sss_cache_args[i++] = '-';
if (dbflags & SSSD_DB_PASSWD) {
sss_cache_args[i++] = 'U';
}
if (dbflags & SSSD_DB_GROUP) {
sss_cache_args[i++] = 'G';
}
sss_cache_args[i++] = '\0';
if (i == 2) {
/* Neither passwd nor group, nothing to do */
free(sss_cache_args);
return 0;
}
spawnedArgs[1] = sss_cache_args;
rv = run_command (cmd, spawnedArgs, spawnedEnv, &status);
free(sss_cache_args);
if (rv != 0) {
/* run_command writes its own more detailed message. */
(void) fprintf (stderr, _(MSG_SSSD_FLUSH_CACHE_FAILED), Prog);
return -1;
}
code = WEXITSTATUS (status);
if (!WIFEXITED (status)) {
(void) fprintf (stderr,
_("%s: sss_cache did not terminate normally (signal %d)\n"),
Prog, WTERMSIG (status));
return -1;
} else if (code == E_CMD_NOTFOUND) {
/* sss_cache is not installed, or it is installed but uses an
interpreter that is missing. Probably the former. */
return 0;
} else if (code != 0) {
(void) fprintf (stderr, _("%s: sss_cache exited with status %d\n"),
Prog, code);
(void) fprintf (stderr, _(MSG_SSSD_FLUSH_CACHE_FAILED), Prog);
return -1;
}
return 0;
}
#else /* USE_SSSD */
extern int errno; /* warning: ANSI C forbids an empty source file */
#endif /* USE_SSSD */

17
lib/sssd.h Normal file
View File

@@ -0,0 +1,17 @@
#ifndef _SSSD_H_
#define _SSSD_H_
#define SSSD_DB_PASSWD 0x001
#define SSSD_DB_GROUP 0x002
/*
* sssd_flush_cache - flush specified service buffer in sssd cache
*/
#ifdef USE_SSSD
extern int sssd_flush_cache (int dbflags);
#else
#define sssd_flush_cache(service) (0)
#endif
#endif

View File

@@ -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,
@@ -550,7 +550,8 @@ static struct commonio_db subordinate_uid_db = {
false, /* changed */
false, /* isopen */
false, /* locked */
false /* readonly */
false, /* readonly */
false /* setname */
};
int sub_uid_setdbname (const char *filename)
@@ -631,7 +632,8 @@ static struct commonio_db subordinate_gid_db = {
false, /* changed */
false, /* isopen */
false, /* locked */
false /* readonly */
false, /* readonly */
false /* setname */
};
int sub_gid_setdbname (const char *filename)

View File

@@ -1,7 +1,7 @@
EXTRA_DIST = .indent.pro xgetXXbyYY.c
INCLUDES = -I$(top_srcdir)/lib
AM_CPPFLAGS = -I$(top_srcdir)/lib
noinst_LIBRARIES = libmisc.a
@@ -31,6 +31,7 @@ libmisc_a_SOURCES = \
getdate.y \
getgr_nam_gid.c \
getrange.c \
gettime.c \
hushed.c \
idmapping.h \
idmapping.c \
@@ -43,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 \
@@ -70,3 +72,8 @@ libmisc_a_SOURCES = \
xgetspnam.c \
xmalloc.c \
yesno.c
if WITH_BTRFS
libmisc_a_SOURCES += btrfs.c
endif

111
libmisc/btrfs.c Normal file
View File

@@ -0,0 +1,111 @@
#include <linux/btrfs_tree.h>
#include <linux/magic.h>
#include <sys/statfs.h>
#include <stdbool.h>
#include "prototypes.h"
static bool path_exists(const char *p)
{
int ret;
struct stat sb;
return stat(p, &sb) == 0;
}
static const char *btrfs_cmd(void)
{
const char *btrfs_paths[] = {"/sbin/btrfs",
"/bin/btrfs", "/usr/sbin/btrfs", "/usr/bin/btrfs", NULL};
const char *p;
int i;
for (i = 0, p = btrfs_paths[i]; p; i++, p = btrfs_paths[i])
if (path_exists(p))
return p;
return NULL;
}
static int run_btrfs_subvolume_cmd(const char *subcmd, const char *arg1, const char *arg2)
{
int status = 0;
const char *cmd = btrfs_cmd();
const char *argv[] = {
"btrfs",
"subvolume",
subcmd,
arg1,
arg2,
NULL
};
if (access(cmd, X_OK)) {
return 1;
}
if (run_command(cmd, argv, NULL, &status))
return -1;
return status;
}
int btrfs_create_subvolume(const char *path)
{
return run_btrfs_subvolume_cmd("create", path, NULL);
}
int btrfs_remove_subvolume(const char *path)
{
return run_btrfs_subvolume_cmd("delete", "-C", path);
}
/* Adapted from btrfsprogs */
/*
* This intentionally duplicates btrfs_util_is_subvolume_fd() instead of opening
* a file descriptor and calling it, because fstat() and fstatfs() don't accept
* file descriptors opened with O_PATH on old kernels (before v3.6 and before
* v3.12, respectively), but stat() and statfs() can be called on a path that
* the user doesn't have read or write permissions to.
*
* returns:
* 1 - btrfs subvolume
* 0 - not btrfs subvolume
* -1 - error
*/
int btrfs_is_subvolume(const char *path)
{
struct stat st;
int ret;
ret = is_btrfs(path);
if (ret <= 0)
return ret;
ret = stat(path, &st);
if (ret == -1)
return -1;
if (st.st_ino != BTRFS_FIRST_FREE_OBJECTID || !S_ISDIR(st.st_mode)) {
return 0;
}
return 1;
}
/* Adapted from btrfsprogs */
int is_btrfs(const char *path)
{
struct statfs sfs;
int ret;
ret = statfs(path, &sfs);
if (ret == -1)
return -1;
return sfs.f_type == BTRFS_SUPER_MAGIC;
}

View File

@@ -50,7 +50,7 @@ static bool is_listed (const char *cfgin, const char *tty, bool def);
static bool is_listed (const char *cfgin, const char *tty, bool def)
{
FILE *fp;
char buf[200], *s;
char buf[1024], *s;
const char *cons;
/*
@@ -70,7 +70,8 @@ static bool is_listed (const char *cfgin, const char *tty, bool def)
if (*cons != '/') {
char *pbuf;
strcpy (buf, cons);
strncpy (buf, cons, sizeof (buf));
buf[sizeof (buf) - 1] = '\0';
pbuf = &buf[0];
while ((s = strtok (pbuf, ":")) != NULL) {
if (strcmp (s, tty) == 0) {

View File

@@ -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.

View File

@@ -1,6 +1,7 @@
/*
* Copyright (c) 1991 - 1994, Julianne Frances Haugh
* Copyright (c) 2008 - 2011, Nicolas François
* Copyright (c) 2014, Red Hat, Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -38,6 +39,117 @@
#include "groupio.h"
#include "getdef.h"
/*
* get_ranges - Get the minimum and maximum ID ranges for the search
*
* This function will return the minimum and maximum ranges for IDs
*
* 0: The function completed successfully
* EINVAL: The provided ranges are impossible (such as maximum < minimum)
*
* preferred_min: The special-case minimum value for a specifically-
* requested ID, which may be lower than the standard min_id
*/
static int get_ranges (bool sys_group, gid_t *min_id, gid_t *max_id,
gid_t *preferred_min)
{
gid_t gid_def_max = 0;
if (sys_group) {
/* System groups */
/* A requested ID is allowed to be below the autoselect range */
*preferred_min = (gid_t) 1;
/* Get the minimum ID range from login.defs or default to 101 */
*min_id = (gid_t) getdef_ulong ("SYS_GID_MIN", 101UL);
/*
* If SYS_GID_MAX is unspecified, we should assume it to be one
* less than the GID_MIN (which is reserved for non-system accounts)
*/
gid_def_max = (gid_t) getdef_ulong ("GID_MIN", 1000UL) - 1;
*max_id = (gid_t) getdef_ulong ("SYS_GID_MAX",
(unsigned long) gid_def_max);
/* Check that the ranges make sense */
if (*max_id < *min_id) {
(void) fprintf (stderr,
_("%s: Invalid configuration: SYS_GID_MIN (%lu), "
"GID_MIN (%lu), SYS_GID_MAX (%lu)\n"),
Prog, (unsigned long) *min_id,
getdef_ulong ("GID_MIN", 1000UL),
(unsigned long) *max_id);
return EINVAL;
}
} else {
/* Non-system groups */
/* Get the values from login.defs or use reasonable defaults */
*min_id = (gid_t) getdef_ulong ("GID_MIN", 1000UL);
*max_id = (gid_t) getdef_ulong ("GID_MAX", 60000UL);
/*
* The preferred minimum should match the standard ID minimum
* for non-system groups.
*/
*preferred_min = *min_id;
/* Check that the ranges make sense */
if (*max_id < *min_id) {
(void) fprintf (stderr,
_("%s: Invalid configuration: GID_MIN (%lu), "
"GID_MAX (%lu)\n"),
Prog, (unsigned long) *min_id,
(unsigned long) *max_id);
return EINVAL;
}
}
return 0;
}
/*
* check_gid - See if the requested GID is available
*
* On success, return 0
* If the ID is in use, return EEXIST
* If the ID is outside the range, return ERANGE
* In other cases, return errno from getgrgid()
*/
static int check_gid (const gid_t gid,
const gid_t gid_min,
const gid_t gid_max,
bool *used_gids)
{
/* First test that the preferred ID is in the range */
if (gid < gid_min || gid > gid_max) {
return ERANGE;
}
/*
* Check whether we already detected this GID
* using the gr_next() loop
*/
if (used_gids != NULL && used_gids[gid]) {
return EEXIST;
}
/* Check if the GID exists according to NSS */
errno = 0;
if (prefix_getgrgid (gid) != NULL) {
return EEXIST;
} else {
/* getgrgid() was NULL
* we have to ignore errors as temporary
* failures of remote user identity services
* would completely block user/group creation
*/
}
/* If we've made it here, the GID must be available */
return 0;
}
/*
* find_new_gid - Find a new unused GID.
*
@@ -49,161 +161,338 @@
* Return 0 on success, -1 if no unused GIDs are available.
*/
int find_new_gid (bool sys_group,
gid_t *gid,
/*@null@*/gid_t const *preferred_gid)
gid_t *gid,
/*@null@*/gid_t const *preferred_gid)
{
const struct group *grp;
gid_t gid_min, gid_max, group_id;
bool *used_gids;
const struct group *grp;
gid_t gid_min, gid_max, preferred_min;
gid_t group_id, id;
gid_t lowest_found, highest_found;
int result;
int nospam = 0;
assert (gid != NULL);
assert(gid != NULL);
if (!sys_group) {
gid_min = (gid_t) getdef_ulong ("GID_MIN", 1000UL);
gid_max = (gid_t) getdef_ulong ("GID_MAX", 60000UL);
if (gid_max < gid_min) {
(void) fprintf (stderr,
_("%s: Invalid configuration: GID_MIN (%lu), GID_MAX (%lu)\n"),
Prog, (unsigned long) gid_min, (unsigned long) gid_max);
return -1;
}
} else {
gid_min = (gid_t) getdef_ulong ("SYS_GID_MIN", 101UL);
gid_max = (gid_t) getdef_ulong ("GID_MIN", 1000UL) - 1;
gid_max = (gid_t) getdef_ulong ("SYS_GID_MAX", (unsigned long) gid_max);
if (gid_max < gid_min) {
(void) fprintf (stderr,
_("%s: Invalid configuration: SYS_GID_MIN (%lu), GID_MIN (%lu), SYS_GID_MAX (%lu)\n"),
Prog, (unsigned long) gid_min, getdef_ulong ("GID_MIN", 1000UL), (unsigned long) gid_max);
/*
* First, figure out what ID range is appropriate for
* automatic assignment
*/
result = get_ranges (sys_group, &gid_min, &gid_max, &preferred_min);
if (result == EINVAL) {
return -1;
}
/* Check if the preferred GID is available */
if (preferred_gid) {
result = check_gid (*preferred_gid, preferred_min, gid_max, NULL);
if (result == 0) {
/*
* Make sure the GID isn't queued for use already
*/
if (gr_locate_gid (*preferred_gid) == NULL) {
*gid = *preferred_gid;
return 0;
}
/*
* gr_locate_gid() found the GID in an as-yet uncommitted
* entry. We'll proceed below and auto-set a GID.
*/
} else if (result == EEXIST || result == ERANGE) {
/*
* Continue on below. At this time, we won't
* treat these two cases differently.
*/
} else {
/*
* An unexpected error occurred. We should report
* this and fail the group creation.
* This differs from the automatic creation
* behavior below, since if a specific GID was
* requested and generated an error, the user is
* more likely to want to stop and address the
* issue.
*/
fprintf (stderr,
_("%s: Encountered error attempting to use "
"preferred GID: %s\n"),
Prog, strerror (result));
return -1;
}
}
/*
* Search the entire group file,
* looking for the next unused value.
*
* We first check the local database with gr_rewind/gr_next to find
* all local values that are in use.
*
* We then compare the next free value to all databases (local and
* remote) and iterate until we find a free one. If there are free
* values beyond the lowest (system groups) or highest (non-system
* groups), we will prefer those and avoid potentially reclaiming a
* deleted group (which can be a security issue, since it may grant
* access to files belonging to that former group).
*
* If there are no GIDs available at the end of the search, we will
* have no choice but to iterate through the range looking for gaps.
*
*/
/* Create an array to hold all of the discovered GIDs */
used_gids = malloc (sizeof (bool) * (gid_max +1));
if (NULL == used_gids) {
fprintf (stderr,
_("%s: failed to allocate memory: %s\n"),
Prog, strerror (errno));
_("%s: failed to allocate memory: %s\n"),
Prog, strerror (errno));
return -1;
}
memset (used_gids, false, sizeof (bool) * (gid_max + 1));
if ( (NULL != preferred_gid)
&& (*preferred_gid >= gid_min)
&& (*preferred_gid <= gid_max)
/* Check if the user exists according to NSS */
&& (getgrgid (*preferred_gid) == NULL)
/* Check also the local database in case of uncommitted
* changes */
&& (gr_locate_gid (*preferred_gid) == NULL)) {
*gid = *preferred_gid;
free (used_gids);
return 0;
}
/*
* Search the entire group file,
* looking for the largest unused value.
*
* We check the list of groups according to NSS (setgrent/getgrent),
* but we also check the local database (gr_rewind/gr_next) in case
* some groups were created but the changes were not committed yet.
*/
if (sys_group) {
gid_t id;
/* setgrent / getgrent / endgrent can be very slow with
* LDAP configurations (and many accounts).
* Since there is a limited amount of IDs to be tested
* for system accounts, we just check the existence
* of IDs with getgrgid.
/* First look for the lowest and highest value in the local database */
(void) gr_rewind ();
highest_found = gid_min;
lowest_found = gid_max;
while ((grp = gr_next ()) != NULL) {
/*
* Does this entry have a lower GID than the lowest we've found
* so far?
*/
group_id = gid_max;
for (id = gid_max; id >= gid_min; id--) {
if (getgrgid (id) != NULL) {
group_id = id - 1;
used_gids[id] = true;
}
if ((grp->gr_gid <= lowest_found) && (grp->gr_gid >= gid_min)) {
lowest_found = grp->gr_gid - 1;
}
(void) gr_rewind ();
while ((grp = gr_next ()) != NULL) {
if ((grp->gr_gid <= group_id) && (grp->gr_gid >= gid_min)) {
group_id = grp->gr_gid - 1;
}
/* create index of used GIDs */
if (grp->gr_gid <= gid_max) {
used_gids[grp->gr_gid] = true;
}
/*
* Does this entry have a higher GID than the highest we've found
* so far?
*/
if ((grp->gr_gid >= highest_found) && (grp->gr_gid <= gid_max)) {
highest_found = grp->gr_gid + 1;
}
} else {
group_id = gid_min;
setgrent ();
while ((grp = getgrent ()) != NULL) {
if ((grp->gr_gid >= group_id) && (grp->gr_gid <= gid_max)) {
group_id = grp->gr_gid + 1;
}
/* create index of used GIDs */
if (grp->gr_gid <= gid_max) {
used_gids[grp->gr_gid] = true;
}
}
endgrent ();
(void) gr_rewind ();
while ((grp = gr_next ()) != NULL) {
if ((grp->gr_gid >= group_id) && (grp->gr_gid <= gid_max)) {
group_id = grp->gr_gid + 1;
}
/* create index of used GIDs */
if (grp->gr_gid <= gid_max) {
used_gids[grp->gr_gid] = true;
}
/* create index of used GIDs */
if (grp->gr_gid >= gid_min
&& grp->gr_gid <= gid_max) {
used_gids[grp->gr_gid] = true;
}
}
/*
* If a group (resp. system group) with GID equal to GID_MAX (resp.
* GID_MIN) exists, the above algorithm will give us GID_MAX+1
* (resp. GID_MIN-1) even if not unique. Search for the first free
* GID starting with GID_MIN (resp. GID_MAX).
*/
if (sys_group) {
if (group_id < gid_min) {
for (group_id = gid_max; group_id >= gid_min; group_id--) {
if (false == used_gids[group_id]) {
break;
}
}
if (group_id < gid_min) {
fprintf (stderr,
_("%s: Can't get unique system GID (no more available GIDs)\n"),
Prog);
SYSLOG ((LOG_WARN,
"no more available GID on the system"));
/*
* For system groups, we want to start from the
* top of the range and work downwards.
*/
/*
* At the conclusion of the gr_next() search, we will either
* have a presumed-free GID or we will be at GID_MIN - 1.
*/
if (lowest_found < gid_min) {
/*
* In this case, a GID is in use at GID_MIN.
*
* We will reset the search to GID_MAX and proceed down
* through all the GIDs (skipping those we detected with
* used_gids) for a free one. It is a known issue that
* this may result in reusing a previously-deleted GID,
* so administrators should be instructed to use this
* auto-detection with care (and prefer to assign GIDs
* explicitly).
*/
lowest_found = gid_max;
}
/* Search through all of the IDs in the range */
for (id = lowest_found; id >= gid_min; id--) {
result = check_gid (id, gid_min, gid_max, used_gids);
if (result == 0) {
/* This GID is available. Return it. */
*gid = id;
free (used_gids);
return -1;
return 0;
} else if (result == EEXIST) {
/* This GID is in use, we'll continue to the next */
} else {
/*
* An unexpected error occurred.
*
* Only report it the first time to avoid spamming
* the logs
*
*/
if (!nospam) {
fprintf (stderr,
_("%s: Can't get unique system GID (%s). "
"Suppressing additional messages.\n"),
Prog, strerror (result));
SYSLOG ((LOG_ERR,
"Error checking available GIDs: %s",
strerror (result)));
nospam = 1;
}
/*
* We will continue anyway. Hopefully a later GID
* will work properly.
*/
}
}
} else {
if (group_id > gid_max) {
for (group_id = gid_min; group_id <= gid_max; group_id++) {
if (false == used_gids[group_id]) {
break;
/*
* If we get all the way through the loop, try again from GID_MAX,
* unless that was where we previously started. (NOTE: the worst-case
* scenario here is that we will run through (GID_MAX - GID_MIN - 1)
* cycles *again* if we fall into this case with lowest_found as
* GID_MAX - 1, all groups in the range in use and maintained by
* network services such as LDAP.)
*/
if (lowest_found != gid_max) {
for (id = gid_max; id >= gid_min; id--) {
result = check_gid (id, gid_min, gid_max, used_gids);
if (result == 0) {
/* This GID is available. Return it. */
*gid = id;
free (used_gids);
return 0;
} else if (result == EEXIST) {
/* This GID is in use, we'll continue to the next */
} else {
/*
* An unexpected error occurred.
*
* Only report it the first time to avoid spamming
* the logs
*
*/
if (!nospam) {
fprintf (stderr,
_("%s: Can't get unique system GID (%s). "
"Suppressing additional messages.\n"),
Prog, strerror (result));
SYSLOG ((LOG_ERR,
"Error checking available GIDs: %s",
strerror (result)));
nospam = 1;
}
/*
* We will continue anyway. Hopefully a later GID
* will work properly.
*/
}
}
if (group_id > gid_max) {
fprintf (stderr,
_("%s: Can't get unique GID (no more available GIDs)\n"),
Prog);
SYSLOG ((LOG_WARN, "no more available GID on the system"));
}
} else { /* !sys_group */
/*
* For non-system groups, we want to start from the
* bottom of the range and work upwards.
*/
/*
* At the conclusion of the gr_next() search, we will either
* have a presumed-free GID or we will be at GID_MAX + 1.
*/
if (highest_found > gid_max) {
/*
* In this case, a GID is in use at GID_MAX.
*
* We will reset the search to GID_MIN and proceed up
* through all the GIDs (skipping those we detected with
* used_gids) for a free one. It is a known issue that
* this may result in reusing a previously-deleted GID,
* so administrators should be instructed to use this
* auto-detection with care (and prefer to assign GIDs
* explicitly).
*/
highest_found = gid_min;
}
/* Search through all of the IDs in the range */
for (id = highest_found; id <= gid_max; id++) {
result = check_gid (id, gid_min, gid_max, used_gids);
if (result == 0) {
/* This GID is available. Return it. */
*gid = id;
free (used_gids);
return -1;
return 0;
} else if (result == EEXIST) {
/* This GID is in use, we'll continue to the next */
} else {
/*
* An unexpected error occurred.
*
* Only report it the first time to avoid spamming
* the logs
*
*/
if (!nospam) {
fprintf (stderr,
_("%s: Can't get unique GID (%s). "
"Suppressing additional messages.\n"),
Prog, strerror (result));
SYSLOG ((LOG_ERR,
"Error checking available GIDs: %s",
strerror (result)));
nospam = 1;
}
/*
* We will continue anyway. Hopefully a later GID
* will work properly.
*/
}
}
/*
* If we get all the way through the loop, try again from GID_MIN,
* unless that was where we previously started. (NOTE: the worst-case
* scenario here is that we will run through (GID_MAX - GID_MIN - 1)
* cycles *again* if we fall into this case with highest_found as
* GID_MIN + 1, all groups in the range in use and maintained by
* network services such as LDAP.)
*/
if (highest_found != gid_min) {
for (id = gid_min; id <= gid_max; id++) {
result = check_gid (id, gid_min, gid_max, used_gids);
if (result == 0) {
/* This GID is available. Return it. */
*gid = id;
free (used_gids);
return 0;
} else if (result == EEXIST) {
/* This GID is in use, we'll continue to the next */
} else {
/*
* An unexpected error occurred.
*
* Only report it the first time to avoid spamming
* the logs
*
*/
if (!nospam) {
fprintf (stderr,
_("%s: Can't get unique GID (%s). "
"Suppressing additional messages.\n"),
Prog, strerror (result));
SYSLOG ((LOG_ERR,
"Error checking available GIDs: %s",
strerror (result)));
nospam = 1;
}
/*
* We will continue anyway. Hopefully a later GID
* will work properly.
*/
}
}
}
}
/* The code reached here and found no available IDs in the range */
fprintf (stderr,
_("%s: Can't get unique GID (no more available GIDs)\n"),
Prog);
SYSLOG ((LOG_WARN, "no more available GIDs on the system"));
free (used_gids);
*gid = group_id;
return 0;
return -1;
}

View File

@@ -1,6 +1,7 @@
/*
* Copyright (c) 1991 - 1994, Julianne Frances Haugh
* Copyright (c) 2008 - 2011, Nicolas François
* Copyright (c) 2014, Red Hat, Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -38,6 +39,117 @@
#include "pwio.h"
#include "getdef.h"
/*
* get_ranges - Get the minimum and maximum ID ranges for the search
*
* This function will return the minimum and maximum ranges for IDs
*
* 0: The function completed successfully
* EINVAL: The provided ranges are impossible (such as maximum < minimum)
*
* preferred_min: The special-case minimum value for a specifically-
* requested ID, which may be lower than the standard min_id
*/
static int get_ranges (bool sys_user, uid_t *min_id, uid_t *max_id,
uid_t *preferred_min)
{
uid_t uid_def_max = 0;
if (sys_user) {
/* System users */
/* A requested ID is allowed to be below the autoselect range */
*preferred_min = (uid_t) 1;
/* Get the minimum ID range from login.defs or default to 101 */
*min_id = (uid_t) getdef_ulong ("SYS_UID_MIN", 101UL);
/*
* If SYS_UID_MAX is unspecified, we should assume it to be one
* less than the UID_MIN (which is reserved for non-system accounts)
*/
uid_def_max = (uid_t) getdef_ulong ("UID_MIN", 1000UL) - 1;
*max_id = (uid_t) getdef_ulong ("SYS_UID_MAX",
(unsigned long) uid_def_max);
/* Check that the ranges make sense */
if (*max_id < *min_id) {
(void) fprintf (stderr,
_("%s: Invalid configuration: SYS_UID_MIN (%lu), "
"UID_MIN (%lu), SYS_UID_MAX (%lu)\n"),
Prog, (unsigned long) *min_id,
getdef_ulong ("UID_MIN", 1000UL),
(unsigned long) *max_id);
return EINVAL;
}
} else {
/* Non-system users */
/* Get the values from login.defs or use reasonable defaults */
*min_id = (uid_t) getdef_ulong ("UID_MIN", 1000UL);
*max_id = (uid_t) getdef_ulong ("UID_MAX", 60000UL);
/*
* The preferred minimum should match the standard ID minimum
* for non-system users.
*/
*preferred_min = *min_id;
/* Check that the ranges make sense */
if (*max_id < *min_id) {
(void) fprintf (stderr,
_("%s: Invalid configuration: UID_MIN (%lu), "
"UID_MAX (%lu)\n"),
Prog, (unsigned long) *min_id,
(unsigned long) *max_id);
return EINVAL;
}
}
return 0;
}
/*
* check_uid - See if the requested UID is available
*
* On success, return 0
* If the ID is in use, return EEXIST
* If the ID is outside the range, return ERANGE
* In other cases, return errno from getpwuid()
*/
static int check_uid(const uid_t uid,
const uid_t uid_min,
const uid_t uid_max,
bool *used_uids)
{
/* First test that the preferred ID is in the range */
if (uid < uid_min || uid > uid_max) {
return ERANGE;
}
/*
* Check whether we already detected this UID
* using the pw_next() loop
*/
if (used_uids != NULL && used_uids[uid]) {
return EEXIST;
}
/* Check if the UID exists according to NSS */
errno = 0;
if (prefix_getpwuid(uid) != NULL) {
return EEXIST;
} else {
/* getpwuid() was NULL
* we have to ignore errors as temporary
* failures of remote user identity services
* would completely block user/group creation
*/
}
/* If we've made it here, the UID must be available */
return 0;
}
/*
* find_new_uid - Find a new unused UID.
*
@@ -48,162 +160,339 @@
*
* Return 0 on success, -1 if no unused UIDs are available.
*/
int find_new_uid (bool sys_user,
uid_t *uid,
/*@null@*/uid_t const *preferred_uid)
int find_new_uid(bool sys_user,
uid_t *uid,
/*@null@*/uid_t const *preferred_uid)
{
const struct passwd *pwd;
uid_t uid_min, uid_max, user_id;
bool *used_uids;
const struct passwd *pwd;
uid_t uid_min, uid_max, preferred_min;
uid_t user_id, id;
uid_t lowest_found, highest_found;
int result;
int nospam = 0;
assert (uid != NULL);
if (!sys_user) {
uid_min = (uid_t) getdef_ulong ("UID_MIN", 1000UL);
uid_max = (uid_t) getdef_ulong ("UID_MAX", 60000UL);
if (uid_max < uid_min) {
(void) fprintf (stderr,
_("%s: Invalid configuration: UID_MIN (%lu), UID_MAX (%lu)\n"),
Prog, (unsigned long) uid_min, (unsigned long) uid_max);
return -1;
}
} else {
uid_min = (uid_t) getdef_ulong ("SYS_UID_MIN", 101UL);
uid_max = (uid_t) getdef_ulong ("UID_MIN", 1000UL) - 1;
uid_max = (uid_t) getdef_ulong ("SYS_UID_MAX", (unsigned long) uid_max);
if (uid_max < uid_min) {
(void) fprintf (stderr,
_("%s: Invalid configuration: SYS_UID_MIN (%lu), UID_MIN (%lu), SYS_UID_MAX (%lu)\n"),
Prog, (unsigned long) uid_min, getdef_ulong ("UID_MIN", 1000UL), (unsigned long) uid_max);
/*
* First, figure out what ID range is appropriate for
* automatic assignment
*/
result = get_ranges (sys_user, &uid_min, &uid_max, &preferred_min);
if (result == EINVAL) {
return -1;
}
/* Check if the preferred UID is available */
if (preferred_uid) {
result = check_uid (*preferred_uid, preferred_min, uid_max, NULL);
if (result == 0) {
/*
* Make sure the UID isn't queued for use already
*/
if (pw_locate_uid (*preferred_uid) == NULL) {
*uid = *preferred_uid;
return 0;
}
/*
* pw_locate_uid() found the UID in an as-yet uncommitted
* entry. We'll proceed below and auto-set an UID.
*/
} else if (result == EEXIST || result == ERANGE) {
/*
* Continue on below. At this time, we won't
* treat these two cases differently.
*/
} else {
/*
* An unexpected error occurred. We should report
* this and fail the user creation.
* This differs from the automatic creation
* behavior below, since if a specific UID was
* requested and generated an error, the user is
* more likely to want to stop and address the
* issue.
*/
fprintf (stderr,
_("%s: Encountered error attempting to use "
"preferred UID: %s\n"),
Prog, strerror (result));
return -1;
}
}
/*
* Search the entire passwd file,
* looking for the next unused value.
*
* We first check the local database with pw_rewind/pw_next to find
* all local values that are in use.
*
* We then compare the next free value to all databases (local and
* remote) and iterate until we find a free one. If there are free
* values beyond the lowest (system users) or highest (non-system
* users), we will prefer those and avoid potentially reclaiming a
* deleted user (which can be a security issue, since it may grant
* access to files belonging to that former user).
*
* If there are no UIDs available at the end of the search, we will
* have no choice but to iterate through the range looking for gaps.
*
*/
/* Create an array to hold all of the discovered UIDs */
used_uids = malloc (sizeof (bool) * (uid_max +1));
if (NULL == used_uids) {
fprintf (stderr,
_("%s: failed to allocate memory: %s\n"),
Prog, strerror (errno));
_("%s: failed to allocate memory: %s\n"),
Prog, strerror (errno));
return -1;
}
memset (used_uids, false, sizeof (bool) * (uid_max + 1));
if ( (NULL != preferred_uid)
&& (*preferred_uid >= uid_min)
&& (*preferred_uid <= uid_max)
/* Check if the user exists according to NSS */
&& (getpwuid (*preferred_uid) == NULL)
/* Check also the local database in case of uncommitted
* changes */
&& (pw_locate_uid (*preferred_uid) == NULL)) {
*uid = *preferred_uid;
free (used_uids);
return 0;
}
/*
* Search the entire password file,
* looking for the largest unused value.
*
* We check the list of users according to NSS (setpwent/getpwent),
* but we also check the local database (pw_rewind/pw_next) in case
* some users were created but the changes were not committed yet.
*/
if (sys_user) {
uid_t id;
/* setpwent / getpwent / endpwent can be very slow with
* LDAP configurations (and many accounts).
* Since there is a limited amount of IDs to be tested
* for system accounts, we just check the existence
* of IDs with getpwuid.
/* First look for the lowest and highest value in the local database */
(void) pw_rewind ();
highest_found = uid_min;
lowest_found = uid_max;
while ((pwd = pw_next ()) != NULL) {
/*
* Does this entry have a lower UID than the lowest we've found
* so far?
*/
user_id = uid_max;
for (id = uid_max; id >= uid_min; id--) {
if (getpwuid (id) != NULL) {
user_id = id - 1;
used_uids[id] = true;
}
if ((pwd->pw_uid <= lowest_found) && (pwd->pw_uid >= uid_min)) {
lowest_found = pwd->pw_uid - 1;
}
(void) pw_rewind ();
while ((pwd = pw_next ()) != NULL) {
if ((pwd->pw_uid <= user_id) && (pwd->pw_uid >= uid_min)) {
user_id = pwd->pw_uid - 1;
}
/* create index of used UIDs */
if (pwd->pw_uid <= uid_max) {
used_uids[pwd->pw_uid] = true;
}
/*
* Does this entry have a higher UID than the highest we've found
* so far?
*/
if ((pwd->pw_uid >= highest_found) && (pwd->pw_uid <= uid_max)) {
highest_found = pwd->pw_uid + 1;
}
} else {
user_id = uid_min;
setpwent ();
while ((pwd = getpwent ()) != NULL) {
if ((pwd->pw_uid >= user_id) && (pwd->pw_uid <= uid_max)) {
user_id = pwd->pw_uid + 1;
}
/* create index of used UIDs */
if (pwd->pw_uid <= uid_max) {
used_uids[pwd->pw_uid] = true;
}
}
endpwent ();
(void) pw_rewind ();
while ((pwd = pw_next ()) != NULL) {
if ((pwd->pw_uid >= user_id) && (pwd->pw_uid <= uid_max)) {
user_id = pwd->pw_uid + 1;
}
/* create index of used UIDs */
if (pwd->pw_uid <= uid_max) {
used_uids[pwd->pw_uid] = true;
}
/* create index of used UIDs */
if (pwd->pw_uid >= uid_min
&& pwd->pw_uid <= uid_max) {
used_uids[pwd->pw_uid] = true;
}
}
/*
* If a user (resp. system user) with UID equal to UID_MAX (resp.
* UID_MIN) exists, the above algorithm will give us UID_MAX+1
* (resp. UID_MIN-1) even if not unique. Search for the first free
* UID starting with UID_MIN (resp. UID_MAX).
*/
if (sys_user) {
if (user_id < uid_min) {
for (user_id = uid_max; user_id >= uid_min; user_id--) {
if (false == used_uids[user_id]) {
break;
}
}
if (user_id < uid_min ) {
fprintf (stderr,
_("%s: Can't get unique system UID (no more available UIDs)\n"),
Prog);
SYSLOG ((LOG_WARN,
"no more available UID on the system"));
/*
* For system users, we want to start from the
* top of the range and work downwards.
*/
/*
* At the conclusion of the pw_next() search, we will either
* have a presumed-free UID or we will be at UID_MIN - 1.
*/
if (lowest_found < uid_min) {
/*
* In this case, an UID is in use at UID_MIN.
*
* We will reset the search to UID_MAX and proceed down
* through all the UIDs (skipping those we detected with
* used_uids) for a free one. It is a known issue that
* this may result in reusing a previously-deleted UID,
* so administrators should be instructed to use this
* auto-detection with care (and prefer to assign UIDs
* explicitly).
*/
lowest_found = uid_max;
}
/* Search through all of the IDs in the range */
for (id = lowest_found; id >= uid_min; id--) {
result = check_uid (id, uid_min, uid_max, used_uids);
if (result == 0) {
/* This UID is available. Return it. */
*uid = id;
free (used_uids);
return -1;
return 0;
} else if (result == EEXIST) {
/* This UID is in use, we'll continue to the next */
} else {
/*
* An unexpected error occurred.
*
* Only report it the first time to avoid spamming
* the logs
*
*/
if (!nospam) {
fprintf (stderr,
_("%s: Can't get unique system UID (%s). "
"Suppressing additional messages.\n"),
Prog, strerror (result));
SYSLOG ((LOG_ERR,
"Error checking available UIDs: %s",
strerror (result)));
nospam = 1;
}
/*
* We will continue anyway. Hopefully a later UID
* will work properly.
*/
}
}
} else {
if (user_id > uid_max) {
for (user_id = uid_min; user_id <= uid_max; user_id++) {
if (false == used_uids[user_id]) {
break;
/*
* If we get all the way through the loop, try again from UID_MAX,
* unless that was where we previously started. (NOTE: the worst-case
* scenario here is that we will run through (UID_MAX - UID_MIN - 1)
* cycles *again* if we fall into this case with lowest_found as
* UID_MAX - 1, all users in the range in use and maintained by
* network services such as LDAP.)
*/
if (lowest_found != uid_max) {
for (id = uid_max; id >= uid_min; id--) {
result = check_uid (id, uid_min, uid_max, used_uids);
if (result == 0) {
/* This UID is available. Return it. */
*uid = id;
free (used_uids);
return 0;
} else if (result == EEXIST) {
/* This UID is in use, we'll continue to the next */
} else {
/*
* An unexpected error occurred.
*
* Only report it the first time to avoid spamming
* the logs
*
*/
if (!nospam) {
fprintf (stderr,
_("%s: Can't get unique system UID (%s). "
"Suppressing additional messages.\n"),
Prog, strerror (result));
SYSLOG((LOG_ERR,
"Error checking available UIDs: %s",
strerror (result)));
nospam = 1;
}
/*
* We will continue anyway. Hopefully a later UID
* will work properly.
*/
}
}
if (user_id > uid_max) {
fprintf (stderr,
_("%s: Can't get unique UID (no more available UIDs)\n"),
Prog);
SYSLOG ((LOG_WARN, "no more available UID on the system"));
}
} else { /* !sys_user */
/*
* For non-system users, we want to start from the
* bottom of the range and work upwards.
*/
/*
* At the conclusion of the pw_next() search, we will either
* have a presumed-free UID or we will be at UID_MAX + 1.
*/
if (highest_found > uid_max) {
/*
* In this case, a UID is in use at UID_MAX.
*
* We will reset the search to UID_MIN and proceed up
* through all the UIDs (skipping those we detected with
* used_uids) for a free one. It is a known issue that
* this may result in reusing a previously-deleted UID,
* so administrators should be instructed to use this
* auto-detection with care (and prefer to assign UIDs
* explicitly).
*/
highest_found = uid_min;
}
/* Search through all of the IDs in the range */
for (id = highest_found; id <= uid_max; id++) {
result = check_uid (id, uid_min, uid_max, used_uids);
if (result == 0) {
/* This UID is available. Return it. */
*uid = id;
free (used_uids);
return -1;
return 0;
} else if (result == EEXIST) {
/* This UID is in use, we'll continue to the next */
} else {
/*
* An unexpected error occurred.
*
* Only report it the first time to avoid spamming
* the logs
*
*/
if (!nospam) {
fprintf (stderr,
_("%s: Can't get unique UID (%s). "
"Suppressing additional messages.\n"),
Prog, strerror (result));
SYSLOG ((LOG_ERR,
"Error checking available UIDs: %s",
strerror (result)));
nospam = 1;
}
/*
* We will continue anyway. Hopefully a later UID
* will work properly.
*/
}
}
/*
* If we get all the way through the loop, try again from UID_MIN,
* unless that was where we previously started. (NOTE: the worst-case
* scenario here is that we will run through (UID_MAX - UID_MIN - 1)
* cycles *again* if we fall into this case with highest_found as
* UID_MIN + 1, all users in the range in use and maintained by
* network services such as LDAP.)
*/
if (highest_found != uid_min) {
for (id = uid_min; id <= uid_max; id++) {
result = check_uid (id, uid_min, uid_max, used_uids);
if (result == 0) {
/* This UID is available. Return it. */
*uid = id;
free (used_uids);
return 0;
} else if (result == EEXIST) {
/* This UID is in use, we'll continue to the next */
} else {
/*
* An unexpected error occurred.
*
* Only report it the first time to avoid spamming
* the logs
*
*/
if (!nospam) {
fprintf (stderr,
_("%s: Can't get unique UID (%s). "
"Suppressing additional messages.\n"),
Prog, strerror (result));
SYSLOG ((LOG_ERR,
"Error checking available UIDs: %s",
strerror (result)));
nospam = 1;
}
/*
* We will continue anyway. Hopefully a later UID
* will work properly.
*/
}
}
}
}
/* The code reached here and found no available IDs in the range */
fprintf (stderr,
_("%s: Can't get unique UID (no more available UIDs)\n"),
Prog);
SYSLOG ((LOG_WARN, "no more available UIDs on the system"));
free (used_uids);
*uid = user_id;
return 0;
return -1;
}

View File

@@ -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,

89
libmisc/gettime.c Normal file
View File

@@ -0,0 +1,89 @@
/*
* Copyright (c) 2017, Chris Lamb
* 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 <errno.h>
#include <limits.h>
#include <stdio.h>
#include "defines.h"
#include "prototypes.h"
/*
* gettime() returns the time as the number of seconds since the Epoch
*
* Like time(), gettime() returns the time as the number of seconds since the
* Epoch, 1970-01-01 00:00:00 +0000 (UTC), except that if the SOURCE_DATE_EPOCH
* environment variable is exported it will use that instead.
*/
/*@observer@*/time_t gettime ()
{
char *endptr;
char *source_date_epoch;
time_t fallback;
unsigned long long epoch;
fallback = time (NULL);
source_date_epoch = shadow_getenv ("SOURCE_DATE_EPOCH");
if (!source_date_epoch)
return fallback;
errno = 0;
epoch = strtoull (source_date_epoch, &endptr, 10);
if ((errno == ERANGE && (epoch == ULLONG_MAX || epoch == 0))
|| (errno != 0 && epoch == 0)) {
fprintf (stderr,
_("Environment variable $SOURCE_DATE_EPOCH: strtoull: %s\n"),
strerror(errno));
} else if (endptr == source_date_epoch) {
fprintf (stderr,
_("Environment variable $SOURCE_DATE_EPOCH: No digits were found: %s\n"),
endptr);
} else if (*endptr != '\0') {
fprintf (stderr,
_("Environment variable $SOURCE_DATE_EPOCH: Trailing garbage: %s\n"),
endptr);
} else if (epoch > ULONG_MAX) {
fprintf (stderr,
_("Environment variable $SOURCE_DATE_EPOCH: value must be smaller than or equal to %lu but was found to be: %llu\n"),
ULONG_MAX, epoch);
} else if (epoch > fallback) {
fprintf (stderr,
_("Environment variable $SOURCE_DATE_EPOCH: value must be smaller than or equal to the current time (%lu) but was found to be: %llu\n"),
fallback, epoch);
} else {
/* Valid */
return (time_t)epoch;
}
return fallback;
}

View File

@@ -36,6 +36,10 @@
#include <stdio.h>
#include "prototypes.h"
#include "idmapping.h"
#include <sys/prctl.h>
#if HAVE_SYS_CAPABILITY_H
#include <sys/capability.h>
#endif
struct map_range *get_map_ranges(int ranges, int argc, char **argv)
{
@@ -83,6 +87,27 @@ struct map_range *get_map_ranges(int ranges, int argc, char **argv)
free(mappings);
return NULL;
}
if (ULONG_MAX - mapping->upper <= mapping->count || ULONG_MAX - mapping->lower <= mapping->count) {
fprintf(stderr, _( "%s: subuid overflow detected.\n"), Prog);
exit(EXIT_FAILURE);
}
if (mapping->upper > UINT_MAX ||
mapping->lower > UINT_MAX ||
mapping->count > UINT_MAX) {
fprintf(stderr, _( "%s: subuid overflow detected.\n"), Prog);
exit(EXIT_FAILURE);
}
if (mapping->lower + mapping->count > UINT_MAX ||
mapping->upper + mapping->count > UINT_MAX) {
fprintf(stderr, _( "%s: subuid overflow detected.\n"), Prog);
exit(EXIT_FAILURE);
}
if (mapping->lower + mapping->count < mapping->lower ||
mapping->upper + mapping->count < mapping->upper) {
/* this one really shouldn't be possible given previous checks */
fprintf(stderr, _( "%s: subuid overflow detected.\n"), Prog);
exit(EXIT_FAILURE);
}
}
return mappings;
}
@@ -98,9 +123,23 @@ struct map_range *get_map_ranges(int ranges, int argc, char **argv)
*/
#define ULONG_DIGITS ((((sizeof(unsigned long) * CHAR_BIT) + 9)/10)*3)
/*
* The ruid refers to the caller's uid and is used to reset the effective uid
* back to the callers real uid.
* This clutch mainly exists for setuid-based new{g,u}idmap binaries that are
* called in contexts where all capabilities other than the necessary
* CAP_SET{G,U}ID capabilities are dropped. Since the kernel will require
* assurance that the caller holds CAP_SYS_ADMIN over the target user namespace
* the only way it can confirm is in this case is if the effective uid is
* equivalent to the uid owning the target user namespace.
* Note, we only support this when a) new{g,u}idmap is not called by root and
* b) if the caller's uid and the uid retrieved via system appropriate means
* (shadow file or other) are identical. Specifically, this does not support
* when the root user calls the new{g,u}idmap binary for an unprivileged user.
* If this is wanted: use file capabilities!
*/
void write_mapping(int proc_dir_fd, int ranges, struct map_range *mappings,
const char *map_file)
const char *map_file, uid_t ruid)
{
int idx;
struct map_range *mapping;
@@ -108,6 +147,43 @@ void write_mapping(int proc_dir_fd, int ranges, struct map_range *mappings,
char *buf, *pos;
int fd;
#if HAVE_SYS_CAPABILITY_H
int cap;
struct __user_cap_header_struct hdr = {_LINUX_CAPABILITY_VERSION_3, 0};
struct __user_cap_data_struct data[2] = {{0}};
if (strcmp(map_file, "uid_map") == 0) {
cap = CAP_SETUID;
} else if (strcmp(map_file, "gid_map") == 0) {
cap = CAP_SETGID;
} else {
fprintf(stderr, _("%s: Invalid map file %s specified\n"), Prog, map_file);
exit(EXIT_FAILURE);
}
/* Align setuid- and fscaps-based new{g,u}idmap behavior. */
if (geteuid() == 0 && geteuid() != ruid) {
if (prctl(PR_SET_KEEPCAPS, 1, 0, 0, 0) < 0) {
fprintf(stderr, _("%s: Could not prctl(PR_SET_KEEPCAPS)\n"), Prog);
exit(EXIT_FAILURE);
}
if (seteuid(ruid) < 0) {
fprintf(stderr, _("%s: Could not seteuid to %d\n"), Prog, ruid);
exit(EXIT_FAILURE);
}
}
/* Lockdown new{g,u}idmap by dropping all unneeded capabilities. */
memset(data, 0, sizeof(data));
data[0].effective = CAP_TO_MASK(cap);
data[0].permitted = data[0].effective;
if (capset(&hdr, data) < 0) {
fprintf(stderr, _("%s: Could not set caps\n"), Prog);
exit(EXIT_FAILURE);
}
#endif
bufsize = ranges * ((ULONG_DIGITS + 1) * 3);
pos = buf = xmalloc(bufsize);
@@ -127,7 +203,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"),

View File

@@ -38,7 +38,7 @@ struct map_range {
extern struct map_range *get_map_ranges(int ranges, int argc, char **argv);
extern void write_mapping(int proc_dir_fd, int ranges,
struct map_range *mappings, const char *map_file);
struct map_range *mappings, const char *map_file, uid_t ruid);
#endif /* _ID_MAPPING_H_ */

View File

@@ -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)
{

343
libmisc/prefix_flag.c Normal file
View File

@@ -0,0 +1,343 @@
/*
* 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);
#ifdef ENABLE_SUBIDS
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);
#endif
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;
struct group *g;
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);
}
g = prefix_getgrnam (grname);
return g ? __gr_dup(g) : NULL;
}
else
return getgr_nam_gid(grname);
}

View File

@@ -40,7 +40,6 @@
#include "prototypes.h"
#include "defines.h"
#include <pwd.h>
extern time_t time (time_t *);
/*
* pwd_to_spwd - create entries for new spwd structure
@@ -66,7 +65,7 @@ struct spwd *pwd_to_spwd (const struct passwd *pw)
*/
sp.sp_min = 0;
sp.sp_max = (10000L * DAY) / SCALE;
sp.sp_lstchg = (long) time ((time_t *) 0) / SCALE;
sp.sp_lstchg = (long) gettime () / SCALE;
if (0 == sp.sp_lstchg) {
/* Better disable aging than requiring a password
* change */

View File

@@ -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 {

View File

@@ -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,

View File

@@ -170,6 +170,9 @@ static int user_busy_processes (const char *name, uid_t uid)
proc = opendir ("/proc");
if (proc == NULL) {
perror ("opendir /proc");
#ifdef ENABLE_SUBIDS
sub_uid_close();
#endif
return 0;
}
if (stat ("/", &sbroot) != 0) {

View File

@@ -35,10 +35,10 @@
#include "defines.h"
#include "prototypes.h"
#include <utmp.h>
#ifdef USE_UTMPX
#include <utmpx.h>
#else
#include <utmp.h>
#endif
#include <assert.h>
@@ -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
@@ -97,6 +97,7 @@ static bool is_my_tty (const char *tty)
*
* Return NULL if no entries exist in utmp for the current process.
*/
#ifndef USE_UTMPX
/*@null@*/ /*@only@*/struct utmp *get_current_utmp (void)
{
struct utmp *ut;
@@ -130,6 +131,36 @@ static bool is_my_tty (const char *tty)
return ret;
}
#else
/*@null@*/ /*@only*/struct utmpx *get_current_utmp(void)
{
struct utmpx *ut;
struct utmpx *ret = NULL;
setutxent ();
/* Find the utmpx entry for this PID. */
while ((ut = getutxent ()) != NULL) {
if ( (ut->ut_pid == getpid ())
&& ('\0' != ut->ut_id[0])
&& ( (LOGIN_PROCESS == ut->ut_type)
|| (USER_PROCESS == ut->ut_type))
&& is_my_tty (ut->ut_line)) {
break;
}
}
if (NULL != ut) {
ret = (struct utmpx *) xmalloc (sizeof (*ret));
memcpy (ret, ut, sizeof (*ret));
}
endutxent ();
return ret;
}
#endif
#ifndef USE_PAM
/*
@@ -166,6 +197,7 @@ static void updwtmpx (const char *filename, const struct utmpx *utx)
#endif /* ! USE_PAM */
#ifndef USE_UTMPX
/*
* prepare_utmp - prepare an utmp entry so that it can be logged in a
* utmp/wtmp file.
@@ -325,14 +357,14 @@ int setutmp (struct utmp *ut)
return err;
}
#ifdef USE_UTMPX
#else
/*
* prepare_utmpx - the UTMPX version for prepare_utmp
*/
/*@only@*/struct utmpx *prepare_utmpx (const char *name,
const char *line,
const char *host,
/*@null@*/const struct utmp *ut)
/*@null@*/const struct utmpx *ut)
{
struct timeval tv;
char *hostname = NULL;
@@ -398,7 +430,7 @@ int setutmp (struct utmp *ut)
struct sockaddr_in *sa =
(struct sockaddr_in *) info->ai_addr;
#ifdef HAVE_STRUCT_UTMPX_UT_ADDR
memcpy (utxent->ut_addr,
memcpy (&utxent->ut_addr,
&(sa->sin_addr),
MIN (sizeof (utxent->ut_addr),
sizeof (sa->sin_addr)));

View File

@@ -137,6 +137,7 @@ login_defs_v = \
ISSUE_FILE.xml \
KILLCHAR.xml \
LASTLOG_ENAB.xml \
LASTLOG_UID_MAX.xml \
LOGIN_RETRIES.xml \
LOGIN_STRING.xml \
LOGIN_TIMEOUT.xml \
@@ -215,5 +216,4 @@ $(man_MANS):
@echo "Error: you need to run configure with '--enable-man'"
@echo " in order to regenerate man pages."
@echo ""
@false
endif

10
man/README.md Normal file
View 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

View File

@@ -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>

View File

@@ -92,7 +92,7 @@
<para>
The default encryption algorithm can be defined for the system with
the <option>ENCRYPT_METHOD</option> variable of <filename>/etc/login.defs</filename>,
and can be overwiten with the <option>-e</option>,
and can be overwritten with the <option>-e</option>,
<option>-m</option>, or <option>-c</option> options.
</para>
<para>

View File

@@ -98,7 +98,7 @@
The default encryption algorithm can be defined for the system with
the <option>ENCRYPT_METHOD</option> or
<option>MD5_CRYPT_ENAB</option> variables of
<filename>/etc/login.defs</filename>, and can be overwitten with the
<filename>/etc/login.defs</filename>, and can be overwritten with the
<option>-e</option>, <option>-m</option>, or <option>-c</option>
options.
</para>
@@ -112,7 +112,7 @@
<phrase condition="pam">Except when PAM is used to encrypt the
passwords,</phrase> <command>chpasswd</command> first updates all the
passwords in memory, and then commits all the changes to disk if no
errors occured for any user.
errors occurred for any user.
</para>
<para condition="pam">
When PAM is used to encrypt the passwords (and update the passwords in

View File

@@ -42,12 +42,11 @@ man1/% man3/% man5/% man8/%: %.xml-config Makefile config.xml
-nonet http://docbook.sourceforge.net/release/xsl/current/manpages/profile-docbook.xsl $<
clean-local:
for d in man1 man3 man5 man8; do [ -d $$d ] && rmdir $$d; done
rm -rf man1 man3 man5 man8
else
$(man_MANS):
@echo you need to run configure with --enable-man to generate man pages
@false
endif
man8/grpconv.8 man8/grpunconv.8 man8/pwunconv.8: man8/pwconv.8

View File

@@ -14,7 +14,6 @@ include ../generate_mans.mak
else
$(man_MANS):
@echo you need to run configure with --enable-man to generate man pages
@false
endif
CLEANFILES = .xml2po.mo $(EXTRA_DIST) $(addsuffix .xml,$(EXTRA_DIST)) config.xml

View File

@@ -212,6 +212,23 @@
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>-P</option>, <option>--prefix</option>&nbsp;<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>

View File

@@ -109,6 +109,23 @@
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>-P</option>, <option>--prefix</option>&nbsp;<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>

View File

@@ -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).
@@ -106,7 +106,7 @@
<varlistentry>
<term><option>-a</option>, <option>--add</option>&nbsp;<replaceable>user_name</replaceable></term>
<listitem>
<para>Add an user to the group membership list.</para>
<para>Add a user to the group membership list.</para>
<para condition="gshadow">
If the <filename>/etc/gshadow</filename> file exist, and the
group has no entry in the <filename>/etc/gshadow</filename>

View File

@@ -186,6 +186,23 @@
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>-P</option>, <option>--prefix</option>&nbsp;<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>

View File

@@ -95,7 +95,7 @@
group (but group members do not need the password).
</para>
<para>
The password is used when an user who is not a member of the
The password is used when a user who is not a member of the
group wants to gain the permissions of this group (see
<citerefentry><refentrytitle>newgrp</refentrytitle>
<manvolnum>1</manvolnum></citerefentry>).
@@ -105,7 +105,7 @@
can gain the group permissions.
</para>
<para>
A password field which starts with a exclamation mark means
A password field which starts with an exclamation mark means
that the password is locked. The remaining characters on the
line represent the password field before the password was
locked.

View File

@@ -31,6 +31,7 @@
-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY LASTLOG_UID_MAX SYSTEM "login.defs.d/LASTLOG_UID_MAX.xml">
<!-- SHADOW-CONFIG-HERE -->
]>
<refentry id='lastlog.8'>
@@ -109,7 +110,7 @@
</term>
<listitem>
<para>
Clear lastlog record of an user. This option can be used only together
Clear lastlog record of a user. This option can be used only together
with <option>-u</option> (<option>--user</option>)).
</para>
</listitem>
@@ -140,7 +141,7 @@
</term>
<listitem>
<para>
Set lastlog record of an user to the current time. This option can be
Set lastlog record of a user to the current time. This option can be
used only together with <option>-u</option> (<option>--user</option>)).
</para>
</listitem>
@@ -200,6 +201,18 @@
</para>
</refsect1>
<refsect1 id='configuration'>
<title>CONFIGURATION</title>
<para>
The following configuration variables in
<filename>/etc/login.defs</filename> change the behavior of this
tool:
</para>
<variablelist>
&LASTLOG_UID_MAX;
</variablelist>
</refsect1>
<refsect1 id='files'>
<title>FILES</title>
<variablelist>

View File

@@ -108,7 +108,7 @@
<listitem><para>A: max address space (KB)</para></listitem>
<listitem><para>C: max core file size (KB)</para></listitem>
<listitem><para>D: max data size (KB)</para></listitem>
<listitem><para>F: maximum filesize (KB)</para></listitem>
<listitem><para>F: maximum file size (KB)</para></listitem>
<listitem><para>K: file creation mask, set by
<citerefentry>
<refentrytitle>umask</refentrytitle><manvolnum>2</manvolnum>
@@ -145,7 +145,7 @@
<para>
Be aware that after <emphasis remap='I'>username</emphasis> the rest
of the line is considered a limit string, thus comments are not
allowed. A invalid limits string will be rejected (not considered) by
allowed. An invalid limits string will be rejected (not considered) by
the <command>login</command> program.
</para>
@@ -163,12 +163,12 @@
</para>
<para>
If more than one line with limits for an user exist, only the first line for
If more than one line with limits for a user exist, only the first line for
this user will be considered.
</para>
<para>
If no lines are specified for an user, the last
If no lines are specified for a user, the last
<replaceable>@group</replaceable> line matching a group whose the
user is a member of will be considered, or the last line with
default limits if no groups contain the user.

View File

@@ -54,6 +54,7 @@
<!ENTITY ISSUE_FILE SYSTEM "login.defs.d/ISSUE_FILE.xml">
<!ENTITY KILLCHAR SYSTEM "login.defs.d/KILLCHAR.xml">
<!ENTITY LASTLOG_ENAB SYSTEM "login.defs.d/LASTLOG_ENAB.xml">
<!ENTITY LASTLOG_UID_MAX SYSTEM "login.defs.d/LASTLOG_UID_MAX.xml">
<!ENTITY LOG_OK_LOGINS SYSTEM "login.defs.d/LOG_OK_LOGINS.xml">
<!ENTITY LOG_UNKFAIL_ENAB SYSTEM "login.defs.d/LOG_UNKFAIL_ENAB.xml">
<!ENTITY LOGIN_RETRIES SYSTEM "login.defs.d/LOGIN_RETRIES.xml">
@@ -188,6 +189,7 @@
&ISSUE_FILE;
&KILLCHAR;
&LASTLOG_ENAB;
&LASTLOG_UID_MAX;
&LOG_OK_LOGINS;
&LOG_UNKFAIL_ENAB;
&LOGIN_RETRIES;
@@ -349,7 +351,12 @@
</listitem>
</varlistentry>
<!-- id: no variables -->
<!-- lastlog: no variables -->
<varlistentry>
<term>lastlog</term>
<listitem>
<para>LASTLOG_UID_MAX</para>
</listitem>
</varlistentry>
<varlistentry>
<term>login</term>
<listitem>
@@ -365,7 +372,7 @@
HUSHLOGIN_FILE
<phrase condition="no_pam">ISSUE_FILE</phrase>
KILLCHAR
<phrase condition="no_pam">LASTLOG_ENAB</phrase>
<phrase condition="no_pam">LASTLOG_ENAB LASTLOG_UID_MAX</phrase>
LOGIN_RETRIES
<phrase condition="no_pam">LOGIN_STRING</phrase>
LOGIN_TIMEOUT LOG_OK_LOGINS LOG_UNKFAIL_ENAB
@@ -474,6 +481,7 @@
<para>
CREATE_HOME
GID_MAX GID_MIN
LASTLOG_UID_MAX
MAIL_DIR MAX_MEMBERS_PER_GROUP
PASS_MAX_DAYS PASS_MIN_DAYS PASS_WARN_AGE
SUB_GID_COUNT SUB_GID_MAX SUB_GID_MIN
@@ -498,6 +506,7 @@
<term>usermod</term>
<listitem>
<para>
LASTLOG_UID_MAX
MAIL_DIR MAIL_FILE MAX_MEMBERS_PER_GROUP
<phrase condition="tcb">TCB_SYMLINKS USE_TCB</phrase>
</para>

View File

@@ -0,0 +1,46 @@
<!--
Copyright (c) 1991 - 1993, Julianne Frances Haugh
Copyright (c) 1991 - 1993, Chip Rosenthal
Copyright (c) 2007 - 2008, Nicolas François
Copyright (c) 2018, Red Hat, inc.
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.
-->
<varlistentry>
<term><option>LASTLOG_UID_MAX</option> (number)</term>
<listitem>
<para>
Highest user ID number for which the lastlog entries should be
updated. As higher user IDs are usually tracked by remote user
identity and authentication services there is no need to create
a huge sparse lastlog file for them.
</para>
<para>
No <option>LASTLOG_UID_MAX</option> option present in the configuration
means that there is no user ID limit for writing lastlog entries.
</para>
</listitem>
</varlistentry>

View File

@@ -42,7 +42,7 @@
<para>
The default values for <option>SUB_GID_MIN</option>,
<option>SUB_GID_MAX</option>, <option>SUB_GID_COUNT</option>
are respectively 100000, 600100000 and 10000.
are respectively 100000, 600100000 and 65536.
</para>
</listitem>
</varlistentry>

View File

@@ -42,7 +42,7 @@
<para>
The default values for <option>SUB_UID_MIN</option>,
<option>SUB_UID_MAX</option>, <option>SUB_UID_COUNT</option>
are respectively 100000, 600100000 and 10000.
are respectively 100000, 600100000 and 65536.
</para>
</listitem>
</varlistentry>

View File

@@ -80,7 +80,7 @@
<refsect1 id='description'>
<title>DESCRIPTION</title>
<para>
The <command>newgidmap</command> sets <filename>/proc/[pid]/gid_map</filename> based on it's
The <command>newgidmap</command> sets <filename>/proc/[pid]/gid_map</filename> based on its
command line arguments and the gids allowed in <filename>/etc/subgid</filename>.
Note that the root user is not exempted from the requirement for a valid
<filename>/etc/subgid</filename> entry.
@@ -93,7 +93,7 @@
<term>gid</term>
<listitem>
<para>
Begining of the range of GIDs inside the user namespace.
Beginning of the range of GIDs inside the user namespace.
</para>
</listitem>
</varlistentry>
@@ -101,7 +101,7 @@
<term>lowergid</term>
<listitem>
<para>
Begining of the range of GIDs outside the user namespace.
Beginning of the range of GIDs outside the user namespace.
</para>
</listitem>
</varlistentry>
@@ -145,7 +145,7 @@
<varlistentry>
<term><filename>/etc/subgid</filename></term>
<listitem>
<para>List of users subordinate group IDs.</para>
<para>List of user's subordinate group IDs.</para>
</listitem>
</varlistentry>
<varlistentry>

View File

@@ -80,7 +80,7 @@
<refsect1 id='description'>
<title>DESCRIPTION</title>
<para>
The <command>newuidmap</command> sets <filename>/proc/[pid]/uid_map</filename> based on it's
The <command>newuidmap</command> sets <filename>/proc/[pid]/uid_map</filename> based on its
command line arguments and the uids allowed in <filename>/etc/subuid</filename>.
Note that the root user is not exempted from the requirement for a valid
<filename>/etc/subuid</filename> entry.
@@ -93,7 +93,7 @@
<term>uid</term>
<listitem>
<para>
Begining of the range of UIDs inside the user namespace.
Beginning of the range of UIDs inside the user namespace.
</para>
</listitem>
</varlistentry>
@@ -101,7 +101,7 @@
<term>loweruid</term>
<listitem>
<para>
Begining of the range of UIDs outside the user namespace.
Beginning of the range of UIDs outside the user namespace.
</para>
</listitem>
</varlistentry>
@@ -144,7 +144,7 @@
<varlistentry>
<term><filename>/etc/subuid</filename></term>
<listitem>
<para>List of users subordinate user IDs.</para>
<para>List of user's subordinate user IDs.</para>
</listitem>
</varlistentry>
<varlistentry>

View File

@@ -115,7 +115,7 @@
</para>
<para>
It can be the name of a new user or the name of an existing
user (or an user created before by
user (or a user created before by
<command>newusers</command>). In case of an existing user,
the user's information will be changed, otherwise a new user
will be created.
@@ -142,7 +142,7 @@
This field is used to define the UID of the user.
</para>
<para>
If the field is empty, an new (unused) UID will be defined
If the field is empty, a new (unused) UID will be defined
automatically by <command>newusers</command>.
</para>
<para>
@@ -151,7 +151,7 @@
</para>
<para>
If this field contains the name of an existing user (or the
name of an user created before by
name of a user created before by
<command>newusers</command>), the UID of the specified user
will be used.
</para>

View File

@@ -89,7 +89,7 @@
<refsect1 id='history'>
<title>HISTORY</title>
<para>
The <command>nologin</command> command appearred in BSD 4.4.
The <command>nologin</command> command appeared in BSD 4.4.
</para>
</refsect1>
</refentry>

View File

@@ -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
@@ -164,7 +164,7 @@
</para>
<para>
You can find advices on how to choose a strong password on
You can find advice on how to choose a strong password on
http://en.wikipedia.org/wiki/Password_strength
</para>
</refsect2>
@@ -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>

View File

@@ -20,7 +20,7 @@
msgid ""
msgstr ""
"Project-Id-Version: shadow-man\n"
"POT-Creation-Date: 2013-08-23 01:54+0200\n"
"POT-Creation-Date: 2016-09-18 14:03-0500\n"
"PO-Revision-Date: 2013-08-23 01:35+0200\n"
"Last-Translator: Joe Hansen <joedalton2@yahoo.dk>\n"
"Language-Team: Danish <debian-l10n-danish@lists.debian.org>\n"
@@ -68,16 +68,15 @@ msgstr ""
#: useradd.8.xml:62(surname) suauth.5.xml:45(surname) su.1.xml:62(surname)
#: sg.1.xml:46(surname) shadow.5.xml:45(surname) shadow.3.xml:45(surname)
#: pwconv.8.xml:51(surname) pwck.8.xml:51(surname) porttime.5.xml:45(surname)
#: passwd.5.xml:45(surname) passwd.1.xml:52(surname)
#: newusers.8.xml:60(surname) newgrp.1.xml:46(surname)
#: logoutd.8.xml:45(surname) login.defs.5.xml:110(surname)
#: login.access.5.xml:46(surname) login.1.xml:78(surname)
#: limits.5.xml:47(surname) lastlog.8.xml:46(surname) grpck.8.xml:46(surname)
#: groups.1.xml:45(surname) groupmod.8.xml:46(surname)
#: passwd.5.xml:45(surname) passwd.1.xml:52(surname) newusers.8.xml:60(surname)
#: newgrp.1.xml:46(surname) logoutd.8.xml:45(surname)
#: login.defs.5.xml:110(surname) login.access.5.xml:46(surname)
#: login.1.xml:78(surname) limits.5.xml:47(surname) lastlog.8.xml:46(surname)
#: grpck.8.xml:46(surname) groups.1.xml:45(surname) groupmod.8.xml:46(surname)
#: groupmems.8.xml:49(surname) groupdel.8.xml:46(surname)
#: groupadd.8.xml:48(surname) gpasswd.1.xml:50(surname)
#: faillog.8.xml:45(surname) faillog.5.xml:45(surname)
#: expiry.1.xml:49(surname) chsh.1.xml:48(surname) chpasswd.8.xml:49(surname)
#: faillog.8.xml:45(surname) faillog.5.xml:45(surname) expiry.1.xml:49(surname)
#: chsh.1.xml:48(surname) chpasswd.8.xml:49(surname)
#: chgpasswd.8.xml:45(surname) chfn.1.xml:48(surname) chage.1.xml:46(surname)
msgid "Kłoczko"
msgstr ""
@@ -102,17 +101,16 @@ msgstr ""
#: useradd.8.xml:64(contrib) suauth.5.xml:47(contrib) su.1.xml:64(contrib)
#: sg.1.xml:48(contrib) shadow.5.xml:47(contrib) shadow.3.xml:47(contrib)
#: pwconv.8.xml:53(contrib) pwck.8.xml:53(contrib) porttime.5.xml:47(contrib)
#: passwd.5.xml:47(contrib) passwd.1.xml:54(contrib)
#: newusers.8.xml:62(contrib) newgrp.1.xml:48(contrib)
#: logoutd.8.xml:47(contrib) login.defs.5.xml:112(contrib)
#: login.access.5.xml:48(contrib) login.1.xml:80(contrib)
#: limits.5.xml:49(contrib) lastlog.8.xml:48(contrib) grpck.8.xml:48(contrib)
#: groups.1.xml:47(contrib) groupmod.8.xml:48(contrib)
#: passwd.5.xml:47(contrib) passwd.1.xml:54(contrib) newusers.8.xml:62(contrib)
#: newgrp.1.xml:48(contrib) logoutd.8.xml:47(contrib)
#: login.defs.5.xml:112(contrib) login.access.5.xml:48(contrib)
#: login.1.xml:80(contrib) limits.5.xml:49(contrib) lastlog.8.xml:48(contrib)
#: grpck.8.xml:48(contrib) groups.1.xml:47(contrib) groupmod.8.xml:48(contrib)
#: groupmems.8.xml:51(contrib) groupdel.8.xml:48(contrib)
#: groupadd.8.xml:50(contrib) gpasswd.1.xml:52(contrib)
#: faillog.8.xml:47(contrib) faillog.5.xml:47(contrib)
#: expiry.1.xml:51(contrib) chsh.1.xml:50(contrib) chpasswd.8.xml:51(contrib)
#: chfn.1.xml:50(contrib) chage.1.xml:48(contrib)
#: faillog.8.xml:47(contrib) faillog.5.xml:47(contrib) expiry.1.xml:51(contrib)
#: chsh.1.xml:50(contrib) chpasswd.8.xml:51(contrib) chfn.1.xml:50(contrib)
#: chage.1.xml:48(contrib)
msgid "shadow-utils maintainer, 2000 - 2007"
msgstr ""
@@ -146,14 +144,13 @@ msgstr ""
#: newusers.8.xml:66(surname) newgrp.1.xml:52(surname)
#: logoutd.8.xml:51(surname) login.defs.5.xml:116(surname)
#: login.access.5.xml:52(surname) login.1.xml:84(surname)
#: limits.5.xml:53(surname) lastlog.8.xml:52(surname)
#: gshadow.5.xml:39(surname) grpck.8.xml:52(surname) groups.1.xml:51(surname)
#: groupmod.8.xml:52(surname) groupmems.8.xml:55(surname)
#: groupdel.8.xml:52(surname) groupadd.8.xml:54(surname)
#: gpasswd.1.xml:56(surname) faillog.8.xml:51(surname)
#: faillog.5.xml:51(surname) expiry.1.xml:55(surname) chsh.1.xml:54(surname)
#: chpasswd.8.xml:55(surname) chgpasswd.8.xml:51(surname)
#: chfn.1.xml:54(surname) chage.1.xml:52(surname)
#: limits.5.xml:53(surname) lastlog.8.xml:52(surname) gshadow.5.xml:39(surname)
#: grpck.8.xml:52(surname) groups.1.xml:51(surname) groupmod.8.xml:52(surname)
#: groupmems.8.xml:55(surname) groupdel.8.xml:52(surname)
#: groupadd.8.xml:54(surname) gpasswd.1.xml:56(surname)
#: faillog.8.xml:51(surname) faillog.5.xml:51(surname) expiry.1.xml:55(surname)
#: chsh.1.xml:54(surname) chpasswd.8.xml:55(surname)
#: chgpasswd.8.xml:51(surname) chfn.1.xml:54(surname) chage.1.xml:52(surname)
msgid "François"
msgstr ""
@@ -182,14 +179,13 @@ msgstr ""
#: newusers.8.xml:68(contrib) newgrp.1.xml:54(contrib)
#: logoutd.8.xml:53(contrib) login.defs.5.xml:118(contrib)
#: login.access.5.xml:54(contrib) login.1.xml:86(contrib)
#: limits.5.xml:55(contrib) lastlog.8.xml:54(contrib)
#: gshadow.5.xml:42(contrib) grpck.8.xml:54(contrib) groups.1.xml:53(contrib)
#: groupmod.8.xml:54(contrib) groupmems.8.xml:57(contrib)
#: groupdel.8.xml:54(contrib) groupadd.8.xml:56(contrib)
#: gpasswd.1.xml:58(contrib) faillog.8.xml:53(contrib)
#: faillog.5.xml:53(contrib) expiry.1.xml:57(contrib) chsh.1.xml:56(contrib)
#: chpasswd.8.xml:57(contrib) chgpasswd.8.xml:53(contrib)
#: chfn.1.xml:56(contrib) chage.1.xml:54(contrib)
#: limits.5.xml:55(contrib) lastlog.8.xml:54(contrib) gshadow.5.xml:42(contrib)
#: grpck.8.xml:54(contrib) groups.1.xml:53(contrib) groupmod.8.xml:54(contrib)
#: groupmems.8.xml:57(contrib) groupdel.8.xml:54(contrib)
#: groupadd.8.xml:56(contrib) gpasswd.1.xml:58(contrib)
#: faillog.8.xml:53(contrib) faillog.5.xml:53(contrib) expiry.1.xml:57(contrib)
#: chsh.1.xml:56(contrib) chpasswd.8.xml:57(contrib)
#: chgpasswd.8.xml:53(contrib) chfn.1.xml:56(contrib) chage.1.xml:54(contrib)
msgid "shadow-utils maintainer, 2007 - now"
msgstr ""
@@ -261,14 +257,13 @@ msgstr ""
#: useradd.8.xml:88(replaceable) useradd.8.xml:100(replaceable)
#: su.1.xml:88(replaceable) pwconv.8.xml:81(replaceable)
#: pwconv.8.xml:87(replaceable) pwconv.8.xml:93(replaceable)
#: pwconv.8.xml:99(replaceable) pwck.8.xml:77(arg)
#: passwd.1.xml:79(replaceable) newusers.8.xml:87(replaceable)
#: lastlog.8.xml:73(replaceable) grpck.8.xml:72(arg)
#: groupmod.8.xml:73(replaceable) groupdel.8.xml:73(replaceable)
#: groupadd.8.xml:75(replaceable) faillog.8.xml:72(replaceable)
#: chsh.1.xml:75(replaceable) chpasswd.8.xml:76(replaceable)
#: chgpasswd.8.xml:72(replaceable) chfn.1.xml:75(replaceable)
#: chage.1.xml:72(replaceable)
#: pwconv.8.xml:99(replaceable) pwck.8.xml:77(arg) passwd.1.xml:79(replaceable)
#: newusers.8.xml:87(replaceable) lastlog.8.xml:73(replaceable)
#: grpck.8.xml:72(arg) groupmod.8.xml:73(replaceable)
#: groupdel.8.xml:73(replaceable) groupadd.8.xml:75(replaceable)
#: faillog.8.xml:72(replaceable) chsh.1.xml:75(replaceable)
#: chpasswd.8.xml:76(replaceable) chgpasswd.8.xml:72(replaceable)
#: chfn.1.xml:75(replaceable) chage.1.xml:72(replaceable)
msgid "options"
msgstr "tilvalg"
@@ -317,11 +312,10 @@ msgstr ""
#: useradd.8.xml:124(title) su.1.xml:145(title) pwconv.8.xml:187(title)
#: pwck.8.xml:176(title) passwd.1.xml:174(title) newusers.8.xml:265(title)
#: login.1.xml:210(title) lastlog.8.xml:91(title) grpck.8.xml:147(title)
#: groupmod.8.xml:89(title) groupmems.8.xml:100(title)
#: groupdel.8.xml:88(title) groupadd.8.xml:93(title) gpasswd.1.xml:134(title)
#: faillog.8.xml:89(title) expiry.1.xml:91(title) chsh.1.xml:95(title)
#: chpasswd.8.xml:130(title) chgpasswd.8.xml:105(title) chfn.1.xml:111(title)
#: chage.1.xml:91(title)
#: groupmod.8.xml:89(title) groupmems.8.xml:100(title) groupdel.8.xml:88(title)
#: groupadd.8.xml:93(title) gpasswd.1.xml:134(title) faillog.8.xml:89(title)
#: expiry.1.xml:91(title) chsh.1.xml:95(title) chpasswd.8.xml:130(title)
#: chgpasswd.8.xml:105(title) chfn.1.xml:111(title) chage.1.xml:91(title)
msgid "OPTIONS"
msgstr "TILVALG"
@@ -343,7 +337,7 @@ msgstr "Rediger gruppedatabase."
#: vipw.8.xml:120(term) userdel.8.xml:123(term) useradd.8.xml:266(term)
#: pwconv.8.xml:195(term) pwck.8.xml:186(term) passwd.1.xml:214(term)
#: newusers.8.xml:283(term) lastlog.8.xml:107(term) grpck.8.xml:157(term)
#: newusers.8.xml:283(term) lastlog.8.xml:118(term) grpck.8.xml:157(term)
#: groupmod.8.xml:129(term) groupmems.8.xml:142(term) groupdel.8.xml:95(term)
#: groupadd.8.xml:131(term) gpasswd.1.xml:173(term) faillog.8.xml:122(term)
#: expiry.1.xml:112(term) chsh.1.xml:101(term) chpasswd.8.xml:171(term)
@@ -353,7 +347,7 @@ msgstr "<option>-h</option>, <option>--help</option>"
#: vipw.8.xml:122(para) userdel.8.xml:125(para) useradd.8.xml:268(para)
#: pwconv.8.xml:197(para) pwck.8.xml:188(para) passwd.1.xml:216(para)
#: newusers.8.xml:285(para) lastlog.8.xml:111(para) grpck.8.xml:159(para)
#: newusers.8.xml:285(para) lastlog.8.xml:122(para) grpck.8.xml:159(para)
#: groupmod.8.xml:131(para) groupmems.8.xml:144(para) groupdel.8.xml:97(para)
#: groupadd.8.xml:133(para) gpasswd.1.xml:175(para) faillog.8.xml:124(para)
#: expiry.1.xml:114(para) chsh.1.xml:103(para) chpasswd.8.xml:173(para)
@@ -379,7 +373,7 @@ msgstr "Stille tilstand."
#: vipw.8.xml:138(term) usermod.8.xml:311(term) userdel.8.xml:146(term)
#: useradd.8.xml:445(term) pwconv.8.xml:201(term) pwck.8.xml:209(term)
#: passwd.1.xml:301(term) newusers.8.xml:308(term) lastlog.8.xml:115(term)
#: passwd.1.xml:301(term) newusers.8.xml:308(term) lastlog.8.xml:126(term)
#: grpck.8.xml:173(term) groupmod.8.xml:178(term) groupmems.8.xml:165(term)
#: groupdel.8.xml:101(term) groupadd.8.xml:204(term) faillog.8.xml:180(term)
#: chsh.1.xml:107(term) chpasswd.8.xml:188(term) chgpasswd.8.xml:146(term)
@@ -393,7 +387,7 @@ msgstr ""
#: vipw.8.xml:142(para) usermod.8.xml:315(para) userdel.8.xml:150(para)
#: useradd.8.xml:449(para) pwconv.8.xml:205(para) pwck.8.xml:213(para)
#: passwd.1.xml:305(para) newusers.8.xml:312(para) lastlog.8.xml:119(para)
#: passwd.1.xml:305(para) newusers.8.xml:312(para) lastlog.8.xml:130(para)
#: grpck.8.xml:177(para) groupmod.8.xml:182(para) groupmems.8.xml:169(para)
#: groupdel.8.xml:105(para) groupadd.8.xml:208(para) gpasswd.1.xml:185(para)
#: faillog.8.xml:184(para) chsh.1.xml:111(para) chpasswd.8.xml:192(para)
@@ -422,18 +416,18 @@ msgstr "<option>-u</option>, <option>--user</option>"
msgid "Indicates which user's tcb shadow file to edit."
msgstr "Indikerer hvilken brugers tcb-shadowfil at redigere."
#: vipw.8.xml:165(title) usermod.8.xml:497(title) userdel.8.xml:171(title)
#: vipw.8.xml:165(title) usermod.8.xml:496(title) userdel.8.xml:171(title)
#: useradd.8.xml:647(title) su.1.xml:339(title) sg.1.xml:98(title)
#: pwconv.8.xml:227(title) pwck.8.xml:252(title) passwd.1.xml:390(title)
#: newusers.8.xml:362(title) newgrp.1.xml:109(title) login.1.xml:294(title)
#: grpck.8.xml:209(title) groupmod.8.xml:193(title) groupmems.8.xml:199(title)
#: groupdel.8.xml:128(title) groupadd.8.xml:219(title)
#: gpasswd.1.xml:264(title) chsh.1.xml:154(title) chpasswd.8.xml:239(title)
#: chgpasswd.8.xml:198(title) chfn.1.xml:193(title) chage.1.xml:244(title)
#: groupdel.8.xml:128(title) groupadd.8.xml:219(title) gpasswd.1.xml:264(title)
#: chsh.1.xml:154(title) chpasswd.8.xml:239(title) chgpasswd.8.xml:198(title)
#: chfn.1.xml:193(title) chage.1.xml:244(title)
msgid "CONFIGURATION"
msgstr "KONFIGURATION"
#: vipw.8.xml:166(para) usermod.8.xml:498(para) userdel.8.xml:172(para)
#: vipw.8.xml:166(para) usermod.8.xml:497(para) userdel.8.xml:172(para)
#: useradd.8.xml:648(para) su.1.xml:340(para) sg.1.xml:99(para)
#: pwck.8.xml:253(para) passwd.1.xml:391(para) newusers.8.xml:363(para)
#: newgrp.1.xml:110(para) login.1.xml:295(para) grpck.8.xml:210(para)
@@ -488,37 +482,35 @@ msgstr ""
"Redigeringsprogram der skal bruges hvis <option>VISUAL</option> ikke er "
"angivet."
#: vipw.8.xml:195(title) usermod.8.xml:514(title) userdel.8.xml:188(title)
#: vipw.8.xml:195(title) usermod.8.xml:513(title) userdel.8.xml:188(title)
#: useradd.8.xml:675(title) suauth.5.xml:193(title) su.1.xml:367(title)
#: sg.1.xml:110(title) shadow.5.xml:255(title) shadow.3.xml:226(title)
#: pwconv.8.xml:250(title) pwck.8.xml:269(title) porttime.5.xml:130(title)
#: passwd.5.xml:141(title) passwd.1.xml:408(title) newusers.8.xml:397(title)
#: newgrp.1.xml:121(title) logoutd.8.xml:89(title)
#: login.access.5.xml:121(title) login.1.xml:338(title)
#: limits.5.xml:196(title) lastlog.8.xml:182(title) gshadow.5.xml:156(title)
#: grpck.8.xml:221(title) groups.1.xml:100(title) groupmod.8.xml:205(title)
#: groupmems.8.xml:211(title) groupdel.8.xml:140(title)
#: groupadd.8.xml:233(title) gpasswd.1.xml:279(title) faillog.8.xml:243(title)
#: faillog.5.xml:96(title) expiry.1.xml:121(title) chsh.1.xml:167(title)
#: chpasswd.8.xml:255(title) chgpasswd.8.xml:213(title) chfn.1.xml:207(title)
#: chage.1.xml:256(title)
#: login.access.5.xml:121(title) login.1.xml:338(title) limits.5.xml:196(title)
#: lastlog.8.xml:204(title) gshadow.5.xml:156(title) grpck.8.xml:221(title)
#: groups.1.xml:100(title) groupmod.8.xml:205(title) groupmems.8.xml:211(title)
#: groupdel.8.xml:140(title) groupadd.8.xml:233(title) gpasswd.1.xml:279(title)
#: faillog.8.xml:243(title) faillog.5.xml:96(title) expiry.1.xml:121(title)
#: chsh.1.xml:167(title) chpasswd.8.xml:255(title) chgpasswd.8.xml:213(title)
#: chfn.1.xml:207(title) chage.1.xml:256(title)
msgid "FILES"
msgstr "FILER"
#: vipw.8.xml:198(filename) usermod.8.xml:517(filename)
#: vipw.8.xml:198(filename) usermod.8.xml:516(filename)
#: userdel.8.xml:191(filename) useradd.8.xml:690(filename)
#: sg.1.xml:125(filename) pwck.8.xml:272(filename)
#: newusers.8.xml:412(filename) newgrp.1.xml:136(filename)
#: gshadow.5.xml:159(filename) grpck.8.xml:224(filename)
#: groups.1.xml:103(filename) groupmod.8.xml:208(filename)
#: groupmems.8.xml:214(filename) groupdel.8.xml:143(filename)
#: groupadd.8.xml:236(filename) gpasswd.1.xml:72(filename)
#: gpasswd.1.xml:75(filename) gpasswd.1.xml:282(filename)
#: chgpasswd.8.xml:216(filename)
#: sg.1.xml:125(filename) pwck.8.xml:272(filename) newusers.8.xml:412(filename)
#: newgrp.1.xml:136(filename) gshadow.5.xml:159(filename)
#: grpck.8.xml:224(filename) groups.1.xml:103(filename)
#: groupmod.8.xml:208(filename) groupmems.8.xml:214(filename)
#: groupdel.8.xml:143(filename) groupadd.8.xml:236(filename)
#: gpasswd.1.xml:72(filename) gpasswd.1.xml:75(filename)
#: gpasswd.1.xml:282(filename) chgpasswd.8.xml:216(filename)
msgid "/etc/group"
msgstr "/etc/group"
#: vipw.8.xml:200(para) usermod.8.xml:519(para) userdel.8.xml:193(para)
#: vipw.8.xml:200(para) usermod.8.xml:518(para) userdel.8.xml:193(para)
#: useradd.8.xml:692(para) sg.1.xml:127(para) pwck.8.xml:274(para)
#: newusers.8.xml:414(para) newgrp.1.xml:138(para) gshadow.5.xml:161(para)
#: grpck.8.xml:226(para) groups.1.xml:105(para) groupmod.8.xml:210(para)
@@ -527,7 +519,7 @@ msgstr "/etc/group"
msgid "Group account information."
msgstr "Information om gruppekonto."
#: vipw.8.xml:204(filename) usermod.8.xml:523(filename)
#: vipw.8.xml:204(filename) usermod.8.xml:522(filename)
#: useradd.8.xml:696(filename) sg.1.xml:131(filename)
#: newusers.8.xml:418(filename) newgrp.1.xml:142(filename)
#: gshadow.5.xml:165(filename) grpck.8.xml:230(filename)
@@ -538,7 +530,7 @@ msgstr "Information om gruppekonto."
msgid "/etc/gshadow"
msgstr "/etc/gshadow"
#: vipw.8.xml:206(para) usermod.8.xml:525(para) useradd.8.xml:698(para)
#: vipw.8.xml:206(para) usermod.8.xml:524(para) useradd.8.xml:698(para)
#: sg.1.xml:133(para) newusers.8.xml:420(para) newgrp.1.xml:144(para)
#: gshadow.5.xml:167(para) grpck.8.xml:232(para) groupmod.8.xml:216(para)
#: groupdel.8.xml:151(para) groupadd.8.xml:244(para) gpasswd.1.xml:290(para)
@@ -546,7 +538,7 @@ msgstr "/etc/gshadow"
msgid "Secure group account information."
msgstr "Information om sikret gruppekonto."
#: vipw.8.xml:210(filename) usermod.8.xml:535(filename)
#: vipw.8.xml:210(filename) usermod.8.xml:534(filename)
#: userdel.8.xml:203(filename) useradd.8.xml:678(filename)
#: su.1.xml:370(filename) sg.1.xml:113(filename) shadow.5.xml:258(filename)
#: pwck.8.xml:278(filename) passwd.5.xml:144(filename)
@@ -559,7 +551,7 @@ msgstr "Information om sikret gruppekonto."
msgid "/etc/passwd"
msgstr "/etc/passwd"
#: vipw.8.xml:212(para) usermod.8.xml:537(para) userdel.8.xml:205(para)
#: vipw.8.xml:212(para) usermod.8.xml:536(para) userdel.8.xml:205(para)
#: useradd.8.xml:680(para) su.1.xml:372(para) sg.1.xml:115(para)
#: shadow.5.xml:260(para) pwck.8.xml:280(para) passwd.5.xml:146(para)
#: passwd.1.xml:413(para) newusers.8.xml:402(para) newgrp.1.xml:126(para)
@@ -569,7 +561,7 @@ msgstr "/etc/passwd"
msgid "User account information."
msgstr "Information om brugerkonto."
#: vipw.8.xml:216(filename) usermod.8.xml:541(filename)
#: vipw.8.xml:216(filename) usermod.8.xml:540(filename)
#: userdel.8.xml:209(filename) useradd.8.xml:684(filename)
#: su.1.xml:376(filename) sg.1.xml:119(filename) shadow.5.xml:264(filename)
#: shadow.3.xml:229(filename) pwck.8.xml:284(filename)
@@ -580,7 +572,7 @@ msgstr "Information om brugerkonto."
msgid "/etc/shadow"
msgstr "/etc/shadow"
#: vipw.8.xml:218(para) usermod.8.xml:543(para) userdel.8.xml:211(para)
#: vipw.8.xml:218(para) usermod.8.xml:542(para) userdel.8.xml:211(para)
#: useradd.8.xml:686(para) su.1.xml:378(para) sg.1.xml:121(para)
#: shadow.5.xml:266(para) shadow.3.xml:231(para) pwck.8.xml:286(para)
#: passwd.1.xml:419(para) newusers.8.xml:408(para) newgrp.1.xml:132(para)
@@ -589,7 +581,7 @@ msgstr "/etc/shadow"
msgid "Secure user account information."
msgstr "Information om sikret brugerkonto."
#: vipw.8.xml:225(title) usermod.8.xml:562(title) userdel.8.xml:308(title)
#: vipw.8.xml:225(title) usermod.8.xml:561(title) userdel.8.xml:308(title)
#: useradd.8.xml:804(title) suauth.5.xml:222(title) su.1.xml:438(title)
#: sg.1.xml:140(title) shadow.5.xml:283(title) shadow.3.xml:238(title)
#: pwconv.8.xml:262(title) pwck.8.xml:344(title) porttime.5.xml:142(title)
@@ -652,15 +644,15 @@ msgstr ""
#: usermod.8.xml:46(surname) userdel.8.xml:46(surname)
#: useradd.8.xml:57(surname) su.1.xml:57(surname) sg.1.xml:41(surname)
#: shadow.5.xml:40(surname) shadow.3.xml:40(surname) pwck.8.xml:46(surname)
#: porttime.5.xml:40(surname) passwd.5.xml:40(surname)
#: passwd.1.xml:47(surname) newusers.8.xml:55(surname)
#: newgrp.1.xml:41(surname) logoutd.8.xml:40(surname)
#: login.defs.5.xml:105(surname) login.1.xml:73(surname)
#: lastlog.8.xml:41(surname) grpck.8.xml:41(surname) groups.1.xml:40(surname)
#: groupmod.8.xml:41(surname) groupdel.8.xml:41(surname)
#: groupadd.8.xml:43(surname) faillog.8.xml:40(surname)
#: faillog.5.xml:40(surname) expiry.1.xml:44(surname) chsh.1.xml:43(surname)
#: chpasswd.8.xml:44(surname) chfn.1.xml:43(surname) chage.1.xml:41(surname)
#: porttime.5.xml:40(surname) passwd.5.xml:40(surname) passwd.1.xml:47(surname)
#: newusers.8.xml:55(surname) newgrp.1.xml:41(surname)
#: logoutd.8.xml:40(surname) login.defs.5.xml:105(surname)
#: login.1.xml:73(surname) lastlog.8.xml:41(surname) grpck.8.xml:41(surname)
#: groups.1.xml:40(surname) groupmod.8.xml:41(surname)
#: groupdel.8.xml:41(surname) groupadd.8.xml:43(surname)
#: faillog.8.xml:40(surname) faillog.5.xml:40(surname) expiry.1.xml:44(surname)
#: chsh.1.xml:43(surname) chpasswd.8.xml:44(surname) chfn.1.xml:43(surname)
#: chage.1.xml:41(surname)
msgid "Haugh"
msgstr ""
@@ -1031,7 +1023,7 @@ msgstr ""
#| "<option>-f</option>, <option>--inactive</option>&nbsp;"
#| "<replaceable>INACTIVE</replaceable>"
msgid ""
"<option>-v</option>, <option>--add-sub-uids</option>&nbsp;"
"<option>-v</option>, <option>--add-subuids</option>&nbsp;"
"<replaceable>FIRST</replaceable>-<replaceable>LAST</replaceable>"
msgstr ""
"<option>-f</option>, <option>--inactive</option>&nbsp;<replaceable>INAKTIV</"
@@ -1060,7 +1052,7 @@ msgstr ""
#| "<option>-e</option>, <option>--expiredate</option>&nbsp;"
#| "<replaceable>EXPIRE_DATE</replaceable>"
msgid ""
"<option>-V</option>, <option>--del-sub-uids</option>&nbsp;"
"<option>-V</option>, <option>--del-subuids</option>&nbsp;"
"<replaceable>FIRST</replaceable>-<replaceable>LAST</replaceable>"
msgstr ""
"<option>-e</option>, <option>--expiredate</option>&nbsp;"
@@ -1073,8 +1065,8 @@ msgstr ""
#: usermod.8.xml:409(para)
msgid ""
"This option may be specified multiple times to remove multiple ranges to a "
"users account. When both <option>--del-sub-uids</option> and <option>--add-"
"sub-uids</option> are specified, the removal of all subordinate uid ranges "
"users account. When both <option>--del-subuids</option> and <option>--add-"
"subuids</option> are specified, the removal of all subordinate uid ranges "
"happens before any subordinate uid range is added."
msgstr ""
@@ -1084,7 +1076,7 @@ msgstr ""
#| "<option>-f</option>, <option>--inactive</option>&nbsp;"
#| "<replaceable>INACTIVE</replaceable>"
msgid ""
"<option>-w</option>, <option>--add-sub-gids</option>&nbsp;"
"<option>-w</option>, <option>--add-subgids</option>&nbsp;"
"<replaceable>FIRST</replaceable>-<replaceable>LAST</replaceable>"
msgstr ""
"<option>-f</option>, <option>--inactive</option>&nbsp;<replaceable>INAKTIV</"
@@ -1107,7 +1099,7 @@ msgstr ""
#| "<option>-e</option>, <option>--expiredate</option>&nbsp;"
#| "<replaceable>EXPIRE_DATE</replaceable>"
msgid ""
"<option>-W</option>, <option>--del-sub-gids</option>&nbsp;"
"<option>-W</option>, <option>--del-subgids</option>&nbsp;"
"<replaceable>FIRST</replaceable>-<replaceable>LAST</replaceable>"
msgstr ""
"<option>-e</option>, <option>--expiredate</option>&nbsp;"
@@ -1120,8 +1112,8 @@ msgstr ""
#: usermod.8.xml:447(para)
msgid ""
"This option may be specified multiple times to remove multiple ranges to a "
"users account. When both <option>--del-sub-gids</option> and <option>--add-"
"sub-gids</option> are specified, the removal of all subordinate gid ranges "
"users account. When both <option>--del-subgids</option> and <option>--add-"
"subgids</option> are specified, the removal of all subordinate gid ranges "
"happens before any subordinate gid range is added."
msgstr ""
@@ -1143,9 +1135,9 @@ msgstr ""
#: usermod.8.xml:478(title) userdel.8.xml:281(title) useradd.8.xml:623(title)
#: su.1.xml:331(title) shadow.3.xml:218(title) passwd.1.xml:372(title)
#: newusers.8.xml:350(title) login.1.xml:260(title) lastlog.8.xml:194(title)
#: groupdel.8.xml:116(title) groupadd.8.xml:257(title)
#: gpasswd.1.xml:252(title) faillog.8.xml:232(title) chpasswd.8.xml:231(title)
#: newusers.8.xml:350(title) login.1.xml:260(title) lastlog.8.xml:216(title)
#: groupdel.8.xml:116(title) groupadd.8.xml:257(title) gpasswd.1.xml:252(title)
#: faillog.8.xml:232(title) chpasswd.8.xml:231(title)
#: chgpasswd.8.xml:186(title)
msgid "CAVEATS"
msgstr ""
@@ -1155,17 +1147,17 @@ msgid ""
"You must make certain that the named user is not executing any processes "
"when this command is being executed if the user's numerical user ID, the "
"user's name, or the user's home directory is being changed. "
"<command>usermod</command> checks this on Linux, but only check if the user "
"is logged in according to utmp on other architectures."
"<command>usermod</command> checks this on Linux. On other platforms it only "
"uses utmp to check if the user is logged in."
msgstr ""
#: usermod.8.xml:487(para)
#: usermod.8.xml:486(para)
msgid ""
"You must change the owner of any <command>crontab</command> files or "
"<command>at</command> jobs manually."
msgstr ""
#: usermod.8.xml:491(para)
#: usermod.8.xml:490(para)
msgid "You must make any changes involving NIS on the NIS server."
msgstr ""
@@ -1396,7 +1388,7 @@ msgid ""
"algorithm: <placeholder-1/>"
msgstr ""
#: usermod.8.xml:529(filename) userdel.8.xml:197(filename)
#: usermod.8.xml:528(filename) userdel.8.xml:197(filename)
#: useradd.8.xml:726(filename) su.1.xml:382(filename)
#: pwconv.8.xml:253(filename) passwd.1.xml:423(filename)
#: newusers.8.xml:424(filename) login.access.5.xml:124(filename)
@@ -1407,7 +1399,7 @@ msgstr ""
msgid "/etc/login.defs"
msgstr ""
#: usermod.8.xml:531(para) userdel.8.xml:199(para) useradd.8.xml:728(para)
#: usermod.8.xml:530(para) userdel.8.xml:199(para) useradd.8.xml:728(para)
#: su.1.xml:384(para) pwconv.8.xml:255(para) passwd.1.xml:425(para)
#: newusers.8.xml:426(para) login.access.5.xml:126(para) login.1.xml:391(para)
#: groupmod.8.xml:222(para) groupadd.8.xml:250(para) chsh.1.xml:184(para)
@@ -1415,31 +1407,31 @@ msgstr ""
msgid "Shadow password suite configuration."
msgstr ""
#: usermod.8.xml:547(filename) userdel.8.xml:215(filename)
#: usermod.8.xml:546(filename) userdel.8.xml:215(filename)
#: useradd.8.xml:714(filename) newusers.8.xml:436(filename)
#, fuzzy
#| msgid "/etc/suauth"
msgid "/etc/subgid"
msgstr "/etc/suauth"
#: usermod.8.xml:549(para) userdel.8.xml:217(para) useradd.8.xml:716(para)
#: usermod.8.xml:548(para) userdel.8.xml:217(para) useradd.8.xml:716(para)
#: newusers.8.xml:438(para)
msgid "Per user subordinate group IDs."
msgstr ""
#: usermod.8.xml:553(filename) userdel.8.xml:221(filename)
#: usermod.8.xml:552(filename) userdel.8.xml:221(filename)
#: useradd.8.xml:720(filename) newusers.8.xml:442(filename)
#, fuzzy
#| msgid "/etc/suauth"
msgid "/etc/subuid"
msgstr "/etc/suauth"
#: usermod.8.xml:555(para) userdel.8.xml:223(para) useradd.8.xml:722(para)
#: usermod.8.xml:554(para) userdel.8.xml:223(para) useradd.8.xml:722(para)
#: newusers.8.xml:444(para)
msgid "Per user subordinate user IDs."
msgstr ""
#: usermod.8.xml:563(para)
#: usermod.8.xml:562(para)
#, fuzzy
#| msgid ""
#| "<citerefentry><refentrytitle>vi</refentrytitle><manvolnum>1</manvolnum></"
@@ -1653,9 +1645,8 @@ msgstr ""
#: passwd.1.xml:449(replaceable) newgrp.1.xml:59(manvolnum)
#: login.1.xml:91(manvolnum) grpck.8.xml:256(replaceable)
#: groups.1.xml:58(manvolnum) gpasswd.1.xml:63(manvolnum)
#: expiry.1.xml:62(manvolnum) chsh.1.xml:61(manvolnum)
#: chfn.1.xml:61(manvolnum) chage.1.xml:59(manvolnum)
#: chage.1.xml:289(replaceable)
#: expiry.1.xml:62(manvolnum) chsh.1.xml:61(manvolnum) chfn.1.xml:61(manvolnum)
#: chage.1.xml:59(manvolnum) chage.1.xml:289(replaceable)
msgid "1"
msgstr ""
@@ -1976,7 +1967,7 @@ msgid ""
"<option>PASS_MAX_DAYS</option> and others). <placeholder-1/> Example: "
"<option>-K</option>&nbsp;<replaceable>PASS_MAX_DAYS</"
"replaceable>=<replaceable>-1</replaceable> can be used when creating system "
"account to turn off password ageing, even though system account has no "
"account to turn off password aging, even though system account has no "
"password at all. Multiple <option>-K</option> options can be specified, e."
"g.: <option>-K</option>&nbsp;<replaceable>UID_MIN</"
"replaceable>=<replaceable>100</replaceable>&nbsp;<option>-K</option>&nbsp;"
@@ -1994,7 +1985,7 @@ msgstr ""
#: useradd.8.xml:327(para)
msgid ""
"By default, the user's entries in the lastlog and faillog databases are "
"resetted to avoid reusing the entry from a previously deleted user."
"reset to avoid reusing the entry from a previously deleted user."
msgstr ""
#: useradd.8.xml:335(term)
@@ -2014,9 +2005,11 @@ msgid ""
"is not enabled, no home directories are created."
msgstr ""
#: useradd.8.xml:354(option)
msgid "-M"
msgstr ""
#: useradd.8.xml:353(term)
#, fuzzy
#| msgid "<option>-c</option>, <option>--crypt-method</option>"
msgid "<option>-M</option>, <option>--no-create-home</option>"
msgstr "<option>-c</option>, <option>--crypt-method</option>"
#: useradd.8.xml:357(para)
msgid ""
@@ -2081,10 +2074,10 @@ msgstr ""
#: useradd.8.xml:434(para)
msgid ""
"Note that <command>useradd</command> will not create a home directory for "
"such an user, regardless of the default setting in <filename>/etc/login."
"defs</filename> (<option>CREATE_HOME</option>). You have to specify the "
"<option>-m</option> options if you want a home directory for a system "
"account to be created."
"such a user, regardless of the default setting in <filename>/etc/login.defs</"
"filename> (<option>CREATE_HOME</option>). You have to specify the <option>-"
"m</option> options if you want a home directory for a system account to be "
"created."
msgstr ""
#: useradd.8.xml:461(para)
@@ -2602,7 +2595,7 @@ msgstr ""
#, no-wrap
msgid ""
"\n"
" 1) the user su is targetting\n"
" 1) the user su is targeting\n"
" "
msgstr ""
@@ -2636,12 +2629,12 @@ msgstr ""
#: suauth.5.xml:107(para)
msgid ""
"from-id is formatted the same as to-id except the extra word "
"<emphasis>GROUP</emphasis> is recognised. <emphasis>ALL EXCEPT GROUP</"
"<emphasis>GROUP</emphasis> is recognized. <emphasis>ALL EXCEPT GROUP</"
"emphasis> is perfectly valid too. Following <emphasis>GROUP</emphasis> "
"appears one or more group names, delimited by \",\". It is not sufficient to "
"have primary group id of the relevant group, an entry in "
"<citerefentry><refentrytitle>/etc/group</refentrytitle><manvolnum>5</"
"manvolnum></citerefentry> is neccessary."
"manvolnum></citerefentry> is necessary."
msgstr ""
#: suauth.5.xml:118(para)
@@ -2744,9 +2737,8 @@ msgid ""
msgstr ""
#: su.1.xml:58(contrib) shadow.5.xml:41(contrib) shadow.3.xml:41(contrib)
#: porttime.5.xml:41(contrib) passwd.5.xml:41(contrib)
#: passwd.1.xml:48(contrib) login.1.xml:74(contrib) faillog.8.xml:41(contrib)
#: faillog.5.xml:41(contrib)
#: porttime.5.xml:41(contrib) passwd.5.xml:41(contrib) passwd.1.xml:48(contrib)
#: login.1.xml:74(contrib) faillog.8.xml:41(contrib) faillog.5.xml:41(contrib)
msgid "Creation, 1989"
msgstr ""
@@ -2845,7 +2837,7 @@ msgstr ""
#: su.1.xml:158(para)
msgid ""
"The executed command will have no controlling terminal. This option cannot "
"be used to execute interractive programs which need a controlling TTY."
"be used to execute interactive programs which need a controlling TTY."
msgstr ""
#: su.1.xml:168(term)
@@ -3389,7 +3381,7 @@ msgstr ""
#: shadow.5.xml:117(para) gshadow.5.xml:107(para)
msgid ""
"A password field which starts with a exclamation mark means that the "
"A password field which starts with an exclamation mark means that the "
"password is locked. The remaining characters on the line represent the "
"password field before the password was locked."
msgstr ""
@@ -3407,7 +3399,7 @@ msgstr ""
#: shadow.5.xml:134(para)
msgid ""
"The value 0 has a special meaning, which is that the user should change her "
"pasword the next time she will log in the system."
"password the next time she will log in the system."
msgstr ""
#: shadow.5.xml:139(para)
@@ -3507,7 +3499,7 @@ msgstr ""
#: shadow.5.xml:229(para)
msgid ""
"Note that an account expiration differs from a password expiration. In case "
"of an acount expiration, the user shall not be allowed to login. In case of "
"of an account expiration, the user shall not be allowed to login. In case of "
"a password expiration, the user is not allowed to login using her password."
msgstr ""
@@ -3768,18 +3760,15 @@ msgstr ""
msgid "pwconv"
msgstr ""
#: pwconv.8.xml:71(refname) pwconv.8.xml:85(command)
#: login.defs.5.xml:438(term)
#: pwconv.8.xml:71(refname) pwconv.8.xml:85(command) login.defs.5.xml:438(term)
msgid "pwunconv"
msgstr ""
#: pwconv.8.xml:72(refname) pwconv.8.xml:91(command)
#: login.defs.5.xml:340(term)
#: pwconv.8.xml:72(refname) pwconv.8.xml:91(command) login.defs.5.xml:340(term)
msgid "grpconv"
msgstr ""
#: pwconv.8.xml:73(refname) pwconv.8.xml:97(command)
#: login.defs.5.xml:346(term)
#: pwconv.8.xml:73(refname) pwconv.8.xml:97(command) login.defs.5.xml:346(term)
msgid "grpunconv"
msgstr ""
@@ -3927,8 +3916,7 @@ msgstr ""
#: pwck.8.xml:80(replaceable) passwd.5.xml:57(refentrytitle)
#: passwd.5.xml:64(refname) passwd.1.xml:64(refentrytitle)
#: passwd.1.xml:71(refname) passwd.1.xml:77(command)
#: login.defs.5.xml:409(term)
#: passwd.1.xml:71(refname) passwd.1.xml:77(command) login.defs.5.xml:409(term)
msgid "passwd"
msgstr ""
@@ -4071,7 +4059,7 @@ msgstr ""
msgid ""
"Note that when <option>USE_TCB</option> is enabled, you cannot specify an "
"alternative <replaceable>shadow</replaceable> file. In future releases, this "
"paramater could be replaced by an alternate TCB directory."
"parameter could be replaced by an alternate TCB directory."
msgstr ""
#: pwck.8.xml:312(para)
@@ -4319,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 ""
@@ -4330,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."
@@ -4400,8 +4388,12 @@ msgid ""
msgstr ""
#: passwd.1.xml:166(para)
#, fuzzy
#| msgid ""
#| "You can find advices on how to choose a strong password on http://en."
#| "wikipedia.org/wiki/Password_strength"
msgid ""
"You can find advices on how to choose a strong password on http://en."
"You can find advice on how to choose a strong password on http://en."
"wikipedia.org/wiki/Password_strength"
msgstr ""
"Du kan finde råd om hvordan du vælger en god adgangskode på http://en."
@@ -4443,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."
@@ -4512,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)
@@ -4561,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 ""
@@ -4703,8 +4695,8 @@ msgstr "<option>PASS_MIN_LEN</option> (antal)"
#: passwd.1.xml:35(para) login.defs.5.xml:35(para)
msgid ""
"Number of significant characters in the password for crypt(). "
"<option>PASS_MAX_LEN</option> is 8 by default. Don't change unless your crypt"
"() is better. This is ignored if <option>MD5_CRYPT_ENAB</option> set to "
"<option>PASS_MAX_LEN</option> is 8 by default. Don't change unless your "
"crypt() is better. This is ignored if <option>MD5_CRYPT_ENAB</option> set to "
"<replaceable>yes</replaceable>."
msgstr ""
@@ -4842,7 +4834,9 @@ msgid "HISTORY"
msgstr "HISTORIK"
#: nologin.8.xml:91(para)
msgid "The <command>nologin</command> command appearred in BSD 4.4."
#, fuzzy
#| msgid "The <command>nologin</command> command appearred in BSD 4.4."
msgid "The <command>nologin</command> command appeared in BSD 4.4."
msgstr "Kommandoen <command>nologin</command> fremkom i BSD 4.4."
#: newusers.8.xml:72(refentrytitle) newusers.8.xml:79(refname)
@@ -4881,11 +4875,19 @@ msgid "This is the name of the user."
msgstr "Dette er navnet på brugeren."
#: newusers.8.xml:116(para)
#, fuzzy
#| msgid ""
#| "If this field contains the name of an existing user (or the name of an "
#| "user created before by <command>newusers</command>), the UID of the "
#| "specified user will be used."
msgid ""
"It can be the name of a new user or the name of an existing user (or an user "
"It can be the name of a new user or the name of an existing user (or a user "
"created before by <command>newusers</command>). In case of an existing user, "
"the user's information will be changed, otherwise a new user will be created."
msgstr ""
"Hvis dette felt indeholder navnet på en eksisterende bruger (eller navnet på "
"en bruger oprettet før af <command>newusers</command>), så vil UID'en for "
"den angivne bruger blive brugt."
#: newusers.8.xml:127(emphasis)
msgid "pw_passwd"
@@ -4908,8 +4910,12 @@ msgid "This field is used to define the UID of the user."
msgstr "Dette flet bruges til at definere UID for brugeren."
#: newusers.8.xml:144(para)
#, fuzzy
#| msgid ""
#| "If the field is empty, an new (unused) UID will be defined automatically "
#| "by <command>newusers</command>."
msgid ""
"If the field is empty, an new (unused) UID will be defined automatically by "
"If the field is empty, a new (unused) UID will be defined automatically by "
"<command>newusers</command>."
msgstr ""
"Hvis feltet er tomt, vil en ny (ubrugt) UID blive defineret automatisk af "
@@ -4921,8 +4927,13 @@ msgstr ""
"Hvis dette felt indeholer et tal, så vil dette tal blive brugt som UID'en."
#: newusers.8.xml:152(para)
#, fuzzy
#| msgid ""
#| "If this field contains the name of an existing user (or the name of an "
#| "user created before by <command>newusers</command>), the UID of the "
#| "specified user will be used."
msgid ""
"If this field contains the name of an existing user (or the name of an user "
"If this field contains the name of an existing user (or the name of a user "
"created before by <command>newusers</command>), the UID of the specified "
"user will be used."
msgstr ""
@@ -6181,7 +6192,9 @@ msgid "D: max data size (KB)"
msgstr "D: Maks. datastørrelse (KB)"
#: limits.5.xml:111(para)
msgid "F: maximum filesize (KB)"
#, fuzzy
#| msgid "F: maximum filesize (KB)"
msgid "F: maximum file size (KB)"
msgstr "F: Maks filstørrelse (KB)"
#: limits.5.xml:112(para)
@@ -6251,7 +6264,7 @@ msgstr ""
#: limits.5.xml:145(para)
msgid ""
"Be aware that after <emphasis remap=\"I\">username</emphasis> the rest of "
"the line is considered a limit string, thus comments are not allowed. A "
"the line is considered a limit string, thus comments are not allowed. An "
"invalid limits string will be rejected (not considered) by the "
"<command>login</command> program."
msgstr ""
@@ -6271,8 +6284,12 @@ msgid ""
msgstr ""
#: limits.5.xml:165(para)
#, fuzzy
#| msgid ""
#| "If more than one line with limits for an user exist, only the first line "
#| "for this user will be considered."
msgid ""
"If more than one line with limits for an user exist, only the first line for "
"If more than one line with limits for a user exist, only the first line for "
"this user will be considered."
msgstr ""
"Hvis mere end en linje med begrænsninger for en bruger findes, så vil kun "
@@ -6280,7 +6297,7 @@ msgstr ""
#: limits.5.xml:170(para)
msgid ""
"If no lines are specified for an user, the last <replaceable>@group</"
"If no lines are specified for a user, the last <replaceable>@group</"
"replaceable> line matching a group whose the user is a member of will be "
"considered, or the last line with default limits if no groups contain the "
"user."
@@ -6351,29 +6368,53 @@ msgid ""
"Print only lastlog records older than <emphasis remap=\"I\">DAYS</emphasis>."
msgstr ""
#: lastlog.8.xml:127(term) faillog.8.xml:192(term)
#: lastlog.8.xml:107(term)
#, fuzzy
#| msgid "<option>-u</option>, <option>--user</option>"
msgid "<option>-C</option>, <option>--clear</option>"
msgstr "<option>-u</option>, <option>--user</option>"
#: lastlog.8.xml:111(para)
msgid ""
"Clear lastlog record of a user. This option can be used only together with "
"<option>-u</option> (<option>--user</option>))."
msgstr ""
#: lastlog.8.xml:138(term)
#, fuzzy
#| msgid "<option>-u</option>, <option>--user</option>"
msgid "<option>-S</option>, <option>--set</option>"
msgstr "<option>-u</option>, <option>--user</option>"
#: lastlog.8.xml:142(para)
msgid ""
"Set lastlog record of a user to the current time. This option can be used "
"only together with <option>-u</option> (<option>--user</option>))."
msgstr ""
#: lastlog.8.xml:149(term) faillog.8.xml:192(term)
msgid ""
"<option>-t</option>, <option>--time</option>&nbsp;<replaceable>DAYS</"
"replaceable>"
msgstr ""
#: lastlog.8.xml:131(para)
#: lastlog.8.xml:153(para)
msgid ""
"Print the lastlog records more recent than <emphasis remap=\"I\">DAYS</"
"emphasis>."
msgstr ""
#: lastlog.8.xml:138(term) faillog.8.xml:202(term)
#: lastlog.8.xml:160(term) faillog.8.xml:202(term)
msgid ""
"<option>-u</option>, <option>--user</option>&nbsp;<replaceable>LOGIN</"
"replaceable>|<replaceable>RANGE</replaceable>"
msgstr ""
#: lastlog.8.xml:142(para)
#: lastlog.8.xml:164(para)
msgid "Print the lastlog record of the specified user(s)."
msgstr ""
#: lastlog.8.xml:145(para) faillog.8.xml:211(para)
#: lastlog.8.xml:167(para) faillog.8.xml:211(para)
msgid ""
"The users can be specified by a login name, a numerical user ID, or a "
"<replaceable>RANGE</replaceable> of users. This <replaceable>RANGE</"
@@ -6382,24 +6423,24 @@ msgid ""
"UID_MAX</replaceable>), or a min value (<replaceable>UID_MIN-</replaceable>)."
msgstr ""
#: lastlog.8.xml:157(para)
#: lastlog.8.xml:179(para)
msgid ""
"If the user has never logged in the message <emphasis>** Never logged in**</"
"emphasis> will be displayed instead of the port and time."
msgstr ""
#: lastlog.8.xml:162(para)
#: lastlog.8.xml:184(para)
msgid ""
"Only the entries for the current users of the system will be displayed. "
"Other entries may exist for users that were deleted previously."
msgstr ""
#: lastlog.8.xml:170(title) groups.1.xml:90(title) chsh.1.xml:140(title)
#: lastlog.8.xml:192(title) groups.1.xml:90(title) chsh.1.xml:140(title)
#: chage.1.xml:231(title)
msgid "NOTE"
msgstr ""
#: lastlog.8.xml:171(para)
#: lastlog.8.xml:193(para)
msgid ""
"The <filename>lastlog</filename> file is a database which contains info on "
"the last login of each user. You should not rotate it. It is a sparse file, "
@@ -6409,15 +6450,15 @@ msgid ""
"its real size with \"<command>ls -s</command>\"."
msgstr ""
#: lastlog.8.xml:185(filename)
#: lastlog.8.xml:207(filename)
msgid "/var/log/lastlog"
msgstr "/var/log/lastlog"
#: lastlog.8.xml:187(para)
#: lastlog.8.xml:209(para)
msgid "Database times of previous user logins."
msgstr "Databasetider for tidligere brugerlogind."
#: lastlog.8.xml:195(para)
#: lastlog.8.xml:217(para)
msgid ""
"Large gaps in UID numbers will cause the lastlog program to run longer with "
"no output to the screen (i.e. if in lastlog database there is no entries for "
@@ -6464,11 +6505,19 @@ msgid ""
msgstr ""
#: gshadow.5.xml:97(para)
#, fuzzy
#| msgid ""
#| "The new value of the user's password file comment field. It is normally "
#| "modified using the <citerefentry><refentrytitle>chfn</"
#| "refentrytitle><manvolnum>1</manvolnum></citerefentry> utility."
msgid ""
"The password is used when an user who is not a member of the group wants to "
"The password is used when a user who is not a member of the group wants to "
"gain the permissions of this group (see <citerefentry><refentrytitle>newgrp</"
"refentrytitle><manvolnum>1</manvolnum></citerefentry>)."
msgstr ""
"Den nye værdi for brugerens kommentar kommentarfelt i adgangskodefilen. Den "
"ændres normalt med redskabet <citerefentry><refentrytitle>chfn</"
"refentrytitle><manvolnum>1</manvolnum></citerefentry>."
#: gshadow.5.xml:103(para)
msgid ""
@@ -6843,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)."
@@ -6867,7 +6916,9 @@ msgid ""
msgstr ""
#: groupmems.8.xml:109(para)
msgid "Add an user to the group membership list."
#, fuzzy
#| msgid "Add an user to the group membership list."
msgid "Add a user to the group membership list."
msgstr "Tilføj en bruger til listen over gruppemedlemmer."
#: groupmems.8.xml:110(para) groupmems.8.xml:126(para)
@@ -7633,7 +7684,7 @@ msgstr ""
msgid ""
"The default encryption algorithm can be defined for the system with the "
"<option>ENCRYPT_METHOD</option> or <option>MD5_CRYPT_ENAB</option> variables "
"of <filename>/etc/login.defs</filename>, and can be overwitten with the "
"of <filename>/etc/login.defs</filename>, and can be overwritten with the "
"<option>-e</option>, <option>-m</option>, or <option>-c</option> options."
msgstr ""
@@ -7648,7 +7699,7 @@ msgstr ""
msgid ""
"<phrase condition=\"pam\">Except when PAM is used to encrypt the passwords,</"
"phrase><command>chpasswd</command> first updates all the passwords in "
"memory, and then commits all the changes to disk if no errors occured for "
"memory, and then commits all the changes to disk if no errors occurred for "
"any user."
msgstr ""
@@ -7778,7 +7829,7 @@ msgstr ""
msgid ""
"The default encryption algorithm can be defined for the system with the "
"<option>ENCRYPT_METHOD</option> variable of <filename>/etc/login.defs</"
"filename>, and can be overwiten with the <option>-e</option>, <option>-m</"
"filename>, and can be overwritten with the <option>-e</option>, <option>-m</"
"option>, or <option>-c</option> options."
msgstr ""
@@ -7924,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)
@@ -8006,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 ""
@@ -8029,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 ""
@@ -8054,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 "

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -3,7 +3,7 @@
msgid ""
msgstr ""
"Project-Id-Version: man pages for shadow 4.0.16\n"
"POT-Creation-Date: 2013-08-23 01:54+0200\n"
"POT-Creation-Date: 2016-09-18 14:03-0500\n"
"PO-Revision-Date: 2013-08-23 01:38+0200\n"
"Last-Translator: Tomasz Kłoczko <kloczek@pld.org.pl>\n"
"Language-Team: Polish <translation-team-pl@lists.sourceforge.net>\n"
@@ -51,16 +51,15 @@ msgstr ""
#: useradd.8.xml:62(surname) suauth.5.xml:45(surname) su.1.xml:62(surname)
#: sg.1.xml:46(surname) shadow.5.xml:45(surname) shadow.3.xml:45(surname)
#: pwconv.8.xml:51(surname) pwck.8.xml:51(surname) porttime.5.xml:45(surname)
#: passwd.5.xml:45(surname) passwd.1.xml:52(surname)
#: newusers.8.xml:60(surname) newgrp.1.xml:46(surname)
#: logoutd.8.xml:45(surname) login.defs.5.xml:110(surname)
#: login.access.5.xml:46(surname) login.1.xml:78(surname)
#: limits.5.xml:47(surname) lastlog.8.xml:46(surname) grpck.8.xml:46(surname)
#: groups.1.xml:45(surname) groupmod.8.xml:46(surname)
#: passwd.5.xml:45(surname) passwd.1.xml:52(surname) newusers.8.xml:60(surname)
#: newgrp.1.xml:46(surname) logoutd.8.xml:45(surname)
#: login.defs.5.xml:110(surname) login.access.5.xml:46(surname)
#: login.1.xml:78(surname) limits.5.xml:47(surname) lastlog.8.xml:46(surname)
#: grpck.8.xml:46(surname) groups.1.xml:45(surname) groupmod.8.xml:46(surname)
#: groupmems.8.xml:49(surname) groupdel.8.xml:46(surname)
#: groupadd.8.xml:48(surname) gpasswd.1.xml:50(surname)
#: faillog.8.xml:45(surname) faillog.5.xml:45(surname)
#: expiry.1.xml:49(surname) chsh.1.xml:48(surname) chpasswd.8.xml:49(surname)
#: faillog.8.xml:45(surname) faillog.5.xml:45(surname) expiry.1.xml:49(surname)
#: chsh.1.xml:48(surname) chpasswd.8.xml:49(surname)
#: chgpasswd.8.xml:45(surname) chfn.1.xml:48(surname) chage.1.xml:46(surname)
msgid "Kłoczko"
msgstr ""
@@ -85,17 +84,16 @@ msgstr ""
#: useradd.8.xml:64(contrib) suauth.5.xml:47(contrib) su.1.xml:64(contrib)
#: sg.1.xml:48(contrib) shadow.5.xml:47(contrib) shadow.3.xml:47(contrib)
#: pwconv.8.xml:53(contrib) pwck.8.xml:53(contrib) porttime.5.xml:47(contrib)
#: passwd.5.xml:47(contrib) passwd.1.xml:54(contrib)
#: newusers.8.xml:62(contrib) newgrp.1.xml:48(contrib)
#: logoutd.8.xml:47(contrib) login.defs.5.xml:112(contrib)
#: login.access.5.xml:48(contrib) login.1.xml:80(contrib)
#: limits.5.xml:49(contrib) lastlog.8.xml:48(contrib) grpck.8.xml:48(contrib)
#: groups.1.xml:47(contrib) groupmod.8.xml:48(contrib)
#: passwd.5.xml:47(contrib) passwd.1.xml:54(contrib) newusers.8.xml:62(contrib)
#: newgrp.1.xml:48(contrib) logoutd.8.xml:47(contrib)
#: login.defs.5.xml:112(contrib) login.access.5.xml:48(contrib)
#: login.1.xml:80(contrib) limits.5.xml:49(contrib) lastlog.8.xml:48(contrib)
#: grpck.8.xml:48(contrib) groups.1.xml:47(contrib) groupmod.8.xml:48(contrib)
#: groupmems.8.xml:51(contrib) groupdel.8.xml:48(contrib)
#: groupadd.8.xml:50(contrib) gpasswd.1.xml:52(contrib)
#: faillog.8.xml:47(contrib) faillog.5.xml:47(contrib)
#: expiry.1.xml:51(contrib) chsh.1.xml:50(contrib) chpasswd.8.xml:51(contrib)
#: chfn.1.xml:50(contrib) chage.1.xml:48(contrib)
#: faillog.8.xml:47(contrib) faillog.5.xml:47(contrib) expiry.1.xml:51(contrib)
#: chsh.1.xml:50(contrib) chpasswd.8.xml:51(contrib) chfn.1.xml:50(contrib)
#: chage.1.xml:48(contrib)
msgid "shadow-utils maintainer, 2000 - 2007"
msgstr ""
@@ -129,14 +127,13 @@ msgstr ""
#: newusers.8.xml:66(surname) newgrp.1.xml:52(surname)
#: logoutd.8.xml:51(surname) login.defs.5.xml:116(surname)
#: login.access.5.xml:52(surname) login.1.xml:84(surname)
#: limits.5.xml:53(surname) lastlog.8.xml:52(surname)
#: gshadow.5.xml:39(surname) grpck.8.xml:52(surname) groups.1.xml:51(surname)
#: groupmod.8.xml:52(surname) groupmems.8.xml:55(surname)
#: groupdel.8.xml:52(surname) groupadd.8.xml:54(surname)
#: gpasswd.1.xml:56(surname) faillog.8.xml:51(surname)
#: faillog.5.xml:51(surname) expiry.1.xml:55(surname) chsh.1.xml:54(surname)
#: chpasswd.8.xml:55(surname) chgpasswd.8.xml:51(surname)
#: chfn.1.xml:54(surname) chage.1.xml:52(surname)
#: limits.5.xml:53(surname) lastlog.8.xml:52(surname) gshadow.5.xml:39(surname)
#: grpck.8.xml:52(surname) groups.1.xml:51(surname) groupmod.8.xml:52(surname)
#: groupmems.8.xml:55(surname) groupdel.8.xml:52(surname)
#: groupadd.8.xml:54(surname) gpasswd.1.xml:56(surname)
#: faillog.8.xml:51(surname) faillog.5.xml:51(surname) expiry.1.xml:55(surname)
#: chsh.1.xml:54(surname) chpasswd.8.xml:55(surname)
#: chgpasswd.8.xml:51(surname) chfn.1.xml:54(surname) chage.1.xml:52(surname)
msgid "François"
msgstr ""
@@ -165,14 +162,13 @@ msgstr ""
#: newusers.8.xml:68(contrib) newgrp.1.xml:54(contrib)
#: logoutd.8.xml:53(contrib) login.defs.5.xml:118(contrib)
#: login.access.5.xml:54(contrib) login.1.xml:86(contrib)
#: limits.5.xml:55(contrib) lastlog.8.xml:54(contrib)
#: gshadow.5.xml:42(contrib) grpck.8.xml:54(contrib) groups.1.xml:53(contrib)
#: groupmod.8.xml:54(contrib) groupmems.8.xml:57(contrib)
#: groupdel.8.xml:54(contrib) groupadd.8.xml:56(contrib)
#: gpasswd.1.xml:58(contrib) faillog.8.xml:53(contrib)
#: faillog.5.xml:53(contrib) expiry.1.xml:57(contrib) chsh.1.xml:56(contrib)
#: chpasswd.8.xml:57(contrib) chgpasswd.8.xml:53(contrib)
#: chfn.1.xml:56(contrib) chage.1.xml:54(contrib)
#: limits.5.xml:55(contrib) lastlog.8.xml:54(contrib) gshadow.5.xml:42(contrib)
#: grpck.8.xml:54(contrib) groups.1.xml:53(contrib) groupmod.8.xml:54(contrib)
#: groupmems.8.xml:57(contrib) groupdel.8.xml:54(contrib)
#: groupadd.8.xml:56(contrib) gpasswd.1.xml:58(contrib)
#: faillog.8.xml:53(contrib) faillog.5.xml:53(contrib) expiry.1.xml:57(contrib)
#: chsh.1.xml:56(contrib) chpasswd.8.xml:57(contrib)
#: chgpasswd.8.xml:53(contrib) chfn.1.xml:56(contrib) chage.1.xml:54(contrib)
msgid "shadow-utils maintainer, 2007 - now"
msgstr ""
@@ -245,14 +241,13 @@ msgstr "edytuj plik haseł, grup lub ich wersji chronionych"
#: useradd.8.xml:88(replaceable) useradd.8.xml:100(replaceable)
#: su.1.xml:88(replaceable) pwconv.8.xml:81(replaceable)
#: pwconv.8.xml:87(replaceable) pwconv.8.xml:93(replaceable)
#: pwconv.8.xml:99(replaceable) pwck.8.xml:77(arg)
#: passwd.1.xml:79(replaceable) newusers.8.xml:87(replaceable)
#: lastlog.8.xml:73(replaceable) grpck.8.xml:72(arg)
#: groupmod.8.xml:73(replaceable) groupdel.8.xml:73(replaceable)
#: groupadd.8.xml:75(replaceable) faillog.8.xml:72(replaceable)
#: chsh.1.xml:75(replaceable) chpasswd.8.xml:76(replaceable)
#: chgpasswd.8.xml:72(replaceable) chfn.1.xml:75(replaceable)
#: chage.1.xml:72(replaceable)
#: pwconv.8.xml:99(replaceable) pwck.8.xml:77(arg) passwd.1.xml:79(replaceable)
#: newusers.8.xml:87(replaceable) lastlog.8.xml:73(replaceable)
#: grpck.8.xml:72(arg) groupmod.8.xml:73(replaceable)
#: groupdel.8.xml:73(replaceable) groupadd.8.xml:75(replaceable)
#: faillog.8.xml:72(replaceable) chsh.1.xml:75(replaceable)
#: chpasswd.8.xml:76(replaceable) chgpasswd.8.xml:72(replaceable)
#: chfn.1.xml:75(replaceable) chage.1.xml:72(replaceable)
msgid "options"
msgstr "opcje"
@@ -302,11 +297,10 @@ msgstr ""
#: useradd.8.xml:124(title) su.1.xml:145(title) pwconv.8.xml:187(title)
#: pwck.8.xml:176(title) passwd.1.xml:174(title) newusers.8.xml:265(title)
#: login.1.xml:210(title) lastlog.8.xml:91(title) grpck.8.xml:147(title)
#: groupmod.8.xml:89(title) groupmems.8.xml:100(title)
#: groupdel.8.xml:88(title) groupadd.8.xml:93(title) gpasswd.1.xml:134(title)
#: faillog.8.xml:89(title) expiry.1.xml:91(title) chsh.1.xml:95(title)
#: chpasswd.8.xml:130(title) chgpasswd.8.xml:105(title) chfn.1.xml:111(title)
#: chage.1.xml:91(title)
#: groupmod.8.xml:89(title) groupmems.8.xml:100(title) groupdel.8.xml:88(title)
#: groupadd.8.xml:93(title) gpasswd.1.xml:134(title) faillog.8.xml:89(title)
#: expiry.1.xml:91(title) chsh.1.xml:95(title) chpasswd.8.xml:130(title)
#: chgpasswd.8.xml:105(title) chfn.1.xml:111(title) chage.1.xml:91(title)
msgid "OPTIONS"
msgstr "OPCJE"
@@ -329,7 +323,7 @@ msgstr "Edycja bazy grup."
#: vipw.8.xml:120(term) userdel.8.xml:123(term) useradd.8.xml:266(term)
#: pwconv.8.xml:195(term) pwck.8.xml:186(term) passwd.1.xml:214(term)
#: newusers.8.xml:283(term) lastlog.8.xml:107(term) grpck.8.xml:157(term)
#: newusers.8.xml:283(term) lastlog.8.xml:118(term) grpck.8.xml:157(term)
#: groupmod.8.xml:129(term) groupmems.8.xml:142(term) groupdel.8.xml:95(term)
#: groupadd.8.xml:131(term) gpasswd.1.xml:173(term) faillog.8.xml:122(term)
#: expiry.1.xml:112(term) chsh.1.xml:101(term) chpasswd.8.xml:171(term)
@@ -339,7 +333,7 @@ msgstr "<option>-h</option>, <option>--help</option>"
#: vipw.8.xml:122(para) userdel.8.xml:125(para) useradd.8.xml:268(para)
#: pwconv.8.xml:197(para) pwck.8.xml:188(para) passwd.1.xml:216(para)
#: newusers.8.xml:285(para) lastlog.8.xml:111(para) grpck.8.xml:159(para)
#: newusers.8.xml:285(para) lastlog.8.xml:122(para) grpck.8.xml:159(para)
#: groupmod.8.xml:131(para) groupmems.8.xml:144(para) groupdel.8.xml:97(para)
#: groupadd.8.xml:133(para) gpasswd.1.xml:175(para) faillog.8.xml:124(para)
#: expiry.1.xml:114(para) chsh.1.xml:103(para) chpasswd.8.xml:173(para)
@@ -365,7 +359,7 @@ msgstr "Cichy tryb pracy."
#: vipw.8.xml:138(term) usermod.8.xml:311(term) userdel.8.xml:146(term)
#: useradd.8.xml:445(term) pwconv.8.xml:201(term) pwck.8.xml:209(term)
#: passwd.1.xml:301(term) newusers.8.xml:308(term) lastlog.8.xml:115(term)
#: passwd.1.xml:301(term) newusers.8.xml:308(term) lastlog.8.xml:126(term)
#: grpck.8.xml:173(term) groupmod.8.xml:178(term) groupmems.8.xml:165(term)
#: groupdel.8.xml:101(term) groupadd.8.xml:204(term) faillog.8.xml:180(term)
#: chsh.1.xml:107(term) chpasswd.8.xml:188(term) chgpasswd.8.xml:146(term)
@@ -383,7 +377,7 @@ msgstr ""
#: vipw.8.xml:142(para) usermod.8.xml:315(para) userdel.8.xml:150(para)
#: useradd.8.xml:449(para) pwconv.8.xml:205(para) pwck.8.xml:213(para)
#: passwd.1.xml:305(para) newusers.8.xml:312(para) lastlog.8.xml:119(para)
#: passwd.1.xml:305(para) newusers.8.xml:312(para) lastlog.8.xml:130(para)
#: grpck.8.xml:177(para) groupmod.8.xml:182(para) groupmems.8.xml:169(para)
#: groupdel.8.xml:105(para) groupadd.8.xml:208(para) gpasswd.1.xml:185(para)
#: faillog.8.xml:184(para) chsh.1.xml:111(para) chpasswd.8.xml:192(para)
@@ -415,18 +409,18 @@ msgstr "<option>-q</option>, <option>--quiet</option>"
msgid "Indicates which user's tcb shadow file to edit."
msgstr ""
#: vipw.8.xml:165(title) usermod.8.xml:497(title) userdel.8.xml:171(title)
#: vipw.8.xml:165(title) usermod.8.xml:496(title) userdel.8.xml:171(title)
#: useradd.8.xml:647(title) su.1.xml:339(title) sg.1.xml:98(title)
#: pwconv.8.xml:227(title) pwck.8.xml:252(title) passwd.1.xml:390(title)
#: newusers.8.xml:362(title) newgrp.1.xml:109(title) login.1.xml:294(title)
#: grpck.8.xml:209(title) groupmod.8.xml:193(title) groupmems.8.xml:199(title)
#: groupdel.8.xml:128(title) groupadd.8.xml:219(title)
#: gpasswd.1.xml:264(title) chsh.1.xml:154(title) chpasswd.8.xml:239(title)
#: chgpasswd.8.xml:198(title) chfn.1.xml:193(title) chage.1.xml:244(title)
#: groupdel.8.xml:128(title) groupadd.8.xml:219(title) gpasswd.1.xml:264(title)
#: chsh.1.xml:154(title) chpasswd.8.xml:239(title) chgpasswd.8.xml:198(title)
#: chfn.1.xml:193(title) chage.1.xml:244(title)
msgid "CONFIGURATION"
msgstr ""
#: vipw.8.xml:166(para) usermod.8.xml:498(para) userdel.8.xml:172(para)
#: vipw.8.xml:166(para) usermod.8.xml:497(para) userdel.8.xml:172(para)
#: useradd.8.xml:648(para) su.1.xml:340(para) sg.1.xml:99(para)
#: pwck.8.xml:253(para) passwd.1.xml:391(para) newusers.8.xml:363(para)
#: newgrp.1.xml:110(para) login.1.xml:295(para) grpck.8.xml:210(para)
@@ -479,37 +473,35 @@ msgstr ""
msgid "Editor to be used if <option>VISUAL</option> is not set."
msgstr ""
#: vipw.8.xml:195(title) usermod.8.xml:514(title) userdel.8.xml:188(title)
#: vipw.8.xml:195(title) usermod.8.xml:513(title) userdel.8.xml:188(title)
#: useradd.8.xml:675(title) suauth.5.xml:193(title) su.1.xml:367(title)
#: sg.1.xml:110(title) shadow.5.xml:255(title) shadow.3.xml:226(title)
#: pwconv.8.xml:250(title) pwck.8.xml:269(title) porttime.5.xml:130(title)
#: passwd.5.xml:141(title) passwd.1.xml:408(title) newusers.8.xml:397(title)
#: newgrp.1.xml:121(title) logoutd.8.xml:89(title)
#: login.access.5.xml:121(title) login.1.xml:338(title)
#: limits.5.xml:196(title) lastlog.8.xml:182(title) gshadow.5.xml:156(title)
#: grpck.8.xml:221(title) groups.1.xml:100(title) groupmod.8.xml:205(title)
#: groupmems.8.xml:211(title) groupdel.8.xml:140(title)
#: groupadd.8.xml:233(title) gpasswd.1.xml:279(title) faillog.8.xml:243(title)
#: faillog.5.xml:96(title) expiry.1.xml:121(title) chsh.1.xml:167(title)
#: chpasswd.8.xml:255(title) chgpasswd.8.xml:213(title) chfn.1.xml:207(title)
#: chage.1.xml:256(title)
#: login.access.5.xml:121(title) login.1.xml:338(title) limits.5.xml:196(title)
#: lastlog.8.xml:204(title) gshadow.5.xml:156(title) grpck.8.xml:221(title)
#: groups.1.xml:100(title) groupmod.8.xml:205(title) groupmems.8.xml:211(title)
#: groupdel.8.xml:140(title) groupadd.8.xml:233(title) gpasswd.1.xml:279(title)
#: faillog.8.xml:243(title) faillog.5.xml:96(title) expiry.1.xml:121(title)
#: chsh.1.xml:167(title) chpasswd.8.xml:255(title) chgpasswd.8.xml:213(title)
#: chfn.1.xml:207(title) chage.1.xml:256(title)
msgid "FILES"
msgstr "PLIKI"
#: vipw.8.xml:198(filename) usermod.8.xml:517(filename)
#: vipw.8.xml:198(filename) usermod.8.xml:516(filename)
#: userdel.8.xml:191(filename) useradd.8.xml:690(filename)
#: sg.1.xml:125(filename) pwck.8.xml:272(filename)
#: newusers.8.xml:412(filename) newgrp.1.xml:136(filename)
#: gshadow.5.xml:159(filename) grpck.8.xml:224(filename)
#: groups.1.xml:103(filename) groupmod.8.xml:208(filename)
#: groupmems.8.xml:214(filename) groupdel.8.xml:143(filename)
#: groupadd.8.xml:236(filename) gpasswd.1.xml:72(filename)
#: gpasswd.1.xml:75(filename) gpasswd.1.xml:282(filename)
#: chgpasswd.8.xml:216(filename)
#: sg.1.xml:125(filename) pwck.8.xml:272(filename) newusers.8.xml:412(filename)
#: newgrp.1.xml:136(filename) gshadow.5.xml:159(filename)
#: grpck.8.xml:224(filename) groups.1.xml:103(filename)
#: groupmod.8.xml:208(filename) groupmems.8.xml:214(filename)
#: groupdel.8.xml:143(filename) groupadd.8.xml:236(filename)
#: gpasswd.1.xml:72(filename) gpasswd.1.xml:75(filename)
#: gpasswd.1.xml:282(filename) chgpasswd.8.xml:216(filename)
msgid "/etc/group"
msgstr "/etc/group"
#: vipw.8.xml:200(para) usermod.8.xml:519(para) userdel.8.xml:193(para)
#: vipw.8.xml:200(para) usermod.8.xml:518(para) userdel.8.xml:193(para)
#: useradd.8.xml:692(para) sg.1.xml:127(para) pwck.8.xml:274(para)
#: newusers.8.xml:414(para) newgrp.1.xml:138(para) gshadow.5.xml:161(para)
#: grpck.8.xml:226(para) groups.1.xml:105(para) groupmod.8.xml:210(para)
@@ -518,7 +510,7 @@ msgstr "/etc/group"
msgid "Group account information."
msgstr "Informacje o grupach użytkowników."
#: vipw.8.xml:204(filename) usermod.8.xml:523(filename)
#: vipw.8.xml:204(filename) usermod.8.xml:522(filename)
#: useradd.8.xml:696(filename) sg.1.xml:131(filename)
#: newusers.8.xml:418(filename) newgrp.1.xml:142(filename)
#: gshadow.5.xml:165(filename) grpck.8.xml:230(filename)
@@ -529,7 +521,7 @@ msgstr "Informacje o grupach użytkowników."
msgid "/etc/gshadow"
msgstr "/etc/gshadow"
#: vipw.8.xml:206(para) usermod.8.xml:525(para) useradd.8.xml:698(para)
#: vipw.8.xml:206(para) usermod.8.xml:524(para) useradd.8.xml:698(para)
#: sg.1.xml:133(para) newusers.8.xml:420(para) newgrp.1.xml:144(para)
#: gshadow.5.xml:167(para) grpck.8.xml:232(para) groupmod.8.xml:216(para)
#: groupdel.8.xml:151(para) groupadd.8.xml:244(para) gpasswd.1.xml:290(para)
@@ -537,7 +529,7 @@ msgstr "/etc/gshadow"
msgid "Secure group account information."
msgstr "Informacje chronione o grupach użytkowników."
#: vipw.8.xml:210(filename) usermod.8.xml:535(filename)
#: vipw.8.xml:210(filename) usermod.8.xml:534(filename)
#: userdel.8.xml:203(filename) useradd.8.xml:678(filename)
#: su.1.xml:370(filename) sg.1.xml:113(filename) shadow.5.xml:258(filename)
#: pwck.8.xml:278(filename) passwd.5.xml:144(filename)
@@ -550,7 +542,7 @@ msgstr "Informacje chronione o grupach użytkowników."
msgid "/etc/passwd"
msgstr "/etc/passwd"
#: vipw.8.xml:212(para) usermod.8.xml:537(para) userdel.8.xml:205(para)
#: vipw.8.xml:212(para) usermod.8.xml:536(para) userdel.8.xml:205(para)
#: useradd.8.xml:680(para) su.1.xml:372(para) sg.1.xml:115(para)
#: shadow.5.xml:260(para) pwck.8.xml:280(para) passwd.5.xml:146(para)
#: passwd.1.xml:413(para) newusers.8.xml:402(para) newgrp.1.xml:126(para)
@@ -560,7 +552,7 @@ msgstr "/etc/passwd"
msgid "User account information."
msgstr "Informacja o kontach użytkowników."
#: vipw.8.xml:216(filename) usermod.8.xml:541(filename)
#: vipw.8.xml:216(filename) usermod.8.xml:540(filename)
#: userdel.8.xml:209(filename) useradd.8.xml:684(filename)
#: su.1.xml:376(filename) sg.1.xml:119(filename) shadow.5.xml:264(filename)
#: shadow.3.xml:229(filename) pwck.8.xml:284(filename)
@@ -571,7 +563,7 @@ msgstr "Informacja o kontach użytkowników."
msgid "/etc/shadow"
msgstr "/etc/shadow"
#: vipw.8.xml:218(para) usermod.8.xml:543(para) userdel.8.xml:211(para)
#: vipw.8.xml:218(para) usermod.8.xml:542(para) userdel.8.xml:211(para)
#: useradd.8.xml:686(para) su.1.xml:378(para) sg.1.xml:121(para)
#: shadow.5.xml:266(para) shadow.3.xml:231(para) pwck.8.xml:286(para)
#: passwd.1.xml:419(para) newusers.8.xml:408(para) newgrp.1.xml:132(para)
@@ -580,7 +572,7 @@ msgstr "/etc/shadow"
msgid "Secure user account information."
msgstr "Informacje chronione o użytkownikach."
#: vipw.8.xml:225(title) usermod.8.xml:562(title) userdel.8.xml:308(title)
#: vipw.8.xml:225(title) usermod.8.xml:561(title) userdel.8.xml:308(title)
#: useradd.8.xml:804(title) suauth.5.xml:222(title) su.1.xml:438(title)
#: sg.1.xml:140(title) shadow.5.xml:283(title) shadow.3.xml:238(title)
#: pwconv.8.xml:262(title) pwck.8.xml:344(title) porttime.5.xml:142(title)
@@ -655,15 +647,15 @@ msgstr ""
#: usermod.8.xml:46(surname) userdel.8.xml:46(surname)
#: useradd.8.xml:57(surname) su.1.xml:57(surname) sg.1.xml:41(surname)
#: shadow.5.xml:40(surname) shadow.3.xml:40(surname) pwck.8.xml:46(surname)
#: porttime.5.xml:40(surname) passwd.5.xml:40(surname)
#: passwd.1.xml:47(surname) newusers.8.xml:55(surname)
#: newgrp.1.xml:41(surname) logoutd.8.xml:40(surname)
#: login.defs.5.xml:105(surname) login.1.xml:73(surname)
#: lastlog.8.xml:41(surname) grpck.8.xml:41(surname) groups.1.xml:40(surname)
#: groupmod.8.xml:41(surname) groupdel.8.xml:41(surname)
#: groupadd.8.xml:43(surname) faillog.8.xml:40(surname)
#: faillog.5.xml:40(surname) expiry.1.xml:44(surname) chsh.1.xml:43(surname)
#: chpasswd.8.xml:44(surname) chfn.1.xml:43(surname) chage.1.xml:41(surname)
#: porttime.5.xml:40(surname) passwd.5.xml:40(surname) passwd.1.xml:47(surname)
#: newusers.8.xml:55(surname) newgrp.1.xml:41(surname)
#: logoutd.8.xml:40(surname) login.defs.5.xml:105(surname)
#: login.1.xml:73(surname) lastlog.8.xml:41(surname) grpck.8.xml:41(surname)
#: groups.1.xml:40(surname) groupmod.8.xml:41(surname)
#: groupdel.8.xml:41(surname) groupadd.8.xml:43(surname)
#: faillog.8.xml:40(surname) faillog.5.xml:40(surname) expiry.1.xml:44(surname)
#: chsh.1.xml:43(surname) chpasswd.8.xml:44(surname) chfn.1.xml:43(surname)
#: chage.1.xml:41(surname)
msgid "Haugh"
msgstr ""
@@ -1096,7 +1088,7 @@ msgstr ""
#| "<option>-K</option>, <option>--key</option>&nbsp;<replaceable>KEY</"
#| "replaceable>=<replaceable>VALUE</replaceable>"
msgid ""
"<option>-v</option>, <option>--add-sub-uids</option>&nbsp;"
"<option>-v</option>, <option>--add-subuids</option>&nbsp;"
"<replaceable>FIRST</replaceable>-<replaceable>LAST</replaceable>"
msgstr ""
"<option>-K</option>, <option>--key</option>&nbsp;<replaceable>KLUCZ</"
@@ -1125,7 +1117,7 @@ msgstr ""
#| "<option>-K</option>, <option>--key</option>&nbsp;<replaceable>KEY</"
#| "replaceable>=<replaceable>VALUE</replaceable>"
msgid ""
"<option>-V</option>, <option>--del-sub-uids</option>&nbsp;"
"<option>-V</option>, <option>--del-subuids</option>&nbsp;"
"<replaceable>FIRST</replaceable>-<replaceable>LAST</replaceable>"
msgstr ""
"<option>-K</option>, <option>--key</option>&nbsp;<replaceable>KLUCZ</"
@@ -1138,8 +1130,8 @@ msgstr ""
#: usermod.8.xml:409(para)
msgid ""
"This option may be specified multiple times to remove multiple ranges to a "
"users account. When both <option>--del-sub-uids</option> and <option>--add-"
"sub-uids</option> are specified, the removal of all subordinate uid ranges "
"users account. When both <option>--del-subuids</option> and <option>--add-"
"subuids</option> are specified, the removal of all subordinate uid ranges "
"happens before any subordinate uid range is added."
msgstr ""
@@ -1149,7 +1141,7 @@ msgstr ""
#| "<option>-K</option>, <option>--key</option>&nbsp;<replaceable>KEY</"
#| "replaceable>=<replaceable>VALUE</replaceable>"
msgid ""
"<option>-w</option>, <option>--add-sub-gids</option>&nbsp;"
"<option>-w</option>, <option>--add-subgids</option>&nbsp;"
"<replaceable>FIRST</replaceable>-<replaceable>LAST</replaceable>"
msgstr ""
"<option>-K</option>, <option>--key</option>&nbsp;<replaceable>KLUCZ</"
@@ -1172,7 +1164,7 @@ msgstr ""
#| "<option>-K</option>, <option>--key</option>&nbsp;<replaceable>KEY</"
#| "replaceable>=<replaceable>VALUE</replaceable>"
msgid ""
"<option>-W</option>, <option>--del-sub-gids</option>&nbsp;"
"<option>-W</option>, <option>--del-subgids</option>&nbsp;"
"<replaceable>FIRST</replaceable>-<replaceable>LAST</replaceable>"
msgstr ""
"<option>-K</option>, <option>--key</option>&nbsp;<replaceable>KLUCZ</"
@@ -1185,8 +1177,8 @@ msgstr ""
#: usermod.8.xml:447(para)
msgid ""
"This option may be specified multiple times to remove multiple ranges to a "
"users account. When both <option>--del-sub-gids</option> and <option>--add-"
"sub-gids</option> are specified, the removal of all subordinate gid ranges "
"users account. When both <option>--del-subgids</option> and <option>--add-"
"subgids</option> are specified, the removal of all subordinate gid ranges "
"happens before any subordinate gid range is added."
msgstr ""
@@ -1217,9 +1209,9 @@ msgstr ""
#: usermod.8.xml:478(title) userdel.8.xml:281(title) useradd.8.xml:623(title)
#: su.1.xml:331(title) shadow.3.xml:218(title) passwd.1.xml:372(title)
#: newusers.8.xml:350(title) login.1.xml:260(title) lastlog.8.xml:194(title)
#: groupdel.8.xml:116(title) groupadd.8.xml:257(title)
#: gpasswd.1.xml:252(title) faillog.8.xml:232(title) chpasswd.8.xml:231(title)
#: newusers.8.xml:350(title) login.1.xml:260(title) lastlog.8.xml:216(title)
#: groupdel.8.xml:116(title) groupadd.8.xml:257(title) gpasswd.1.xml:252(title)
#: faillog.8.xml:232(title) chpasswd.8.xml:231(title)
#: chgpasswd.8.xml:186(title)
msgid "CAVEATS"
msgstr "OSTRZEŻENIA"
@@ -1229,17 +1221,17 @@ msgid ""
"You must make certain that the named user is not executing any processes "
"when this command is being executed if the user's numerical user ID, the "
"user's name, or the user's home directory is being changed. "
"<command>usermod</command> checks this on Linux, but only check if the user "
"is logged in according to utmp on other architectures."
"<command>usermod</command> checks this on Linux. On other platforms it only "
"uses utmp to check if the user is logged in."
msgstr ""
#: usermod.8.xml:487(para)
#: usermod.8.xml:486(para)
msgid ""
"You must change the owner of any <command>crontab</command> files or "
"<command>at</command> jobs manually."
msgstr ""
#: usermod.8.xml:491(para)
#: usermod.8.xml:490(para)
msgid "You must make any changes involving NIS on the NIS server."
msgstr ""
@@ -1455,7 +1447,7 @@ msgid ""
"algorithm: <placeholder-1/>"
msgstr ""
#: usermod.8.xml:529(filename) userdel.8.xml:197(filename)
#: usermod.8.xml:528(filename) userdel.8.xml:197(filename)
#: useradd.8.xml:726(filename) su.1.xml:382(filename)
#: pwconv.8.xml:253(filename) passwd.1.xml:423(filename)
#: newusers.8.xml:424(filename) login.access.5.xml:124(filename)
@@ -1466,7 +1458,7 @@ msgstr ""
msgid "/etc/login.defs"
msgstr "/etc/login.defs"
#: usermod.8.xml:531(para) userdel.8.xml:199(para) useradd.8.xml:728(para)
#: usermod.8.xml:530(para) userdel.8.xml:199(para) useradd.8.xml:728(para)
#: su.1.xml:384(para) pwconv.8.xml:255(para) passwd.1.xml:425(para)
#: newusers.8.xml:426(para) login.access.5.xml:126(para) login.1.xml:391(para)
#: groupmod.8.xml:222(para) groupadd.8.xml:250(para) chsh.1.xml:184(para)
@@ -1474,31 +1466,31 @@ msgstr "/etc/login.defs"
msgid "Shadow password suite configuration."
msgstr "Konfiguracja pakietu shadow."
#: usermod.8.xml:547(filename) userdel.8.xml:215(filename)
#: usermod.8.xml:546(filename) userdel.8.xml:215(filename)
#: useradd.8.xml:714(filename) newusers.8.xml:436(filename)
#, fuzzy
#| msgid "/etc/suauth"
msgid "/etc/subgid"
msgstr "/etc/suauth"
#: usermod.8.xml:549(para) userdel.8.xml:217(para) useradd.8.xml:716(para)
#: usermod.8.xml:548(para) userdel.8.xml:217(para) useradd.8.xml:716(para)
#: newusers.8.xml:438(para)
msgid "Per user subordinate group IDs."
msgstr ""
#: usermod.8.xml:553(filename) userdel.8.xml:221(filename)
#: usermod.8.xml:552(filename) userdel.8.xml:221(filename)
#: useradd.8.xml:720(filename) newusers.8.xml:442(filename)
#, fuzzy
#| msgid "/etc/suauth"
msgid "/etc/subuid"
msgstr "/etc/suauth"
#: usermod.8.xml:555(para) userdel.8.xml:223(para) useradd.8.xml:722(para)
#: usermod.8.xml:554(para) userdel.8.xml:223(para) useradd.8.xml:722(para)
#: newusers.8.xml:444(para)
msgid "Per user subordinate user IDs."
msgstr ""
#: usermod.8.xml:563(para)
#: usermod.8.xml:562(para)
#, fuzzy
#| msgid ""
#| "<citerefentry><refentrytitle>chfn</refentrytitle><manvolnum>1</"
@@ -1731,9 +1723,8 @@ msgstr "poprawne zakończenie działania programu"
#: passwd.1.xml:449(replaceable) newgrp.1.xml:59(manvolnum)
#: login.1.xml:91(manvolnum) grpck.8.xml:256(replaceable)
#: groups.1.xml:58(manvolnum) gpasswd.1.xml:63(manvolnum)
#: expiry.1.xml:62(manvolnum) chsh.1.xml:61(manvolnum)
#: chfn.1.xml:61(manvolnum) chage.1.xml:59(manvolnum)
#: chage.1.xml:289(replaceable)
#: expiry.1.xml:62(manvolnum) chsh.1.xml:61(manvolnum) chfn.1.xml:61(manvolnum)
#: chage.1.xml:59(manvolnum) chage.1.xml:289(replaceable)
msgid "1"
msgstr "1"
@@ -2099,7 +2090,7 @@ msgid ""
"<option>PASS_MAX_DAYS</option> and others). <placeholder-1/> Example: "
"<option>-K</option>&nbsp;<replaceable>PASS_MAX_DAYS</"
"replaceable>=<replaceable>-1</replaceable> can be used when creating system "
"account to turn off password ageing, even though system account has no "
"account to turn off password aging, even though system account has no "
"password at all. Multiple <option>-K</option> options can be specified, e."
"g.: <option>-K</option>&nbsp;<replaceable>UID_MIN</"
"replaceable>=<replaceable>100</replaceable>&nbsp;<option>-K</option>&nbsp;"
@@ -2119,7 +2110,7 @@ msgstr ""
#: useradd.8.xml:327(para)
msgid ""
"By default, the user's entries in the lastlog and faillog databases are "
"resetted to avoid reusing the entry from a previously deleted user."
"reset to avoid reusing the entry from a previously deleted user."
msgstr ""
#: useradd.8.xml:335(term)
@@ -2139,11 +2130,11 @@ msgid ""
"is not enabled, no home directories are created."
msgstr ""
#: useradd.8.xml:354(option)
#: useradd.8.xml:353(term)
#, fuzzy
#| msgid "-"
msgid "-M"
msgstr "-"
#| msgid "<option>-m</option>, <option>--create-home</option>"
msgid "<option>-M</option>, <option>--no-create-home</option>"
msgstr "<option>-m</option>, <option>--create-home</option>"
#: useradd.8.xml:357(para)
msgid ""
@@ -2218,10 +2209,10 @@ msgstr ""
#: useradd.8.xml:434(para)
msgid ""
"Note that <command>useradd</command> will not create a home directory for "
"such an user, regardless of the default setting in <filename>/etc/login."
"defs</filename> (<option>CREATE_HOME</option>). You have to specify the "
"<option>-m</option> options if you want a home directory for a system "
"account to be created."
"such a user, regardless of the default setting in <filename>/etc/login.defs</"
"filename> (<option>CREATE_HOME</option>). You have to specify the <option>-"
"m</option> options if you want a home directory for a system account to be "
"created."
msgstr ""
#: useradd.8.xml:461(para)
@@ -2766,7 +2757,7 @@ msgstr ""
#, no-wrap
msgid ""
"\n"
" 1) the user su is targetting\n"
" 1) the user su is targeting\n"
" "
msgstr ""
@@ -2800,12 +2791,12 @@ msgstr ""
#: suauth.5.xml:107(para)
msgid ""
"from-id is formatted the same as to-id except the extra word "
"<emphasis>GROUP</emphasis> is recognised. <emphasis>ALL EXCEPT GROUP</"
"<emphasis>GROUP</emphasis> is recognized. <emphasis>ALL EXCEPT GROUP</"
"emphasis> is perfectly valid too. Following <emphasis>GROUP</emphasis> "
"appears one or more group names, delimited by \",\". It is not sufficient to "
"have primary group id of the relevant group, an entry in "
"<citerefentry><refentrytitle>/etc/group</refentrytitle><manvolnum>5</"
"manvolnum></citerefentry> is neccessary."
"manvolnum></citerefentry> is necessary."
msgstr ""
#: suauth.5.xml:118(para)
@@ -2910,9 +2901,8 @@ msgstr ""
"citerefentry>."
#: su.1.xml:58(contrib) shadow.5.xml:41(contrib) shadow.3.xml:41(contrib)
#: porttime.5.xml:41(contrib) passwd.5.xml:41(contrib)
#: passwd.1.xml:48(contrib) login.1.xml:74(contrib) faillog.8.xml:41(contrib)
#: faillog.5.xml:41(contrib)
#: porttime.5.xml:41(contrib) passwd.5.xml:41(contrib) passwd.1.xml:48(contrib)
#: login.1.xml:74(contrib) faillog.8.xml:41(contrib) faillog.5.xml:41(contrib)
msgid "Creation, 1989"
msgstr ""
@@ -3008,7 +2998,7 @@ msgstr ""
#: su.1.xml:158(para)
msgid ""
"The executed command will have no controlling terminal. This option cannot "
"be used to execute interractive programs which need a controlling TTY."
"be used to execute interactive programs which need a controlling TTY."
msgstr ""
#: su.1.xml:168(term)
@@ -3612,7 +3602,7 @@ msgstr ""
#: shadow.5.xml:117(para) gshadow.5.xml:107(para)
msgid ""
"A password field which starts with a exclamation mark means that the "
"A password field which starts with an exclamation mark means that the "
"password is locked. The remaining characters on the line represent the "
"password field before the password was locked."
msgstr ""
@@ -3630,7 +3620,7 @@ msgstr ""
#: shadow.5.xml:134(para)
msgid ""
"The value 0 has a special meaning, which is that the user should change her "
"pasword the next time she will log in the system."
"password the next time she will log in the system."
msgstr ""
#: shadow.5.xml:139(para)
@@ -3732,7 +3722,7 @@ msgstr ""
#: shadow.5.xml:229(para)
msgid ""
"Note that an account expiration differs from a password expiration. In case "
"of an acount expiration, the user shall not be allowed to login. In case of "
"of an account expiration, the user shall not be allowed to login. In case of "
"a password expiration, the user is not allowed to login using her password."
msgstr ""
@@ -4026,18 +4016,15 @@ msgstr ""
msgid "pwconv"
msgstr "pwconv"
#: pwconv.8.xml:71(refname) pwconv.8.xml:85(command)
#: login.defs.5.xml:438(term)
#: pwconv.8.xml:71(refname) pwconv.8.xml:85(command) login.defs.5.xml:438(term)
msgid "pwunconv"
msgstr "pwunconv"
#: pwconv.8.xml:72(refname) pwconv.8.xml:91(command)
#: login.defs.5.xml:340(term)
#: pwconv.8.xml:72(refname) pwconv.8.xml:91(command) login.defs.5.xml:340(term)
msgid "grpconv"
msgstr "grpconv"
#: pwconv.8.xml:73(refname) pwconv.8.xml:97(command)
#: login.defs.5.xml:346(term)
#: pwconv.8.xml:73(refname) pwconv.8.xml:97(command) login.defs.5.xml:346(term)
msgid "grpunconv"
msgstr "grpunconv"
@@ -4210,8 +4197,7 @@ msgstr ""
#: pwck.8.xml:80(replaceable) passwd.5.xml:57(refentrytitle)
#: passwd.5.xml:64(refname) passwd.1.xml:64(refentrytitle)
#: passwd.1.xml:71(refname) passwd.1.xml:77(command)
#: login.defs.5.xml:409(term)
#: passwd.1.xml:71(refname) passwd.1.xml:77(command) login.defs.5.xml:409(term)
msgid "passwd"
msgstr "passwd"
@@ -4361,7 +4347,7 @@ msgstr ""
msgid ""
"Note that when <option>USE_TCB</option> is enabled, you cannot specify an "
"alternative <replaceable>shadow</replaceable> file. In future releases, this "
"paramater could be replaced by an alternate TCB directory."
"parameter could be replaced by an alternate TCB directory."
msgstr ""
#: pwck.8.xml:312(para)
@@ -4673,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 ""
@@ -4684,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."
@@ -4755,7 +4741,7 @@ msgstr ""
#: passwd.1.xml:166(para)
msgid ""
"You can find advices on how to choose a strong password on http://en."
"You can find advice on how to choose a strong password on http://en."
"wikipedia.org/wiki/Password_strength"
msgstr ""
@@ -4790,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)
@@ -4859,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 "
@@ -4915,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 ""
@@ -5067,8 +5053,8 @@ msgstr "PASS_MIN_DAYS (numer)"
#: passwd.1.xml:35(para) login.defs.5.xml:35(para)
msgid ""
"Number of significant characters in the password for crypt(). "
"<option>PASS_MAX_LEN</option> is 8 by default. Don't change unless your crypt"
"() is better. This is ignored if <option>MD5_CRYPT_ENAB</option> set to "
"<option>PASS_MAX_LEN</option> is 8 by default. Don't change unless your "
"crypt() is better. This is ignored if <option>MD5_CRYPT_ENAB</option> set to "
"<replaceable>yes</replaceable>."
msgstr ""
@@ -5226,7 +5212,7 @@ msgid "HISTORY"
msgstr ""
#: nologin.8.xml:91(para)
msgid "The <command>nologin</command> command appearred in BSD 4.4."
msgid "The <command>nologin</command> command appeared in BSD 4.4."
msgstr ""
#: newusers.8.xml:72(refentrytitle) newusers.8.xml:79(refname)
@@ -5282,7 +5268,7 @@ msgstr ""
#: newusers.8.xml:116(para)
msgid ""
"It can be the name of a new user or the name of an existing user (or an user "
"It can be the name of a new user or the name of an existing user (or a user "
"created before by <command>newusers</command>). In case of an existing user, "
"the user's information will be changed, otherwise a new user will be created."
msgstr ""
@@ -5310,7 +5296,7 @@ msgstr ""
#: newusers.8.xml:144(para)
msgid ""
"If the field is empty, an new (unused) UID will be defined automatically by "
"If the field is empty, a new (unused) UID will be defined automatically by "
"<command>newusers</command>."
msgstr ""
@@ -5320,7 +5306,7 @@ msgstr ""
#: newusers.8.xml:152(para)
msgid ""
"If this field contains the name of an existing user (or the name of an user "
"If this field contains the name of an existing user (or the name of a user "
"created before by <command>newusers</command>), the UID of the specified "
"user will be used."
msgstr ""
@@ -6618,7 +6604,7 @@ msgid "D: max data size (KB)"
msgstr ""
#: limits.5.xml:111(para)
msgid "F: maximum filesize (KB)"
msgid "F: maximum file size (KB)"
msgstr ""
#: limits.5.xml:112(para)
@@ -6692,7 +6678,7 @@ msgstr ""
#: limits.5.xml:145(para)
msgid ""
"Be aware that after <emphasis remap=\"I\">username</emphasis> the rest of "
"the line is considered a limit string, thus comments are not allowed. A "
"the line is considered a limit string, thus comments are not allowed. An "
"invalid limits string will be rejected (not considered) by the "
"<command>login</command> program."
msgstr ""
@@ -6716,13 +6702,13 @@ msgstr ""
#: limits.5.xml:165(para)
msgid ""
"If more than one line with limits for an user exist, only the first line for "
"If more than one line with limits for a user exist, only the first line for "
"this user will be considered."
msgstr ""
#: limits.5.xml:170(para)
msgid ""
"If no lines are specified for an user, the last <replaceable>@group</"
"If no lines are specified for a user, the last <replaceable>@group</"
"replaceable> line matching a group whose the user is a member of will be "
"considered, or the last line with default limits if no groups contain the "
"user."
@@ -6810,7 +6796,33 @@ msgstr ""
"Wyświetlenie rekordów lastlog starszych niż zadana <emphasis remap=\"I"
"\">DNI</emphasis>."
#: lastlog.8.xml:127(term) faillog.8.xml:192(term)
#: lastlog.8.xml:107(term)
#, fuzzy
#| msgid "<option>-q</option>, <option>--quiet</option>"
msgid "<option>-C</option>, <option>--clear</option>"
msgstr "<option>-q</option>, <option>--quiet</option>"
#: lastlog.8.xml:111(para)
#, fuzzy
#| msgid "<option>-m</option>, <option>--create-home</option>"
msgid ""
"Clear lastlog record of a user. This option can be used only together with "
"<option>-u</option> (<option>--user</option>))."
msgstr "<option>-m</option>, <option>--create-home</option>"
#: lastlog.8.xml:138(term)
#, fuzzy
#| msgid "<option>-r</option>, <option>--reset</option>"
msgid "<option>-S</option>, <option>--set</option>"
msgstr "<option>-r</option>, <option>--reset</option>"
#: lastlog.8.xml:142(para)
msgid ""
"Set lastlog record of a user to the current time. This option can be used "
"only together with <option>-u</option> (<option>--user</option>))."
msgstr ""
#: lastlog.8.xml:149(term) faillog.8.xml:192(term)
msgid ""
"<option>-t</option>, <option>--time</option>&nbsp;<replaceable>DAYS</"
"replaceable>"
@@ -6818,7 +6830,7 @@ msgstr ""
"<option>-t</option>, <option>--time</option>&nbsp;<replaceable>DNI</"
"replaceable>"
#: lastlog.8.xml:131(para)
#: lastlog.8.xml:153(para)
msgid ""
"Print the lastlog records more recent than <emphasis remap=\"I\">DAYS</"
"emphasis>."
@@ -6826,7 +6838,7 @@ msgstr ""
"Wyświetlenie rekordów lastlog nie starszych niż zadana ilość <emphasis remap="
"\"I\">DNI</emphasis>."
#: lastlog.8.xml:138(term) faillog.8.xml:202(term)
#: lastlog.8.xml:160(term) faillog.8.xml:202(term)
#, fuzzy
#| msgid ""
#| "<option>-K</option>, <option>--key</option>&nbsp;<replaceable>KEY</"
@@ -6838,7 +6850,7 @@ msgstr ""
"<option>-K</option>, <option>--key</option>&nbsp;<replaceable>KLUCZ</"
"replaceable>=<replaceable>WARTOŚĆ</replaceable>"
#: lastlog.8.xml:142(para)
#: lastlog.8.xml:164(para)
#, fuzzy
#| msgid ""
#| "Print the lastlog record for user with specified <emphasis remap=\"I"
@@ -6848,7 +6860,7 @@ msgstr ""
"Wyświetlenie informacji o ostanim logowaniu dla użytkownika "
"<replaceable>LOGIN</replaceable>."
#: lastlog.8.xml:145(para) faillog.8.xml:211(para)
#: lastlog.8.xml:167(para) faillog.8.xml:211(para)
msgid ""
"The users can be specified by a login name, a numerical user ID, or a "
"<replaceable>RANGE</replaceable> of users. This <replaceable>RANGE</"
@@ -6857,7 +6869,7 @@ msgid ""
"UID_MAX</replaceable>), or a min value (<replaceable>UID_MIN-</replaceable>)."
msgstr ""
#: lastlog.8.xml:157(para)
#: lastlog.8.xml:179(para)
msgid ""
"If the user has never logged in the message <emphasis>** Never logged in**</"
"emphasis> will be displayed instead of the port and time."
@@ -6866,18 +6878,18 @@ msgstr ""
"logowania wyświetlany jest komunikat <emphasis>**Nigdy nie zalogowany**</"
"emphasis> (użytkownik nigdy się nie logował)."
#: lastlog.8.xml:162(para)
#: lastlog.8.xml:184(para)
msgid ""
"Only the entries for the current users of the system will be displayed. "
"Other entries may exist for users that were deleted previously."
msgstr ""
#: lastlog.8.xml:170(title) groups.1.xml:90(title) chsh.1.xml:140(title)
#: lastlog.8.xml:192(title) groups.1.xml:90(title) chsh.1.xml:140(title)
#: chage.1.xml:231(title)
msgid "NOTE"
msgstr "UWAGI"
#: lastlog.8.xml:171(para)
#: lastlog.8.xml:193(para)
msgid ""
"The <filename>lastlog</filename> file is a database which contains info on "
"the last login of each user. You should not rotate it. It is a sparse file, "
@@ -6895,15 +6907,15 @@ msgstr ""
"wartościami UID). Mozesz wyświetlić rzeczywisty rozmiar tego pliku używając "
"polecenia \"<command>ls -s</command>\"."
#: lastlog.8.xml:185(filename)
#: lastlog.8.xml:207(filename)
msgid "/var/log/lastlog"
msgstr "/var/log/lastlog"
#: lastlog.8.xml:187(para)
#: lastlog.8.xml:209(para)
msgid "Database times of previous user logins."
msgstr "Baza danych ostatnich logowań użytkowników."
#: lastlog.8.xml:195(para)
#: lastlog.8.xml:217(para)
msgid ""
"Large gaps in UID numbers will cause the lastlog program to run longer with "
"no output to the screen (i.e. if in lastlog database there is no entries for "
@@ -6964,7 +6976,7 @@ msgstr ""
#| "modified using the <citerefentry><refentrytitle>chfn</"
#| "refentrytitle><manvolnum>1</manvolnum></citerefentry> utility."
msgid ""
"The password is used when an user who is not a member of the group wants to "
"The password is used when a user who is not a member of the group wants to "
"gain the permissions of this group (see <citerefentry><refentrytitle>newgrp</"
"refentrytitle><manvolnum>1</manvolnum></citerefentry>)."
msgstr ""
@@ -7443,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)."
@@ -7473,7 +7485,7 @@ msgstr ""
"replaceable>"
#: groupmems.8.xml:109(para)
msgid "Add an user to the group membership list."
msgid "Add a user to the group membership list."
msgstr ""
#: groupmems.8.xml:110(para) groupmems.8.xml:126(para)
@@ -8461,7 +8473,7 @@ msgstr ""
msgid ""
"The default encryption algorithm can be defined for the system with the "
"<option>ENCRYPT_METHOD</option> or <option>MD5_CRYPT_ENAB</option> variables "
"of <filename>/etc/login.defs</filename>, and can be overwitten with the "
"of <filename>/etc/login.defs</filename>, and can be overwritten with the "
"<option>-e</option>, <option>-m</option>, or <option>-c</option> options."
msgstr ""
@@ -8476,7 +8488,7 @@ msgstr ""
msgid ""
"<phrase condition=\"pam\">Except when PAM is used to encrypt the passwords,</"
"phrase><command>chpasswd</command> first updates all the passwords in "
"memory, and then commits all the changes to disk if no errors occured for "
"memory, and then commits all the changes to disk if no errors occurred for "
"any user."
msgstr ""
@@ -8643,7 +8655,7 @@ msgstr ""
msgid ""
"The default encryption algorithm can be defined for the system with the "
"<option>ENCRYPT_METHOD</option> variable of <filename>/etc/login.defs</"
"filename>, and can be overwiten with the <option>-e</option>, <option>-m</"
"filename>, and can be overwritten with the <option>-e</option>, <option>-m</"
"option>, or <option>-c</option> options."
msgstr ""
@@ -8821,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 "
@@ -8935,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 ""
@@ -8968,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 "
@@ -9001,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 "
@@ -9028,6 +9040,11 @@ msgstr ""
msgid "translator-credits"
msgstr "Tomasz Kłoczko <kloczek@pld.org.pl>, 2006"
#, fuzzy
#~| msgid "-"
#~ msgid "-M"
#~ msgstr "-"
#~ msgid ""
#~ "<citerefentry><refentrytitle>chfn</refentrytitle><manvolnum>1</"
#~ "manvolnum></citerefentry>, <citerefentry><refentrytitle>chsh</"

File diff suppressed because it is too large Load Diff

View File

@@ -1,7 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"POT-Creation-Date: 2013-08-23 01:54+0200\n"
"POT-Creation-Date: 2016-09-18 14:03-0500\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -105,11 +105,11 @@ msgstr ""
msgid "Edit group database."
msgstr ""
#: vipw.8.xml:120(term) userdel.8.xml:123(term) useradd.8.xml:266(term) pwconv.8.xml:195(term) pwck.8.xml:186(term) passwd.1.xml:214(term) newusers.8.xml:283(term) lastlog.8.xml:107(term) grpck.8.xml:157(term) groupmod.8.xml:129(term) groupmems.8.xml:142(term) groupdel.8.xml:95(term) groupadd.8.xml:131(term) gpasswd.1.xml:173(term) faillog.8.xml:122(term) expiry.1.xml:112(term) chsh.1.xml:101(term) chpasswd.8.xml:171(term) chgpasswd.8.xml:131(term) chage.1.xml:129(term)
#: vipw.8.xml:120(term) userdel.8.xml:123(term) useradd.8.xml:266(term) pwconv.8.xml:195(term) pwck.8.xml:186(term) passwd.1.xml:214(term) newusers.8.xml:283(term) lastlog.8.xml:118(term) grpck.8.xml:157(term) groupmod.8.xml:129(term) groupmems.8.xml:142(term) groupdel.8.xml:95(term) groupadd.8.xml:131(term) gpasswd.1.xml:173(term) faillog.8.xml:122(term) expiry.1.xml:112(term) chsh.1.xml:101(term) chpasswd.8.xml:171(term) chgpasswd.8.xml:131(term) chage.1.xml:129(term)
msgid "<option>-h</option>, <option>--help</option>"
msgstr ""
#: vipw.8.xml:122(para) userdel.8.xml:125(para) useradd.8.xml:268(para) pwconv.8.xml:197(para) pwck.8.xml:188(para) passwd.1.xml:216(para) newusers.8.xml:285(para) lastlog.8.xml:111(para) grpck.8.xml:159(para) groupmod.8.xml:131(para) groupmems.8.xml:144(para) groupdel.8.xml:97(para) groupadd.8.xml:133(para) gpasswd.1.xml:175(para) faillog.8.xml:124(para) expiry.1.xml:114(para) chsh.1.xml:103(para) chpasswd.8.xml:173(para) chgpasswd.8.xml:133(para) chfn.1.xml:169(para) chage.1.xml:131(para)
#: vipw.8.xml:122(para) userdel.8.xml:125(para) useradd.8.xml:268(para) pwconv.8.xml:197(para) pwck.8.xml:188(para) passwd.1.xml:216(para) newusers.8.xml:285(para) lastlog.8.xml:122(para) grpck.8.xml:159(para) groupmod.8.xml:131(para) groupmems.8.xml:144(para) groupdel.8.xml:97(para) groupadd.8.xml:133(para) gpasswd.1.xml:175(para) faillog.8.xml:124(para) expiry.1.xml:114(para) chsh.1.xml:103(para) chpasswd.8.xml:173(para) chgpasswd.8.xml:133(para) chfn.1.xml:169(para) chage.1.xml:131(para)
msgid "Display help message and exit."
msgstr ""
@@ -129,11 +129,11 @@ msgstr ""
msgid "Quiet mode."
msgstr ""
#: vipw.8.xml:138(term) usermod.8.xml:311(term) userdel.8.xml:146(term) useradd.8.xml:445(term) pwconv.8.xml:201(term) pwck.8.xml:209(term) passwd.1.xml:301(term) newusers.8.xml:308(term) lastlog.8.xml:115(term) grpck.8.xml:173(term) groupmod.8.xml:178(term) groupmems.8.xml:165(term) groupdel.8.xml:101(term) groupadd.8.xml:204(term) faillog.8.xml:180(term) chsh.1.xml:107(term) chpasswd.8.xml:188(term) chgpasswd.8.xml:146(term) chfn.1.xml:153(term) chage.1.xml:197(term)
#: vipw.8.xml:138(term) usermod.8.xml:311(term) userdel.8.xml:146(term) useradd.8.xml:445(term) pwconv.8.xml:201(term) pwck.8.xml:209(term) passwd.1.xml:301(term) newusers.8.xml:308(term) lastlog.8.xml:126(term) grpck.8.xml:173(term) groupmod.8.xml:178(term) groupmems.8.xml:165(term) groupdel.8.xml:101(term) groupadd.8.xml:204(term) faillog.8.xml:180(term) chsh.1.xml:107(term) chpasswd.8.xml:188(term) chgpasswd.8.xml:146(term) chfn.1.xml:153(term) chage.1.xml:197(term)
msgid "<option>-R</option>, <option>--root</option>&nbsp;<replaceable>CHROOT_DIR</replaceable>"
msgstr ""
#: vipw.8.xml:142(para) usermod.8.xml:315(para) userdel.8.xml:150(para) useradd.8.xml:449(para) pwconv.8.xml:205(para) pwck.8.xml:213(para) passwd.1.xml:305(para) newusers.8.xml:312(para) lastlog.8.xml:119(para) grpck.8.xml:177(para) groupmod.8.xml:182(para) groupmems.8.xml:169(para) groupdel.8.xml:105(para) groupadd.8.xml:208(para) gpasswd.1.xml:185(para) faillog.8.xml:184(para) chsh.1.xml:111(para) chpasswd.8.xml:192(para) chgpasswd.8.xml:150(para) chfn.1.xml:157(para) chage.1.xml:201(para)
#: vipw.8.xml:142(para) usermod.8.xml:315(para) userdel.8.xml:150(para) useradd.8.xml:449(para) pwconv.8.xml:205(para) pwck.8.xml:213(para) passwd.1.xml:305(para) newusers.8.xml:312(para) lastlog.8.xml:130(para) grpck.8.xml:177(para) groupmod.8.xml:182(para) groupmems.8.xml:169(para) groupdel.8.xml:105(para) groupadd.8.xml:208(para) gpasswd.1.xml:185(para) faillog.8.xml:184(para) chsh.1.xml:111(para) chpasswd.8.xml:192(para) chgpasswd.8.xml:150(para) chfn.1.xml:157(para) chage.1.xml:201(para)
msgid "Apply changes in the <replaceable>CHROOT_DIR</replaceable> directory and use the configuration files from the <replaceable>CHROOT_DIR</replaceable> directory."
msgstr ""
@@ -153,11 +153,11 @@ msgstr ""
msgid "Indicates which user's tcb shadow file to edit."
msgstr ""
#: vipw.8.xml:165(title) usermod.8.xml:497(title) userdel.8.xml:171(title) useradd.8.xml:647(title) su.1.xml:339(title) sg.1.xml:98(title) pwconv.8.xml:227(title) pwck.8.xml:252(title) passwd.1.xml:390(title) newusers.8.xml:362(title) newgrp.1.xml:109(title) login.1.xml:294(title) grpck.8.xml:209(title) groupmod.8.xml:193(title) groupmems.8.xml:199(title) groupdel.8.xml:128(title) groupadd.8.xml:219(title) gpasswd.1.xml:264(title) chsh.1.xml:154(title) chpasswd.8.xml:239(title) chgpasswd.8.xml:198(title) chfn.1.xml:193(title) chage.1.xml:244(title)
#: vipw.8.xml:165(title) usermod.8.xml:496(title) userdel.8.xml:171(title) useradd.8.xml:647(title) su.1.xml:339(title) sg.1.xml:98(title) pwconv.8.xml:227(title) pwck.8.xml:252(title) passwd.1.xml:390(title) newusers.8.xml:362(title) newgrp.1.xml:109(title) login.1.xml:294(title) grpck.8.xml:209(title) groupmod.8.xml:193(title) groupmems.8.xml:199(title) groupdel.8.xml:128(title) groupadd.8.xml:219(title) gpasswd.1.xml:264(title) chsh.1.xml:154(title) chpasswd.8.xml:239(title) chgpasswd.8.xml:198(title) chfn.1.xml:193(title) chage.1.xml:244(title)
msgid "CONFIGURATION"
msgstr ""
#: vipw.8.xml:166(para) usermod.8.xml:498(para) userdel.8.xml:172(para) useradd.8.xml:648(para) su.1.xml:340(para) sg.1.xml:99(para) pwck.8.xml:253(para) passwd.1.xml:391(para) newusers.8.xml:363(para) newgrp.1.xml:110(para) login.1.xml:295(para) grpck.8.xml:210(para) groupmod.8.xml:194(para) groupmems.8.xml:200(para) groupdel.8.xml:129(para) groupadd.8.xml:220(para) gpasswd.1.xml:265(para) chsh.1.xml:155(para) chpasswd.8.xml:240(para) chgpasswd.8.xml:199(para) chfn.1.xml:194(para) chage.1.xml:245(para)
#: vipw.8.xml:166(para) usermod.8.xml:497(para) userdel.8.xml:172(para) useradd.8.xml:648(para) su.1.xml:340(para) sg.1.xml:99(para) pwck.8.xml:253(para) passwd.1.xml:391(para) newusers.8.xml:363(para) newgrp.1.xml:110(para) login.1.xml:295(para) grpck.8.xml:210(para) groupmod.8.xml:194(para) groupmems.8.xml:200(para) groupdel.8.xml:129(para) groupadd.8.xml:220(para) gpasswd.1.xml:265(para) chsh.1.xml:155(para) chpasswd.8.xml:240(para) chgpasswd.8.xml:199(para) chfn.1.xml:194(para) chage.1.xml:245(para)
msgid "The following configuration variables in <filename>/etc/login.defs</filename> change the behavior of this tool:"
msgstr ""
@@ -189,43 +189,43 @@ msgstr ""
msgid "Editor to be used if <option>VISUAL</option> is not set."
msgstr ""
#: vipw.8.xml:195(title) usermod.8.xml:514(title) userdel.8.xml:188(title) useradd.8.xml:675(title) suauth.5.xml:193(title) su.1.xml:367(title) sg.1.xml:110(title) shadow.5.xml:255(title) shadow.3.xml:226(title) pwconv.8.xml:250(title) pwck.8.xml:269(title) porttime.5.xml:130(title) passwd.5.xml:141(title) passwd.1.xml:408(title) newusers.8.xml:397(title) newgrp.1.xml:121(title) logoutd.8.xml:89(title) login.access.5.xml:121(title) login.1.xml:338(title) limits.5.xml:196(title) lastlog.8.xml:182(title) gshadow.5.xml:156(title) grpck.8.xml:221(title) groups.1.xml:100(title) groupmod.8.xml:205(title) groupmems.8.xml:211(title) groupdel.8.xml:140(title) groupadd.8.xml:233(title) gpasswd.1.xml:279(title) faillog.8.xml:243(title) faillog.5.xml:96(title) expiry.1.xml:121(title) chsh.1.xml:167(title) chpasswd.8.xml:255(title) chgpasswd.8.xml:213(title) chfn.1.xml:207(title) chage.1.xml:256(title)
#: vipw.8.xml:195(title) usermod.8.xml:513(title) userdel.8.xml:188(title) useradd.8.xml:675(title) suauth.5.xml:193(title) su.1.xml:367(title) sg.1.xml:110(title) shadow.5.xml:255(title) shadow.3.xml:226(title) pwconv.8.xml:250(title) pwck.8.xml:269(title) porttime.5.xml:130(title) passwd.5.xml:141(title) passwd.1.xml:408(title) newusers.8.xml:397(title) newgrp.1.xml:121(title) logoutd.8.xml:89(title) login.access.5.xml:121(title) login.1.xml:338(title) limits.5.xml:196(title) lastlog.8.xml:204(title) gshadow.5.xml:156(title) grpck.8.xml:221(title) groups.1.xml:100(title) groupmod.8.xml:205(title) groupmems.8.xml:211(title) groupdel.8.xml:140(title) groupadd.8.xml:233(title) gpasswd.1.xml:279(title) faillog.8.xml:243(title) faillog.5.xml:96(title) expiry.1.xml:121(title) chsh.1.xml:167(title) chpasswd.8.xml:255(title) chgpasswd.8.xml:213(title) chfn.1.xml:207(title) chage.1.xml:256(title)
msgid "FILES"
msgstr ""
#: vipw.8.xml:198(filename) usermod.8.xml:517(filename) userdel.8.xml:191(filename) useradd.8.xml:690(filename) sg.1.xml:125(filename) pwck.8.xml:272(filename) newusers.8.xml:412(filename) newgrp.1.xml:136(filename) gshadow.5.xml:159(filename) grpck.8.xml:224(filename) groups.1.xml:103(filename) groupmod.8.xml:208(filename) groupmems.8.xml:214(filename) groupdel.8.xml:143(filename) groupadd.8.xml:236(filename) gpasswd.1.xml:72(filename) gpasswd.1.xml:75(filename) gpasswd.1.xml:282(filename) chgpasswd.8.xml:216(filename)
#: vipw.8.xml:198(filename) usermod.8.xml:516(filename) userdel.8.xml:191(filename) useradd.8.xml:690(filename) sg.1.xml:125(filename) pwck.8.xml:272(filename) newusers.8.xml:412(filename) newgrp.1.xml:136(filename) gshadow.5.xml:159(filename) grpck.8.xml:224(filename) groups.1.xml:103(filename) groupmod.8.xml:208(filename) groupmems.8.xml:214(filename) groupdel.8.xml:143(filename) groupadd.8.xml:236(filename) gpasswd.1.xml:72(filename) gpasswd.1.xml:75(filename) gpasswd.1.xml:282(filename) chgpasswd.8.xml:216(filename)
msgid "/etc/group"
msgstr ""
#: vipw.8.xml:200(para) usermod.8.xml:519(para) userdel.8.xml:193(para) useradd.8.xml:692(para) sg.1.xml:127(para) pwck.8.xml:274(para) newusers.8.xml:414(para) newgrp.1.xml:138(para) gshadow.5.xml:161(para) grpck.8.xml:226(para) groups.1.xml:105(para) groupmod.8.xml:210(para) groupmems.8.xml:216(para) groupdel.8.xml:145(para) groupadd.8.xml:238(para) gpasswd.1.xml:284(para) chgpasswd.8.xml:218(para)
#: vipw.8.xml:200(para) usermod.8.xml:518(para) userdel.8.xml:193(para) useradd.8.xml:692(para) sg.1.xml:127(para) pwck.8.xml:274(para) newusers.8.xml:414(para) newgrp.1.xml:138(para) gshadow.5.xml:161(para) grpck.8.xml:226(para) groups.1.xml:105(para) groupmod.8.xml:210(para) groupmems.8.xml:216(para) groupdel.8.xml:145(para) groupadd.8.xml:238(para) gpasswd.1.xml:284(para) chgpasswd.8.xml:218(para)
msgid "Group account information."
msgstr ""
#: vipw.8.xml:204(filename) usermod.8.xml:523(filename) useradd.8.xml:696(filename) sg.1.xml:131(filename) newusers.8.xml:418(filename) newgrp.1.xml:142(filename) gshadow.5.xml:165(filename) grpck.8.xml:230(filename) groupmod.8.xml:214(filename) groupmems.8.xml:220(filename) groupdel.8.xml:149(filename) groupadd.8.xml:242(filename) gpasswd.1.xml:76(filename) gpasswd.1.xml:288(filename) chgpasswd.8.xml:222(filename)
#: vipw.8.xml:204(filename) usermod.8.xml:522(filename) useradd.8.xml:696(filename) sg.1.xml:131(filename) newusers.8.xml:418(filename) newgrp.1.xml:142(filename) gshadow.5.xml:165(filename) grpck.8.xml:230(filename) groupmod.8.xml:214(filename) groupmems.8.xml:220(filename) groupdel.8.xml:149(filename) groupadd.8.xml:242(filename) gpasswd.1.xml:76(filename) gpasswd.1.xml:288(filename) chgpasswd.8.xml:222(filename)
msgid "/etc/gshadow"
msgstr ""
#: vipw.8.xml:206(para) usermod.8.xml:525(para) useradd.8.xml:698(para) sg.1.xml:133(para) newusers.8.xml:420(para) newgrp.1.xml:144(para) gshadow.5.xml:167(para) grpck.8.xml:232(para) groupmod.8.xml:216(para) groupdel.8.xml:151(para) groupadd.8.xml:244(para) gpasswd.1.xml:290(para) chgpasswd.8.xml:224(para)
#: vipw.8.xml:206(para) usermod.8.xml:524(para) useradd.8.xml:698(para) sg.1.xml:133(para) newusers.8.xml:420(para) newgrp.1.xml:144(para) gshadow.5.xml:167(para) grpck.8.xml:232(para) groupmod.8.xml:216(para) groupdel.8.xml:151(para) groupadd.8.xml:244(para) gpasswd.1.xml:290(para) chgpasswd.8.xml:224(para)
msgid "Secure group account information."
msgstr ""
#: vipw.8.xml:210(filename) usermod.8.xml:535(filename) userdel.8.xml:203(filename) useradd.8.xml:678(filename) su.1.xml:370(filename) sg.1.xml:113(filename) shadow.5.xml:258(filename) pwck.8.xml:278(filename) passwd.5.xml:144(filename) passwd.1.xml:411(filename) newusers.8.xml:400(filename) newgrp.1.xml:124(filename) login.1.xml:353(filename) grpck.8.xml:236(filename) groupmod.8.xml:226(filename) expiry.1.xml:124(filename) chsh.1.xml:170(filename) chpasswd.8.xml:258(filename) chfn.1.xml:216(filename) chage.1.xml:260(filename)
#: vipw.8.xml:210(filename) usermod.8.xml:534(filename) userdel.8.xml:203(filename) useradd.8.xml:678(filename) su.1.xml:370(filename) sg.1.xml:113(filename) shadow.5.xml:258(filename) pwck.8.xml:278(filename) passwd.5.xml:144(filename) passwd.1.xml:411(filename) newusers.8.xml:400(filename) newgrp.1.xml:124(filename) login.1.xml:353(filename) grpck.8.xml:236(filename) groupmod.8.xml:226(filename) expiry.1.xml:124(filename) chsh.1.xml:170(filename) chpasswd.8.xml:258(filename) chfn.1.xml:216(filename) chage.1.xml:260(filename)
msgid "/etc/passwd"
msgstr ""
#: vipw.8.xml:212(para) usermod.8.xml:537(para) userdel.8.xml:205(para) useradd.8.xml:680(para) su.1.xml:372(para) sg.1.xml:115(para) shadow.5.xml:260(para) pwck.8.xml:280(para) passwd.5.xml:146(para) passwd.1.xml:413(para) newusers.8.xml:402(para) newgrp.1.xml:126(para) login.1.xml:355(para) grpck.8.xml:238(para) groupmod.8.xml:228(para) expiry.1.xml:126(para) chsh.1.xml:172(para) chpasswd.8.xml:260(para) chfn.1.xml:218(para) chage.1.xml:263(para)
#: vipw.8.xml:212(para) usermod.8.xml:536(para) userdel.8.xml:205(para) useradd.8.xml:680(para) su.1.xml:372(para) sg.1.xml:115(para) shadow.5.xml:260(para) pwck.8.xml:280(para) passwd.5.xml:146(para) passwd.1.xml:413(para) newusers.8.xml:402(para) newgrp.1.xml:126(para) login.1.xml:355(para) grpck.8.xml:238(para) groupmod.8.xml:228(para) expiry.1.xml:126(para) chsh.1.xml:172(para) chpasswd.8.xml:260(para) chfn.1.xml:218(para) chage.1.xml:263(para)
msgid "User account information."
msgstr ""
#: vipw.8.xml:216(filename) usermod.8.xml:541(filename) userdel.8.xml:209(filename) useradd.8.xml:684(filename) su.1.xml:376(filename) sg.1.xml:119(filename) shadow.5.xml:264(filename) shadow.3.xml:229(filename) pwck.8.xml:284(filename) passwd.5.xml:150(filename) passwd.1.xml:417(filename) newusers.8.xml:406(filename) newgrp.1.xml:130(filename) login.1.xml:359(filename) expiry.1.xml:130(filename) chpasswd.8.xml:264(filename) chage.1.xml:268(filename)
#: vipw.8.xml:216(filename) usermod.8.xml:540(filename) userdel.8.xml:209(filename) useradd.8.xml:684(filename) su.1.xml:376(filename) sg.1.xml:119(filename) shadow.5.xml:264(filename) shadow.3.xml:229(filename) pwck.8.xml:284(filename) passwd.5.xml:150(filename) passwd.1.xml:417(filename) newusers.8.xml:406(filename) newgrp.1.xml:130(filename) login.1.xml:359(filename) expiry.1.xml:130(filename) chpasswd.8.xml:264(filename) chage.1.xml:268(filename)
msgid "/etc/shadow"
msgstr ""
#: vipw.8.xml:218(para) usermod.8.xml:543(para) userdel.8.xml:211(para) useradd.8.xml:686(para) su.1.xml:378(para) sg.1.xml:121(para) shadow.5.xml:266(para) shadow.3.xml:231(para) pwck.8.xml:286(para) passwd.1.xml:419(para) newusers.8.xml:408(para) newgrp.1.xml:132(para) login.1.xml:361(para) expiry.1.xml:132(para) chpasswd.8.xml:266(para) chage.1.xml:271(para)
#: vipw.8.xml:218(para) usermod.8.xml:542(para) userdel.8.xml:211(para) useradd.8.xml:686(para) su.1.xml:378(para) sg.1.xml:121(para) shadow.5.xml:266(para) shadow.3.xml:231(para) pwck.8.xml:286(para) passwd.1.xml:419(para) newusers.8.xml:408(para) newgrp.1.xml:132(para) login.1.xml:361(para) expiry.1.xml:132(para) chpasswd.8.xml:266(para) chage.1.xml:271(para)
msgid "Secure user account information."
msgstr ""
#: vipw.8.xml:225(title) usermod.8.xml:562(title) userdel.8.xml:308(title) useradd.8.xml:804(title) suauth.5.xml:222(title) su.1.xml:438(title) sg.1.xml:140(title) shadow.5.xml:283(title) shadow.3.xml:238(title) pwconv.8.xml:262(title) pwck.8.xml:344(title) porttime.5.xml:142(title) passwd.5.xml:169(title) passwd.1.xml:489(title) nologin.8.xml:78(title) newusers.8.xml:451(title) newgrp.1.xml:151(title) login.defs.5.xml:534(title) login.access.5.xml:133(title) login.1.xml:398(title) limits.5.xml:206(title) gshadow.5.xml:174(title) grpck.8.xml:290(title) groups.1.xml:112(title) groupmod.8.xml:286(title) groupmems.8.xml:229(title) groupdel.8.xml:197(title) groupadd.8.xml:324(title) gpasswd.1.xml:297(title) faillog.8.xml:255(title) faillog.5.xml:108(title) expiry.1.xml:139(title) chsh.1.xml:191(title) chpasswd.8.xml:285(title) chgpasswd.8.xml:237(title) chfn.1.xml:225(title) chage.1.xml:311(title)
#: vipw.8.xml:225(title) usermod.8.xml:561(title) userdel.8.xml:308(title) useradd.8.xml:804(title) suauth.5.xml:222(title) su.1.xml:438(title) sg.1.xml:140(title) shadow.5.xml:283(title) shadow.3.xml:238(title) pwconv.8.xml:262(title) pwck.8.xml:344(title) porttime.5.xml:142(title) passwd.5.xml:169(title) passwd.1.xml:489(title) nologin.8.xml:78(title) newusers.8.xml:451(title) newgrp.1.xml:151(title) login.defs.5.xml:534(title) login.access.5.xml:133(title) login.1.xml:398(title) limits.5.xml:206(title) gshadow.5.xml:174(title) grpck.8.xml:290(title) groups.1.xml:112(title) groupmod.8.xml:286(title) groupmems.8.xml:229(title) groupdel.8.xml:197(title) groupadd.8.xml:324(title) gpasswd.1.xml:297(title) faillog.8.xml:255(title) faillog.5.xml:108(title) expiry.1.xml:139(title) chsh.1.xml:191(title) chpasswd.8.xml:285(title) chgpasswd.8.xml:237(title) chfn.1.xml:225(title) chage.1.xml:311(title)
msgid "SEE ALSO"
msgstr ""
@@ -458,7 +458,7 @@ msgid "Note: if you wish to unlock the account (not only access with a password)
msgstr ""
#: usermod.8.xml:384(term)
msgid "<option>-v</option>, <option>--add-sub-uids</option>&nbsp;<replaceable>FIRST</replaceable>-<replaceable>LAST</replaceable>"
msgid "<option>-v</option>, <option>--add-subuids</option>&nbsp;<replaceable>FIRST</replaceable>-<replaceable>LAST</replaceable>"
msgstr ""
#: usermod.8.xml:388(para)
@@ -474,7 +474,7 @@ msgid "No checks will be performed with regard to <option>SUB_UID_MIN</option>,
msgstr ""
#: usermod.8.xml:402(term)
msgid "<option>-V</option>, <option>--del-sub-uids</option>&nbsp;<replaceable>FIRST</replaceable>-<replaceable>LAST</replaceable>"
msgid "<option>-V</option>, <option>--del-subuids</option>&nbsp;<replaceable>FIRST</replaceable>-<replaceable>LAST</replaceable>"
msgstr ""
#: usermod.8.xml:406(para)
@@ -482,11 +482,11 @@ msgid "Remove a range of subordinate uids from the user's account."
msgstr ""
#: usermod.8.xml:409(para)
msgid "This option may be specified multiple times to remove multiple ranges to a users account. When both <option>--del-sub-uids</option> and <option>--add-sub-uids</option> are specified, the removal of all subordinate uid ranges happens before any subordinate uid range is added."
msgid "This option may be specified multiple times to remove multiple ranges to a users account. When both <option>--del-subuids</option> and <option>--add-subuids</option> are specified, the removal of all subordinate uid ranges happens before any subordinate uid range is added."
msgstr ""
#: usermod.8.xml:422(term)
msgid "<option>-w</option>, <option>--add-sub-gids</option>&nbsp;<replaceable>FIRST</replaceable>-<replaceable>LAST</replaceable>"
msgid "<option>-w</option>, <option>--add-subgids</option>&nbsp;<replaceable>FIRST</replaceable>-<replaceable>LAST</replaceable>"
msgstr ""
#: usermod.8.xml:426(para)
@@ -498,7 +498,7 @@ msgid "No checks will be performed with regard to <option>SUB_GID_MIN</option>,
msgstr ""
#: usermod.8.xml:440(term)
msgid "<option>-W</option>, <option>--del-sub-gids</option>&nbsp;<replaceable>FIRST</replaceable>-<replaceable>LAST</replaceable>"
msgid "<option>-W</option>, <option>--del-subgids</option>&nbsp;<replaceable>FIRST</replaceable>-<replaceable>LAST</replaceable>"
msgstr ""
#: usermod.8.xml:444(para)
@@ -506,7 +506,7 @@ msgid "Remove a range of subordinate gids from the user's account."
msgstr ""
#: usermod.8.xml:447(para)
msgid "This option may be specified multiple times to remove multiple ranges to a users account. When both <option>--del-sub-gids</option> and <option>--add-sub-gids</option> are specified, the removal of all subordinate gid ranges happens before any subordinate gid range is added."
msgid "This option may be specified multiple times to remove multiple ranges to a users account. When both <option>--del-subgids</option> and <option>--add-subgids</option> are specified, the removal of all subordinate gid ranges happens before any subordinate gid range is added."
msgstr ""
#: usermod.8.xml:460(term) useradd.8.xml:506(term)
@@ -521,19 +521,19 @@ msgstr ""
msgid "A blank <replaceable>SEUSER</replaceable> will remove the SELinux user mapping for user <replaceable>LOGIN</replaceable> (if any)."
msgstr ""
#: usermod.8.xml:478(title) userdel.8.xml:281(title) useradd.8.xml:623(title) su.1.xml:331(title) shadow.3.xml:218(title) passwd.1.xml:372(title) newusers.8.xml:350(title) login.1.xml:260(title) lastlog.8.xml:194(title) groupdel.8.xml:116(title) groupadd.8.xml:257(title) gpasswd.1.xml:252(title) faillog.8.xml:232(title) chpasswd.8.xml:231(title) chgpasswd.8.xml:186(title)
#: usermod.8.xml:478(title) userdel.8.xml:281(title) useradd.8.xml:623(title) su.1.xml:331(title) shadow.3.xml:218(title) passwd.1.xml:372(title) newusers.8.xml:350(title) login.1.xml:260(title) lastlog.8.xml:216(title) groupdel.8.xml:116(title) groupadd.8.xml:257(title) gpasswd.1.xml:252(title) faillog.8.xml:232(title) chpasswd.8.xml:231(title) chgpasswd.8.xml:186(title)
msgid "CAVEATS"
msgstr ""
#: usermod.8.xml:479(para)
msgid "You must make certain that the named user is not executing any processes when this command is being executed if the user's numerical user ID, the user's name, or the user's home directory is being changed. <command>usermod</command> checks this on Linux, but only check if the user is logged in according to utmp on other architectures."
msgid "You must make certain that the named user is not executing any processes when this command is being executed if the user's numerical user ID, the user's name, or the user's home directory is being changed. <command>usermod</command> checks this on Linux. On other platforms it only uses utmp to check if the user is logged in."
msgstr ""
#: usermod.8.xml:487(para)
#: usermod.8.xml:486(para)
msgid "You must change the owner of any <command>crontab</command> files or <command>at</command> jobs manually."
msgstr ""
#: usermod.8.xml:491(para)
#: usermod.8.xml:490(para)
msgid "You must make any changes involving NIS on the NIS server."
msgstr ""
@@ -641,31 +641,31 @@ msgstr ""
msgid "If <replaceable>yes</replaceable>, the location of the user tcb directory to be created will not be automatically set to /etc/tcb/user, but will be computed depending on the UID of the user, according to the following algorithm: <placeholder-1/>"
msgstr ""
#: usermod.8.xml:529(filename) userdel.8.xml:197(filename) useradd.8.xml:726(filename) su.1.xml:382(filename) pwconv.8.xml:253(filename) passwd.1.xml:423(filename) newusers.8.xml:424(filename) login.access.5.xml:124(filename) login.1.xml:389(filename) groupmod.8.xml:220(filename) groupadd.8.xml:248(filename) chsh.1.xml:182(filename) chpasswd.8.xml:270(filename) chgpasswd.8.xml:228(filename) chfn.1.xml:210(filename)
#: usermod.8.xml:528(filename) userdel.8.xml:197(filename) useradd.8.xml:726(filename) su.1.xml:382(filename) pwconv.8.xml:253(filename) passwd.1.xml:423(filename) newusers.8.xml:424(filename) login.access.5.xml:124(filename) login.1.xml:389(filename) groupmod.8.xml:220(filename) groupadd.8.xml:248(filename) chsh.1.xml:182(filename) chpasswd.8.xml:270(filename) chgpasswd.8.xml:228(filename) chfn.1.xml:210(filename)
msgid "/etc/login.defs"
msgstr ""
#: usermod.8.xml:531(para) userdel.8.xml:199(para) useradd.8.xml:728(para) su.1.xml:384(para) pwconv.8.xml:255(para) passwd.1.xml:425(para) newusers.8.xml:426(para) login.access.5.xml:126(para) login.1.xml:391(para) groupmod.8.xml:222(para) groupadd.8.xml:250(para) chsh.1.xml:184(para) chpasswd.8.xml:272(para) chgpasswd.8.xml:230(para) chfn.1.xml:212(para)
#: usermod.8.xml:530(para) userdel.8.xml:199(para) useradd.8.xml:728(para) su.1.xml:384(para) pwconv.8.xml:255(para) passwd.1.xml:425(para) newusers.8.xml:426(para) login.access.5.xml:126(para) login.1.xml:391(para) groupmod.8.xml:222(para) groupadd.8.xml:250(para) chsh.1.xml:184(para) chpasswd.8.xml:272(para) chgpasswd.8.xml:230(para) chfn.1.xml:212(para)
msgid "Shadow password suite configuration."
msgstr ""
#: usermod.8.xml:547(filename) userdel.8.xml:215(filename) useradd.8.xml:714(filename) newusers.8.xml:436(filename)
#: usermod.8.xml:546(filename) userdel.8.xml:215(filename) useradd.8.xml:714(filename) newusers.8.xml:436(filename)
msgid "/etc/subgid"
msgstr ""
#: usermod.8.xml:549(para) userdel.8.xml:217(para) useradd.8.xml:716(para) newusers.8.xml:438(para)
#: usermod.8.xml:548(para) userdel.8.xml:217(para) useradd.8.xml:716(para) newusers.8.xml:438(para)
msgid "Per user subordinate group IDs."
msgstr ""
#: usermod.8.xml:553(filename) userdel.8.xml:221(filename) useradd.8.xml:720(filename) newusers.8.xml:442(filename)
#: usermod.8.xml:552(filename) userdel.8.xml:221(filename) useradd.8.xml:720(filename) newusers.8.xml:442(filename)
msgid "/etc/subuid"
msgstr ""
#: usermod.8.xml:555(para) userdel.8.xml:223(para) useradd.8.xml:722(para) newusers.8.xml:444(para)
#: usermod.8.xml:554(para) userdel.8.xml:223(para) useradd.8.xml:722(para) newusers.8.xml:444(para)
msgid "Per user subordinate user IDs."
msgstr ""
#: usermod.8.xml:563(para)
#: usermod.8.xml:562(para)
msgid "<citerefentry><refentrytitle>chfn</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>chsh</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>passwd</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>crypt</refentrytitle><manvolnum>3</manvolnum></citerefentry>, <citerefentry><refentrytitle>gpasswd</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>groupadd</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>groupdel</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>groupmod</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>login.defs</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <phrase condition=\"subids\"><citerefentry><refentrytitle>subgid</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>subuid</refentrytitle><manvolnum>5</manvolnum></citerefentry>, </phrase><citerefentry><refentrytitle>useradd</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>userdel</refentrytitle><manvolnum>8</manvolnum></citerefentry>."
msgstr ""
@@ -935,7 +935,7 @@ msgid "<option>-K</option>, <option>--key</option>&nbsp;<replaceable>KEY</replac
msgstr ""
#: useradd.8.xml:301(para)
msgid "Overrides <filename>/etc/login.defs</filename> defaults (<option>UID_MIN</option>, <option>UID_MAX</option>, <option>UMASK</option>, <option>PASS_MAX_DAYS</option> and others). <placeholder-1/> Example: <option>-K</option>&nbsp;<replaceable>PASS_MAX_DAYS</replaceable>=<replaceable>-1</replaceable> can be used when creating system account to turn off password ageing, even though system account has no password at all. Multiple <option>-K</option> options can be specified, e.g.: <option>-K</option>&nbsp;<replaceable>UID_MIN</replaceable>=<replaceable>100</replaceable>&nbsp;<option>-K</option>&nbsp;<replaceable>UID_MAX</replaceable>=<replaceable>499</replaceable>"
msgid "Overrides <filename>/etc/login.defs</filename> defaults (<option>UID_MIN</option>, <option>UID_MAX</option>, <option>UMASK</option>, <option>PASS_MAX_DAYS</option> and others). <placeholder-1/> Example: <option>-K</option>&nbsp;<replaceable>PASS_MAX_DAYS</replaceable>=<replaceable>-1</replaceable> can be used when creating system account to turn off password aging, even though system account has no password at all. Multiple <option>-K</option> options can be specified, e.g.: <option>-K</option>&nbsp;<replaceable>UID_MIN</replaceable>=<replaceable>100</replaceable>&nbsp;<option>-K</option>&nbsp;<replaceable>UID_MAX</replaceable>=<replaceable>499</replaceable>"
msgstr ""
#: useradd.8.xml:322(term)
@@ -947,7 +947,7 @@ msgid "Do not add the user to the lastlog and faillog databases."
msgstr ""
#: useradd.8.xml:327(para)
msgid "By default, the user's entries in the lastlog and faillog databases are resetted to avoid reusing the entry from a previously deleted user."
msgid "By default, the user's entries in the lastlog and faillog databases are reset to avoid reusing the entry from a previously deleted user."
msgstr ""
#: useradd.8.xml:335(term)
@@ -962,8 +962,8 @@ msgstr ""
msgid "By default, if this option is not specified and <option>CREATE_HOME</option> is not enabled, no home directories are created."
msgstr ""
#: useradd.8.xml:354(option)
msgid "-M"
#: useradd.8.xml:353(term)
msgid "<option>-M</option>, <option>--no-create-home</option>"
msgstr ""
#: useradd.8.xml:357(para)
@@ -1007,7 +1007,7 @@ msgid "System users will be created with no aging information in <filename>/etc/
msgstr ""
#: useradd.8.xml:434(para)
msgid "Note that <command>useradd</command> will not create a home directory for such an user, regardless of the default setting in <filename>/etc/login.defs</filename> (<option>CREATE_HOME</option>). You have to specify the <option>-m</option> options if you want a home directory for a system account to be created."
msgid "Note that <command>useradd</command> will not create a home directory for such a user, regardless of the default setting in <filename>/etc/login.defs</filename> (<option>CREATE_HOME</option>). You have to specify the <option>-m</option> options if you want a home directory for a system account to be created."
msgstr ""
#: useradd.8.xml:461(para)
@@ -1329,7 +1329,7 @@ msgstr ""
#. .RS
#: suauth.5.xml:83(literallayout)
#, no-wrap
msgid "\n 1) the user su is targetting\n "
msgid "\n 1) the user su is targeting\n "
msgstr ""
#. .fi
@@ -1351,7 +1351,7 @@ msgid "Where to-id is either the word <emphasis>ALL</emphasis>, a list of userna
msgstr ""
#: suauth.5.xml:107(para)
msgid "from-id is formatted the same as to-id except the extra word <emphasis>GROUP</emphasis> is recognised. <emphasis>ALL EXCEPT GROUP</emphasis> is perfectly valid too. Following <emphasis>GROUP</emphasis> appears one or more group names, delimited by \",\". It is not sufficient to have primary group id of the relevant group, an entry in <citerefentry><refentrytitle>/etc/group</refentrytitle><manvolnum>5</manvolnum></citerefentry> is neccessary."
msgid "from-id is formatted the same as to-id except the extra word <emphasis>GROUP</emphasis> is recognized. <emphasis>ALL EXCEPT GROUP</emphasis> is perfectly valid too. Following <emphasis>GROUP</emphasis> appears one or more group names, delimited by \",\". It is not sufficient to have primary group id of the relevant group, an entry in <citerefentry><refentrytitle>/etc/group</refentrytitle><manvolnum>5</manvolnum></citerefentry> is necessary."
msgstr ""
#: suauth.5.xml:118(para)
@@ -1472,7 +1472,7 @@ msgid "Specify a command that will be invoked by the shell using its <option>-c<
msgstr ""
#: su.1.xml:158(para)
msgid "The executed command will have no controlling terminal. This option cannot be used to execute interractive programs which need a controlling TTY."
msgid "The executed command will have no controlling terminal. This option cannot be used to execute interactive programs which need a controlling TTY."
msgstr ""
#: su.1.xml:168(term)
@@ -1854,7 +1854,7 @@ msgid "This field may be empty, in which case no passwords are required to authe
msgstr ""
#: shadow.5.xml:117(para) gshadow.5.xml:107(para)
msgid "A password field which starts with a exclamation mark means that the password is locked. The remaining characters on the line represent the password field before the password was locked."
msgid "A password field which starts with an exclamation mark means that the password is locked. The remaining characters on the line represent the password field before the password was locked."
msgstr ""
#: shadow.5.xml:127(emphasis)
@@ -1866,7 +1866,7 @@ msgid "The date of the last password change, expressed as the number of days sin
msgstr ""
#: shadow.5.xml:134(para)
msgid "The value 0 has a special meaning, which is that the user should change her pasword the next time she will log in the system."
msgid "The value 0 has a special meaning, which is that the user should change her password the next time she will log in the system."
msgstr ""
#: shadow.5.xml:139(para)
@@ -1942,7 +1942,7 @@ msgid "The date of expiration of the account, expressed as the number of days si
msgstr ""
#: shadow.5.xml:229(para)
msgid "Note that an account expiration differs from a password expiration. In case of an acount expiration, the user shall not be allowed to login. In case of a password expiration, the user is not allowed to login using her password."
msgid "Note that an account expiration differs from a password expiration. In case of an account expiration, the user shall not be allowed to login. In case of a password expiration, the user is not allowed to login using her password."
msgstr ""
#: shadow.5.xml:235(para)
@@ -2331,7 +2331,7 @@ msgid "By default, <command>pwck</command> operates on the files <filename>/etc/
msgstr ""
#: pwck.8.xml:243(para)
msgid "Note that when <option>USE_TCB</option> is enabled, you cannot specify an alternative <replaceable>shadow</replaceable> file. In future releases, this paramater could be replaced by an alternate TCB directory."
msgid "Note that when <option>USE_TCB</option> is enabled, you cannot specify an alternative <replaceable>shadow</replaceable> file. In future releases, this parameter could be replaced by an alternate TCB directory."
msgstr ""
#: pwck.8.xml:312(para)
@@ -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)
@@ -2544,7 +2544,7 @@ msgid "Compromises in password security normally result from careless password s
msgstr ""
#: passwd.1.xml:166(para)
msgid "You can find advices on how to choose a strong password on http://en.wikipedia.org/wiki/Password_strength"
msgid "You can find advice on how to choose a strong password on http://en.wikipedia.org/wiki/Password_strength"
msgstr ""
#: passwd.1.xml:175(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>&nbsp;<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>&nbsp;<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)
@@ -2832,7 +2832,7 @@ msgid "HISTORY"
msgstr ""
#: nologin.8.xml:91(para)
msgid "The <command>nologin</command> command appearred in BSD 4.4."
msgid "The <command>nologin</command> command appeared in BSD 4.4."
msgstr ""
#: newusers.8.xml:72(refentrytitle) newusers.8.xml:79(refname) newusers.8.xml:85(command) login.defs.5.xml:391(term)
@@ -2864,7 +2864,7 @@ msgid "This is the name of the user."
msgstr ""
#: newusers.8.xml:116(para)
msgid "It can be the name of a new user or the name of an existing user (or an user created before by <command>newusers</command>). In case of an existing user, the user's information will be changed, otherwise a new user will be created."
msgid "It can be the name of a new user or the name of an existing user (or a user created before by <command>newusers</command>). In case of an existing user, the user's information will be changed, otherwise a new user will be created."
msgstr ""
#: newusers.8.xml:127(emphasis)
@@ -2884,7 +2884,7 @@ msgid "This field is used to define the UID of the user."
msgstr ""
#: newusers.8.xml:144(para)
msgid "If the field is empty, an new (unused) UID will be defined automatically by <command>newusers</command>."
msgid "If the field is empty, a new (unused) UID will be defined automatically by <command>newusers</command>."
msgstr ""
#: newusers.8.xml:148(para)
@@ -2892,7 +2892,7 @@ msgid "If this field contains a number, this number will be used as the UID."
msgstr ""
#: newusers.8.xml:152(para)
msgid "If this field contains the name of an existing user (or the name of an user created before by <command>newusers</command>), the UID of the specified user will be used."
msgid "If this field contains the name of an existing user (or the name of a user created before by <command>newusers</command>), the UID of the specified user will be used."
msgstr ""
#: newusers.8.xml:158(para)
@@ -3704,7 +3704,7 @@ msgid "D: max data size (KB)"
msgstr ""
#: limits.5.xml:111(para)
msgid "F: maximum filesize (KB)"
msgid "F: maximum file size (KB)"
msgstr ""
#: limits.5.xml:112(para)
@@ -3761,7 +3761,7 @@ msgid "\n username L2D2048N5\n username L2 D2048 N5\n "
msgstr ""
#: limits.5.xml:145(para)
msgid "Be aware that after <emphasis remap=\"I\">username</emphasis> the rest of the line is considered a limit string, thus comments are not allowed. A invalid limits string will be rejected (not considered) by the <command>login</command> program."
msgid "Be aware that after <emphasis remap=\"I\">username</emphasis> the rest of the line is considered a limit string, thus comments are not allowed. An invalid limits string will be rejected (not considered) by the <command>login</command> program."
msgstr ""
#: limits.5.xml:152(para)
@@ -3773,11 +3773,11 @@ msgid "The limits specified in the form \"<replaceable>@group</replaceable>\" ap
msgstr ""
#: limits.5.xml:165(para)
msgid "If more than one line with limits for an user exist, only the first line for this user will be considered."
msgid "If more than one line with limits for a user exist, only the first line for this user will be considered."
msgstr ""
#: limits.5.xml:170(para)
msgid "If no lines are specified for an user, the last <replaceable>@group</replaceable> line matching a group whose the user is a member of will be considered, or the last line with default limits if no groups contain the user."
msgid "If no lines are specified for a user, the last <replaceable>@group</replaceable> line matching a group whose the user is a member of will be considered, or the last line with default limits if no groups contain the user."
msgstr ""
#: limits.5.xml:177(para)
@@ -3824,51 +3824,67 @@ msgstr ""
msgid "Print only lastlog records older than <emphasis remap=\"I\">DAYS</emphasis>."
msgstr ""
#: lastlog.8.xml:127(term) faillog.8.xml:192(term)
msgid "<option>-t</option>, <option>--time</option>&nbsp;<replaceable>DAYS</replaceable>"
#: lastlog.8.xml:107(term)
msgid "<option>-C</option>, <option>--clear</option>"
msgstr ""
#: lastlog.8.xml:131(para)
msgid "Print the lastlog records more recent than <emphasis remap=\"I\">DAYS</emphasis>."
#: lastlog.8.xml:111(para)
msgid "Clear lastlog record of a user. This option can be used only together with <option>-u</option> (<option>--user</option>))."
msgstr ""
#: lastlog.8.xml:138(term) faillog.8.xml:202(term)
msgid "<option>-u</option>, <option>--user</option>&nbsp;<replaceable>LOGIN</replaceable>|<replaceable>RANGE</replaceable>"
#: lastlog.8.xml:138(term)
msgid "<option>-S</option>, <option>--set</option>"
msgstr ""
#: lastlog.8.xml:142(para)
msgid "Set lastlog record of a user to the current time. This option can be used only together with <option>-u</option> (<option>--user</option>))."
msgstr ""
#: lastlog.8.xml:149(term) faillog.8.xml:192(term)
msgid "<option>-t</option>, <option>--time</option>&nbsp;<replaceable>DAYS</replaceable>"
msgstr ""
#: lastlog.8.xml:153(para)
msgid "Print the lastlog records more recent than <emphasis remap=\"I\">DAYS</emphasis>."
msgstr ""
#: lastlog.8.xml:160(term) faillog.8.xml:202(term)
msgid "<option>-u</option>, <option>--user</option>&nbsp;<replaceable>LOGIN</replaceable>|<replaceable>RANGE</replaceable>"
msgstr ""
#: lastlog.8.xml:164(para)
msgid "Print the lastlog record of the specified user(s)."
msgstr ""
#: lastlog.8.xml:145(para) faillog.8.xml:211(para)
#: lastlog.8.xml:167(para) faillog.8.xml:211(para)
msgid "The users can be specified by a login name, a numerical user ID, or a <replaceable>RANGE</replaceable> of users. This <replaceable>RANGE</replaceable> of users can be specified with a min and max values (<replaceable>UID_MIN-UID_MAX</replaceable>), a max value (<replaceable>-UID_MAX</replaceable>), or a min value (<replaceable>UID_MIN-</replaceable>)."
msgstr ""
#: lastlog.8.xml:157(para)
#: lastlog.8.xml:179(para)
msgid "If the user has never logged in the message <emphasis>** Never logged in**</emphasis> will be displayed instead of the port and time."
msgstr ""
#: lastlog.8.xml:162(para)
#: lastlog.8.xml:184(para)
msgid "Only the entries for the current users of the system will be displayed. Other entries may exist for users that were deleted previously."
msgstr ""
#: lastlog.8.xml:170(title) groups.1.xml:90(title) chsh.1.xml:140(title) chage.1.xml:231(title)
#: lastlog.8.xml:192(title) groups.1.xml:90(title) chsh.1.xml:140(title) chage.1.xml:231(title)
msgid "NOTE"
msgstr ""
#: lastlog.8.xml:171(para)
#: lastlog.8.xml:193(para)
msgid "The <filename>lastlog</filename> file is a database which contains info on the last login of each user. You should not rotate it. It is a sparse file, so its size on the disk is usually much smaller than the one shown by \"<command>ls -l</command>\" (which can indicate a really big file if you have in <filename>passwd</filename> users with a high UID). You can display its real size with \"<command>ls -s</command>\"."
msgstr ""
#: lastlog.8.xml:185(filename)
#: lastlog.8.xml:207(filename)
msgid "/var/log/lastlog"
msgstr ""
#: lastlog.8.xml:187(para)
#: lastlog.8.xml:209(para)
msgid "Database times of previous user logins."
msgstr ""
#: lastlog.8.xml:195(para)
#: lastlog.8.xml:217(para)
msgid "Large gaps in UID numbers will cause the lastlog program to run longer with no output to the screen (i.e. if in lastlog database there is no entries for users with UID between 170 and 800 lastlog will appear to hang as it processes entries with UIDs 171-799)."
msgstr ""
@@ -3905,7 +3921,7 @@ msgid "If the password field contains some string that is not a valid result of
msgstr ""
#: gshadow.5.xml:97(para)
msgid "The password is used when an user who is not a member of the group wants to gain the permissions of this group (see <citerefentry><refentrytitle>newgrp</refentrytitle><manvolnum>1</manvolnum></citerefentry>)."
msgid "The password is used when a user who is not a member of the group wants to gain the permissions of this group (see <citerefentry><refentrytitle>newgrp</refentrytitle><manvolnum>1</manvolnum></citerefentry>)."
msgstr ""
#: gshadow.5.xml:103(para)
@@ -4153,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)
@@ -4169,7 +4185,7 @@ msgid "<option>-a</option>, <option>--add</option>&nbsp;<replaceable>user_name</
msgstr ""
#: groupmems.8.xml:109(para)
msgid "Add an user to the group membership list."
msgid "Add a user to the group membership list."
msgstr ""
#: groupmems.8.xml:110(para) groupmems.8.xml:126(para) groupmems.8.xml:157(para)
@@ -4663,7 +4679,7 @@ msgid "By default the passwords must be supplied in clear-text, and are encrypte
msgstr ""
#: chpasswd.8.xml:97(para)
msgid "The default encryption algorithm can be defined for the system with the <option>ENCRYPT_METHOD</option> or <option>MD5_CRYPT_ENAB</option> variables of <filename>/etc/login.defs</filename>, and can be overwitten with the <option>-e</option>, <option>-m</option>, or <option>-c</option> options."
msgid "The default encryption algorithm can be defined for the system with the <option>ENCRYPT_METHOD</option> or <option>MD5_CRYPT_ENAB</option> variables of <filename>/etc/login.defs</filename>, and can be overwritten with the <option>-e</option>, <option>-m</option>, or <option>-c</option> options."
msgstr ""
#: chpasswd.8.xml:105(para)
@@ -4671,7 +4687,7 @@ msgid "By default, passwords are encrypted by PAM, but (even if not recommended)
msgstr ""
#: chpasswd.8.xml:111(para)
msgid "<phrase condition=\"pam\">Except when PAM is used to encrypt the passwords,</phrase><command>chpasswd</command> first updates all the passwords in memory, and then commits all the changes to disk if no errors occured for any user."
msgid "<phrase condition=\"pam\">Except when PAM is used to encrypt the passwords,</phrase><command>chpasswd</command> first updates all the passwords in memory, and then commits all the changes to disk if no errors occurred for any user."
msgstr ""
#: chpasswd.8.xml:117(para)
@@ -4763,7 +4779,7 @@ msgid "By default the supplied password must be in clear-text, and is encrypted
msgstr ""
#: chgpasswd.8.xml:92(para)
msgid "The default encryption algorithm can be defined for the system with the <option>ENCRYPT_METHOD</option> variable of <filename>/etc/login.defs</filename>, and can be overwiten with the <option>-e</option>, <option>-m</option>, or <option>-c</option> options."
msgid "The default encryption algorithm can be defined for the system with the <option>ENCRYPT_METHOD</option> variable of <filename>/etc/login.defs</filename>, and can be overwritten with the <option>-e</option>, <option>-m</option>, or <option>-c</option> options."
msgstr ""
#: chgpasswd.8.xml:106(para)
@@ -4847,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)
@@ -4899,7 +4915,7 @@ msgid "<option>-M</option>, <option>--maxdays</option>&nbsp;<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)
@@ -4911,7 +4927,7 @@ msgid "<option>-W</option>, <option>--warndays</option>&nbsp;<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)
@@ -4923,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)

View File

@@ -1,7 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: man pages for shadow 4.0.18\n"
"POT-Creation-Date: 2013-08-23 01:54+0200\n"
"POT-Creation-Date: 2016-09-18 14:03-0500\n"
"PO-Revision-Date: 2013-08-23 01:41+0200\n"
"Last-Translator: Daniel Nylander <po@danielnylander.se>\n"
"Language-Team: Swedish <debian-l10n-swedish@lists.debian.org>\n"
@@ -49,16 +49,15 @@ msgstr ""
#: useradd.8.xml:62(surname) suauth.5.xml:45(surname) su.1.xml:62(surname)
#: sg.1.xml:46(surname) shadow.5.xml:45(surname) shadow.3.xml:45(surname)
#: pwconv.8.xml:51(surname) pwck.8.xml:51(surname) porttime.5.xml:45(surname)
#: passwd.5.xml:45(surname) passwd.1.xml:52(surname)
#: newusers.8.xml:60(surname) newgrp.1.xml:46(surname)
#: logoutd.8.xml:45(surname) login.defs.5.xml:110(surname)
#: login.access.5.xml:46(surname) login.1.xml:78(surname)
#: limits.5.xml:47(surname) lastlog.8.xml:46(surname) grpck.8.xml:46(surname)
#: groups.1.xml:45(surname) groupmod.8.xml:46(surname)
#: passwd.5.xml:45(surname) passwd.1.xml:52(surname) newusers.8.xml:60(surname)
#: newgrp.1.xml:46(surname) logoutd.8.xml:45(surname)
#: login.defs.5.xml:110(surname) login.access.5.xml:46(surname)
#: login.1.xml:78(surname) limits.5.xml:47(surname) lastlog.8.xml:46(surname)
#: grpck.8.xml:46(surname) groups.1.xml:45(surname) groupmod.8.xml:46(surname)
#: groupmems.8.xml:49(surname) groupdel.8.xml:46(surname)
#: groupadd.8.xml:48(surname) gpasswd.1.xml:50(surname)
#: faillog.8.xml:45(surname) faillog.5.xml:45(surname)
#: expiry.1.xml:49(surname) chsh.1.xml:48(surname) chpasswd.8.xml:49(surname)
#: faillog.8.xml:45(surname) faillog.5.xml:45(surname) expiry.1.xml:49(surname)
#: chsh.1.xml:48(surname) chpasswd.8.xml:49(surname)
#: chgpasswd.8.xml:45(surname) chfn.1.xml:48(surname) chage.1.xml:46(surname)
msgid "Kłoczko"
msgstr ""
@@ -83,17 +82,16 @@ msgstr ""
#: useradd.8.xml:64(contrib) suauth.5.xml:47(contrib) su.1.xml:64(contrib)
#: sg.1.xml:48(contrib) shadow.5.xml:47(contrib) shadow.3.xml:47(contrib)
#: pwconv.8.xml:53(contrib) pwck.8.xml:53(contrib) porttime.5.xml:47(contrib)
#: passwd.5.xml:47(contrib) passwd.1.xml:54(contrib)
#: newusers.8.xml:62(contrib) newgrp.1.xml:48(contrib)
#: logoutd.8.xml:47(contrib) login.defs.5.xml:112(contrib)
#: login.access.5.xml:48(contrib) login.1.xml:80(contrib)
#: limits.5.xml:49(contrib) lastlog.8.xml:48(contrib) grpck.8.xml:48(contrib)
#: groups.1.xml:47(contrib) groupmod.8.xml:48(contrib)
#: passwd.5.xml:47(contrib) passwd.1.xml:54(contrib) newusers.8.xml:62(contrib)
#: newgrp.1.xml:48(contrib) logoutd.8.xml:47(contrib)
#: login.defs.5.xml:112(contrib) login.access.5.xml:48(contrib)
#: login.1.xml:80(contrib) limits.5.xml:49(contrib) lastlog.8.xml:48(contrib)
#: grpck.8.xml:48(contrib) groups.1.xml:47(contrib) groupmod.8.xml:48(contrib)
#: groupmems.8.xml:51(contrib) groupdel.8.xml:48(contrib)
#: groupadd.8.xml:50(contrib) gpasswd.1.xml:52(contrib)
#: faillog.8.xml:47(contrib) faillog.5.xml:47(contrib)
#: expiry.1.xml:51(contrib) chsh.1.xml:50(contrib) chpasswd.8.xml:51(contrib)
#: chfn.1.xml:50(contrib) chage.1.xml:48(contrib)
#: faillog.8.xml:47(contrib) faillog.5.xml:47(contrib) expiry.1.xml:51(contrib)
#: chsh.1.xml:50(contrib) chpasswd.8.xml:51(contrib) chfn.1.xml:50(contrib)
#: chage.1.xml:48(contrib)
msgid "shadow-utils maintainer, 2000 - 2007"
msgstr ""
@@ -127,14 +125,13 @@ msgstr ""
#: newusers.8.xml:66(surname) newgrp.1.xml:52(surname)
#: logoutd.8.xml:51(surname) login.defs.5.xml:116(surname)
#: login.access.5.xml:52(surname) login.1.xml:84(surname)
#: limits.5.xml:53(surname) lastlog.8.xml:52(surname)
#: gshadow.5.xml:39(surname) grpck.8.xml:52(surname) groups.1.xml:51(surname)
#: groupmod.8.xml:52(surname) groupmems.8.xml:55(surname)
#: groupdel.8.xml:52(surname) groupadd.8.xml:54(surname)
#: gpasswd.1.xml:56(surname) faillog.8.xml:51(surname)
#: faillog.5.xml:51(surname) expiry.1.xml:55(surname) chsh.1.xml:54(surname)
#: chpasswd.8.xml:55(surname) chgpasswd.8.xml:51(surname)
#: chfn.1.xml:54(surname) chage.1.xml:52(surname)
#: limits.5.xml:53(surname) lastlog.8.xml:52(surname) gshadow.5.xml:39(surname)
#: grpck.8.xml:52(surname) groups.1.xml:51(surname) groupmod.8.xml:52(surname)
#: groupmems.8.xml:55(surname) groupdel.8.xml:52(surname)
#: groupadd.8.xml:54(surname) gpasswd.1.xml:56(surname)
#: faillog.8.xml:51(surname) faillog.5.xml:51(surname) expiry.1.xml:55(surname)
#: chsh.1.xml:54(surname) chpasswd.8.xml:55(surname)
#: chgpasswd.8.xml:51(surname) chfn.1.xml:54(surname) chage.1.xml:52(surname)
msgid "François"
msgstr ""
@@ -163,14 +160,13 @@ msgstr ""
#: newusers.8.xml:68(contrib) newgrp.1.xml:54(contrib)
#: logoutd.8.xml:53(contrib) login.defs.5.xml:118(contrib)
#: login.access.5.xml:54(contrib) login.1.xml:86(contrib)
#: limits.5.xml:55(contrib) lastlog.8.xml:54(contrib)
#: gshadow.5.xml:42(contrib) grpck.8.xml:54(contrib) groups.1.xml:53(contrib)
#: groupmod.8.xml:54(contrib) groupmems.8.xml:57(contrib)
#: groupdel.8.xml:54(contrib) groupadd.8.xml:56(contrib)
#: gpasswd.1.xml:58(contrib) faillog.8.xml:53(contrib)
#: faillog.5.xml:53(contrib) expiry.1.xml:57(contrib) chsh.1.xml:56(contrib)
#: chpasswd.8.xml:57(contrib) chgpasswd.8.xml:53(contrib)
#: chfn.1.xml:56(contrib) chage.1.xml:54(contrib)
#: limits.5.xml:55(contrib) lastlog.8.xml:54(contrib) gshadow.5.xml:42(contrib)
#: grpck.8.xml:54(contrib) groups.1.xml:53(contrib) groupmod.8.xml:54(contrib)
#: groupmems.8.xml:57(contrib) groupdel.8.xml:54(contrib)
#: groupadd.8.xml:56(contrib) gpasswd.1.xml:58(contrib)
#: faillog.8.xml:53(contrib) faillog.5.xml:53(contrib) expiry.1.xml:57(contrib)
#: chsh.1.xml:56(contrib) chpasswd.8.xml:57(contrib)
#: chgpasswd.8.xml:53(contrib) chfn.1.xml:56(contrib) chage.1.xml:54(contrib)
msgid "shadow-utils maintainer, 2007 - now"
msgstr ""
@@ -248,14 +244,13 @@ msgstr "redigera lösenordet, grupp, skugglösenord eller skuggruppfil"
#: useradd.8.xml:88(replaceable) useradd.8.xml:100(replaceable)
#: su.1.xml:88(replaceable) pwconv.8.xml:81(replaceable)
#: pwconv.8.xml:87(replaceable) pwconv.8.xml:93(replaceable)
#: pwconv.8.xml:99(replaceable) pwck.8.xml:77(arg)
#: passwd.1.xml:79(replaceable) newusers.8.xml:87(replaceable)
#: lastlog.8.xml:73(replaceable) grpck.8.xml:72(arg)
#: groupmod.8.xml:73(replaceable) groupdel.8.xml:73(replaceable)
#: groupadd.8.xml:75(replaceable) faillog.8.xml:72(replaceable)
#: chsh.1.xml:75(replaceable) chpasswd.8.xml:76(replaceable)
#: chgpasswd.8.xml:72(replaceable) chfn.1.xml:75(replaceable)
#: chage.1.xml:72(replaceable)
#: pwconv.8.xml:99(replaceable) pwck.8.xml:77(arg) passwd.1.xml:79(replaceable)
#: newusers.8.xml:87(replaceable) lastlog.8.xml:73(replaceable)
#: grpck.8.xml:72(arg) groupmod.8.xml:73(replaceable)
#: groupdel.8.xml:73(replaceable) groupadd.8.xml:75(replaceable)
#: faillog.8.xml:72(replaceable) chsh.1.xml:75(replaceable)
#: chpasswd.8.xml:76(replaceable) chgpasswd.8.xml:72(replaceable)
#: chfn.1.xml:75(replaceable) chage.1.xml:72(replaceable)
msgid "options"
msgstr "flaggor"
@@ -305,11 +300,10 @@ msgstr ""
#: useradd.8.xml:124(title) su.1.xml:145(title) pwconv.8.xml:187(title)
#: pwck.8.xml:176(title) passwd.1.xml:174(title) newusers.8.xml:265(title)
#: login.1.xml:210(title) lastlog.8.xml:91(title) grpck.8.xml:147(title)
#: groupmod.8.xml:89(title) groupmems.8.xml:100(title)
#: groupdel.8.xml:88(title) groupadd.8.xml:93(title) gpasswd.1.xml:134(title)
#: faillog.8.xml:89(title) expiry.1.xml:91(title) chsh.1.xml:95(title)
#: chpasswd.8.xml:130(title) chgpasswd.8.xml:105(title) chfn.1.xml:111(title)
#: chage.1.xml:91(title)
#: groupmod.8.xml:89(title) groupmems.8.xml:100(title) groupdel.8.xml:88(title)
#: groupadd.8.xml:93(title) gpasswd.1.xml:134(title) faillog.8.xml:89(title)
#: expiry.1.xml:91(title) chsh.1.xml:95(title) chpasswd.8.xml:130(title)
#: chgpasswd.8.xml:105(title) chfn.1.xml:111(title) chage.1.xml:91(title)
msgid "OPTIONS"
msgstr "FLAGGOR"
@@ -331,7 +325,7 @@ msgstr "Redigera gruppdatabasen."
#: vipw.8.xml:120(term) userdel.8.xml:123(term) useradd.8.xml:266(term)
#: pwconv.8.xml:195(term) pwck.8.xml:186(term) passwd.1.xml:214(term)
#: newusers.8.xml:283(term) lastlog.8.xml:107(term) grpck.8.xml:157(term)
#: newusers.8.xml:283(term) lastlog.8.xml:118(term) grpck.8.xml:157(term)
#: groupmod.8.xml:129(term) groupmems.8.xml:142(term) groupdel.8.xml:95(term)
#: groupadd.8.xml:131(term) gpasswd.1.xml:173(term) faillog.8.xml:122(term)
#: expiry.1.xml:112(term) chsh.1.xml:101(term) chpasswd.8.xml:171(term)
@@ -341,7 +335,7 @@ msgstr "<option>-h</option>, <option>--help</option>"
#: vipw.8.xml:122(para) userdel.8.xml:125(para) useradd.8.xml:268(para)
#: pwconv.8.xml:197(para) pwck.8.xml:188(para) passwd.1.xml:216(para)
#: newusers.8.xml:285(para) lastlog.8.xml:111(para) grpck.8.xml:159(para)
#: newusers.8.xml:285(para) lastlog.8.xml:122(para) grpck.8.xml:159(para)
#: groupmod.8.xml:131(para) groupmems.8.xml:144(para) groupdel.8.xml:97(para)
#: groupadd.8.xml:133(para) gpasswd.1.xml:175(para) faillog.8.xml:124(para)
#: expiry.1.xml:114(para) chsh.1.xml:103(para) chpasswd.8.xml:173(para)
@@ -367,7 +361,7 @@ msgstr "Tyst läge."
#: vipw.8.xml:138(term) usermod.8.xml:311(term) userdel.8.xml:146(term)
#: useradd.8.xml:445(term) pwconv.8.xml:201(term) pwck.8.xml:209(term)
#: passwd.1.xml:301(term) newusers.8.xml:308(term) lastlog.8.xml:115(term)
#: passwd.1.xml:301(term) newusers.8.xml:308(term) lastlog.8.xml:126(term)
#: grpck.8.xml:173(term) groupmod.8.xml:178(term) groupmems.8.xml:165(term)
#: groupdel.8.xml:101(term) groupadd.8.xml:204(term) faillog.8.xml:180(term)
#: chsh.1.xml:107(term) chpasswd.8.xml:188(term) chgpasswd.8.xml:146(term)
@@ -385,7 +379,7 @@ msgstr ""
#: vipw.8.xml:142(para) usermod.8.xml:315(para) userdel.8.xml:150(para)
#: useradd.8.xml:449(para) pwconv.8.xml:205(para) pwck.8.xml:213(para)
#: passwd.1.xml:305(para) newusers.8.xml:312(para) lastlog.8.xml:119(para)
#: passwd.1.xml:305(para) newusers.8.xml:312(para) lastlog.8.xml:130(para)
#: grpck.8.xml:177(para) groupmod.8.xml:182(para) groupmems.8.xml:169(para)
#: groupdel.8.xml:105(para) groupadd.8.xml:208(para) gpasswd.1.xml:185(para)
#: faillog.8.xml:184(para) chsh.1.xml:111(para) chpasswd.8.xml:192(para)
@@ -414,18 +408,18 @@ msgstr "<option>-q</option>, <option>--quiet</option>"
msgid "Indicates which user's tcb shadow file to edit."
msgstr ""
#: vipw.8.xml:165(title) usermod.8.xml:497(title) userdel.8.xml:171(title)
#: vipw.8.xml:165(title) usermod.8.xml:496(title) userdel.8.xml:171(title)
#: useradd.8.xml:647(title) su.1.xml:339(title) sg.1.xml:98(title)
#: pwconv.8.xml:227(title) pwck.8.xml:252(title) passwd.1.xml:390(title)
#: newusers.8.xml:362(title) newgrp.1.xml:109(title) login.1.xml:294(title)
#: grpck.8.xml:209(title) groupmod.8.xml:193(title) groupmems.8.xml:199(title)
#: groupdel.8.xml:128(title) groupadd.8.xml:219(title)
#: gpasswd.1.xml:264(title) chsh.1.xml:154(title) chpasswd.8.xml:239(title)
#: chgpasswd.8.xml:198(title) chfn.1.xml:193(title) chage.1.xml:244(title)
#: groupdel.8.xml:128(title) groupadd.8.xml:219(title) gpasswd.1.xml:264(title)
#: chsh.1.xml:154(title) chpasswd.8.xml:239(title) chgpasswd.8.xml:198(title)
#: chfn.1.xml:193(title) chage.1.xml:244(title)
msgid "CONFIGURATION"
msgstr ""
#: vipw.8.xml:166(para) usermod.8.xml:498(para) userdel.8.xml:172(para)
#: vipw.8.xml:166(para) usermod.8.xml:497(para) userdel.8.xml:172(para)
#: useradd.8.xml:648(para) su.1.xml:340(para) sg.1.xml:99(para)
#: pwck.8.xml:253(para) passwd.1.xml:391(para) newusers.8.xml:363(para)
#: newgrp.1.xml:110(para) login.1.xml:295(para) grpck.8.xml:210(para)
@@ -483,37 +477,35 @@ msgstr "HISTORIK"
msgid "Editor to be used if <option>VISUAL</option> is not set."
msgstr ""
#: vipw.8.xml:195(title) usermod.8.xml:514(title) userdel.8.xml:188(title)
#: vipw.8.xml:195(title) usermod.8.xml:513(title) userdel.8.xml:188(title)
#: useradd.8.xml:675(title) suauth.5.xml:193(title) su.1.xml:367(title)
#: sg.1.xml:110(title) shadow.5.xml:255(title) shadow.3.xml:226(title)
#: pwconv.8.xml:250(title) pwck.8.xml:269(title) porttime.5.xml:130(title)
#: passwd.5.xml:141(title) passwd.1.xml:408(title) newusers.8.xml:397(title)
#: newgrp.1.xml:121(title) logoutd.8.xml:89(title)
#: login.access.5.xml:121(title) login.1.xml:338(title)
#: limits.5.xml:196(title) lastlog.8.xml:182(title) gshadow.5.xml:156(title)
#: grpck.8.xml:221(title) groups.1.xml:100(title) groupmod.8.xml:205(title)
#: groupmems.8.xml:211(title) groupdel.8.xml:140(title)
#: groupadd.8.xml:233(title) gpasswd.1.xml:279(title) faillog.8.xml:243(title)
#: faillog.5.xml:96(title) expiry.1.xml:121(title) chsh.1.xml:167(title)
#: chpasswd.8.xml:255(title) chgpasswd.8.xml:213(title) chfn.1.xml:207(title)
#: chage.1.xml:256(title)
#: login.access.5.xml:121(title) login.1.xml:338(title) limits.5.xml:196(title)
#: lastlog.8.xml:204(title) gshadow.5.xml:156(title) grpck.8.xml:221(title)
#: groups.1.xml:100(title) groupmod.8.xml:205(title) groupmems.8.xml:211(title)
#: groupdel.8.xml:140(title) groupadd.8.xml:233(title) gpasswd.1.xml:279(title)
#: faillog.8.xml:243(title) faillog.5.xml:96(title) expiry.1.xml:121(title)
#: chsh.1.xml:167(title) chpasswd.8.xml:255(title) chgpasswd.8.xml:213(title)
#: chfn.1.xml:207(title) chage.1.xml:256(title)
msgid "FILES"
msgstr "FILER"
#: vipw.8.xml:198(filename) usermod.8.xml:517(filename)
#: vipw.8.xml:198(filename) usermod.8.xml:516(filename)
#: userdel.8.xml:191(filename) useradd.8.xml:690(filename)
#: sg.1.xml:125(filename) pwck.8.xml:272(filename)
#: newusers.8.xml:412(filename) newgrp.1.xml:136(filename)
#: gshadow.5.xml:159(filename) grpck.8.xml:224(filename)
#: groups.1.xml:103(filename) groupmod.8.xml:208(filename)
#: groupmems.8.xml:214(filename) groupdel.8.xml:143(filename)
#: groupadd.8.xml:236(filename) gpasswd.1.xml:72(filename)
#: gpasswd.1.xml:75(filename) gpasswd.1.xml:282(filename)
#: chgpasswd.8.xml:216(filename)
#: sg.1.xml:125(filename) pwck.8.xml:272(filename) newusers.8.xml:412(filename)
#: newgrp.1.xml:136(filename) gshadow.5.xml:159(filename)
#: grpck.8.xml:224(filename) groups.1.xml:103(filename)
#: groupmod.8.xml:208(filename) groupmems.8.xml:214(filename)
#: groupdel.8.xml:143(filename) groupadd.8.xml:236(filename)
#: gpasswd.1.xml:72(filename) gpasswd.1.xml:75(filename)
#: gpasswd.1.xml:282(filename) chgpasswd.8.xml:216(filename)
msgid "/etc/group"
msgstr "/etc/group"
#: vipw.8.xml:200(para) usermod.8.xml:519(para) userdel.8.xml:193(para)
#: vipw.8.xml:200(para) usermod.8.xml:518(para) userdel.8.xml:193(para)
#: useradd.8.xml:692(para) sg.1.xml:127(para) pwck.8.xml:274(para)
#: newusers.8.xml:414(para) newgrp.1.xml:138(para) gshadow.5.xml:161(para)
#: grpck.8.xml:226(para) groups.1.xml:105(para) groupmod.8.xml:210(para)
@@ -522,7 +514,7 @@ msgstr "/etc/group"
msgid "Group account information."
msgstr "Gruppkontoinformation."
#: vipw.8.xml:204(filename) usermod.8.xml:523(filename)
#: vipw.8.xml:204(filename) usermod.8.xml:522(filename)
#: useradd.8.xml:696(filename) sg.1.xml:131(filename)
#: newusers.8.xml:418(filename) newgrp.1.xml:142(filename)
#: gshadow.5.xml:165(filename) grpck.8.xml:230(filename)
@@ -533,7 +525,7 @@ msgstr "Gruppkontoinformation."
msgid "/etc/gshadow"
msgstr "/etc/gshadow"
#: vipw.8.xml:206(para) usermod.8.xml:525(para) useradd.8.xml:698(para)
#: vipw.8.xml:206(para) usermod.8.xml:524(para) useradd.8.xml:698(para)
#: sg.1.xml:133(para) newusers.8.xml:420(para) newgrp.1.xml:144(para)
#: gshadow.5.xml:167(para) grpck.8.xml:232(para) groupmod.8.xml:216(para)
#: groupdel.8.xml:151(para) groupadd.8.xml:244(para) gpasswd.1.xml:290(para)
@@ -541,7 +533,7 @@ msgstr "/etc/gshadow"
msgid "Secure group account information."
msgstr "Säker gruppkontoinformation."
#: vipw.8.xml:210(filename) usermod.8.xml:535(filename)
#: vipw.8.xml:210(filename) usermod.8.xml:534(filename)
#: userdel.8.xml:203(filename) useradd.8.xml:678(filename)
#: su.1.xml:370(filename) sg.1.xml:113(filename) shadow.5.xml:258(filename)
#: pwck.8.xml:278(filename) passwd.5.xml:144(filename)
@@ -554,7 +546,7 @@ msgstr "Säker gruppkontoinformation."
msgid "/etc/passwd"
msgstr "/etc/passwd"
#: vipw.8.xml:212(para) usermod.8.xml:537(para) userdel.8.xml:205(para)
#: vipw.8.xml:212(para) usermod.8.xml:536(para) userdel.8.xml:205(para)
#: useradd.8.xml:680(para) su.1.xml:372(para) sg.1.xml:115(para)
#: shadow.5.xml:260(para) pwck.8.xml:280(para) passwd.5.xml:146(para)
#: passwd.1.xml:413(para) newusers.8.xml:402(para) newgrp.1.xml:126(para)
@@ -564,7 +556,7 @@ msgstr "/etc/passwd"
msgid "User account information."
msgstr "Användarkontoinformation."
#: vipw.8.xml:216(filename) usermod.8.xml:541(filename)
#: vipw.8.xml:216(filename) usermod.8.xml:540(filename)
#: userdel.8.xml:209(filename) useradd.8.xml:684(filename)
#: su.1.xml:376(filename) sg.1.xml:119(filename) shadow.5.xml:264(filename)
#: shadow.3.xml:229(filename) pwck.8.xml:284(filename)
@@ -575,7 +567,7 @@ msgstr "Användarkontoinformation."
msgid "/etc/shadow"
msgstr "/etc/shadow"
#: vipw.8.xml:218(para) usermod.8.xml:543(para) userdel.8.xml:211(para)
#: vipw.8.xml:218(para) usermod.8.xml:542(para) userdel.8.xml:211(para)
#: useradd.8.xml:686(para) su.1.xml:378(para) sg.1.xml:121(para)
#: shadow.5.xml:266(para) shadow.3.xml:231(para) pwck.8.xml:286(para)
#: passwd.1.xml:419(para) newusers.8.xml:408(para) newgrp.1.xml:132(para)
@@ -584,7 +576,7 @@ msgstr "/etc/shadow"
msgid "Secure user account information."
msgstr "Säker användarkontoinformation."
#: vipw.8.xml:225(title) usermod.8.xml:562(title) userdel.8.xml:308(title)
#: vipw.8.xml:225(title) usermod.8.xml:561(title) userdel.8.xml:308(title)
#: useradd.8.xml:804(title) suauth.5.xml:222(title) su.1.xml:438(title)
#: sg.1.xml:140(title) shadow.5.xml:283(title) shadow.3.xml:238(title)
#: pwconv.8.xml:262(title) pwck.8.xml:344(title) porttime.5.xml:142(title)
@@ -659,15 +651,15 @@ msgstr ""
#: usermod.8.xml:46(surname) userdel.8.xml:46(surname)
#: useradd.8.xml:57(surname) su.1.xml:57(surname) sg.1.xml:41(surname)
#: shadow.5.xml:40(surname) shadow.3.xml:40(surname) pwck.8.xml:46(surname)
#: porttime.5.xml:40(surname) passwd.5.xml:40(surname)
#: passwd.1.xml:47(surname) newusers.8.xml:55(surname)
#: newgrp.1.xml:41(surname) logoutd.8.xml:40(surname)
#: login.defs.5.xml:105(surname) login.1.xml:73(surname)
#: lastlog.8.xml:41(surname) grpck.8.xml:41(surname) groups.1.xml:40(surname)
#: groupmod.8.xml:41(surname) groupdel.8.xml:41(surname)
#: groupadd.8.xml:43(surname) faillog.8.xml:40(surname)
#: faillog.5.xml:40(surname) expiry.1.xml:44(surname) chsh.1.xml:43(surname)
#: chpasswd.8.xml:44(surname) chfn.1.xml:43(surname) chage.1.xml:41(surname)
#: porttime.5.xml:40(surname) passwd.5.xml:40(surname) passwd.1.xml:47(surname)
#: newusers.8.xml:55(surname) newgrp.1.xml:41(surname)
#: logoutd.8.xml:40(surname) login.defs.5.xml:105(surname)
#: login.1.xml:73(surname) lastlog.8.xml:41(surname) grpck.8.xml:41(surname)
#: groups.1.xml:40(surname) groupmod.8.xml:41(surname)
#: groupdel.8.xml:41(surname) groupadd.8.xml:43(surname)
#: faillog.8.xml:40(surname) faillog.5.xml:40(surname) expiry.1.xml:44(surname)
#: chsh.1.xml:43(surname) chpasswd.8.xml:44(surname) chfn.1.xml:43(surname)
#: chage.1.xml:41(surname)
msgid "Haugh"
msgstr ""
@@ -1070,7 +1062,7 @@ msgstr ""
#| "<option>-K</option>, <option>--key</option>&nbsp;<replaceable>KEY</"
#| "replaceable>=<replaceable>VALUE</replaceable>"
msgid ""
"<option>-v</option>, <option>--add-sub-uids</option>&nbsp;"
"<option>-v</option>, <option>--add-subuids</option>&nbsp;"
"<replaceable>FIRST</replaceable>-<replaceable>LAST</replaceable>"
msgstr ""
"<option>-K</option>, <option>--key</option>&nbsp;<replaceable>NYCKEL</"
@@ -1099,7 +1091,7 @@ msgstr ""
#| "<option>-K</option>, <option>--key</option>&nbsp;<replaceable>KEY</"
#| "replaceable>=<replaceable>VALUE</replaceable>"
msgid ""
"<option>-V</option>, <option>--del-sub-uids</option>&nbsp;"
"<option>-V</option>, <option>--del-subuids</option>&nbsp;"
"<replaceable>FIRST</replaceable>-<replaceable>LAST</replaceable>"
msgstr ""
"<option>-K</option>, <option>--key</option>&nbsp;<replaceable>NYCKEL</"
@@ -1112,8 +1104,8 @@ msgstr ""
#: usermod.8.xml:409(para)
msgid ""
"This option may be specified multiple times to remove multiple ranges to a "
"users account. When both <option>--del-sub-uids</option> and <option>--add-"
"sub-uids</option> are specified, the removal of all subordinate uid ranges "
"users account. When both <option>--del-subuids</option> and <option>--add-"
"subuids</option> are specified, the removal of all subordinate uid ranges "
"happens before any subordinate uid range is added."
msgstr ""
@@ -1123,7 +1115,7 @@ msgstr ""
#| "<option>-K</option>, <option>--key</option>&nbsp;<replaceable>KEY</"
#| "replaceable>=<replaceable>VALUE</replaceable>"
msgid ""
"<option>-w</option>, <option>--add-sub-gids</option>&nbsp;"
"<option>-w</option>, <option>--add-subgids</option>&nbsp;"
"<replaceable>FIRST</replaceable>-<replaceable>LAST</replaceable>"
msgstr ""
"<option>-K</option>, <option>--key</option>&nbsp;<replaceable>NYCKEL</"
@@ -1146,7 +1138,7 @@ msgstr ""
#| "<option>-K</option>, <option>--key</option>&nbsp;<replaceable>KEY</"
#| "replaceable>=<replaceable>VALUE</replaceable>"
msgid ""
"<option>-W</option>, <option>--del-sub-gids</option>&nbsp;"
"<option>-W</option>, <option>--del-subgids</option>&nbsp;"
"<replaceable>FIRST</replaceable>-<replaceable>LAST</replaceable>"
msgstr ""
"<option>-K</option>, <option>--key</option>&nbsp;<replaceable>NYCKEL</"
@@ -1159,8 +1151,8 @@ msgstr ""
#: usermod.8.xml:447(para)
msgid ""
"This option may be specified multiple times to remove multiple ranges to a "
"users account. When both <option>--del-sub-gids</option> and <option>--add-"
"sub-gids</option> are specified, the removal of all subordinate gid ranges "
"users account. When both <option>--del-subgids</option> and <option>--add-"
"subgids</option> are specified, the removal of all subordinate gid ranges "
"happens before any subordinate gid range is added."
msgstr ""
@@ -1188,9 +1180,9 @@ msgstr ""
#: usermod.8.xml:478(title) userdel.8.xml:281(title) useradd.8.xml:623(title)
#: su.1.xml:331(title) shadow.3.xml:218(title) passwd.1.xml:372(title)
#: newusers.8.xml:350(title) login.1.xml:260(title) lastlog.8.xml:194(title)
#: groupdel.8.xml:116(title) groupadd.8.xml:257(title)
#: gpasswd.1.xml:252(title) faillog.8.xml:232(title) chpasswd.8.xml:231(title)
#: newusers.8.xml:350(title) login.1.xml:260(title) lastlog.8.xml:216(title)
#: groupdel.8.xml:116(title) groupadd.8.xml:257(title) gpasswd.1.xml:252(title)
#: faillog.8.xml:232(title) chpasswd.8.xml:231(title)
#: chgpasswd.8.xml:186(title)
msgid "CAVEATS"
msgstr "TÄNK PÅ"
@@ -1200,17 +1192,17 @@ msgid ""
"You must make certain that the named user is not executing any processes "
"when this command is being executed if the user's numerical user ID, the "
"user's name, or the user's home directory is being changed. "
"<command>usermod</command> checks this on Linux, but only check if the user "
"is logged in according to utmp on other architectures."
"<command>usermod</command> checks this on Linux. On other platforms it only "
"uses utmp to check if the user is logged in."
msgstr ""
#: usermod.8.xml:487(para)
#: usermod.8.xml:486(para)
msgid ""
"You must change the owner of any <command>crontab</command> files or "
"<command>at</command> jobs manually."
msgstr ""
#: usermod.8.xml:491(para)
#: usermod.8.xml:490(para)
msgid "You must make any changes involving NIS on the NIS server."
msgstr ""
@@ -1429,7 +1421,7 @@ msgid ""
"algorithm: <placeholder-1/>"
msgstr ""
#: usermod.8.xml:529(filename) userdel.8.xml:197(filename)
#: usermod.8.xml:528(filename) userdel.8.xml:197(filename)
#: useradd.8.xml:726(filename) su.1.xml:382(filename)
#: pwconv.8.xml:253(filename) passwd.1.xml:423(filename)
#: newusers.8.xml:424(filename) login.access.5.xml:124(filename)
@@ -1440,7 +1432,7 @@ msgstr ""
msgid "/etc/login.defs"
msgstr "/etc/login.defs"
#: usermod.8.xml:531(para) userdel.8.xml:199(para) useradd.8.xml:728(para)
#: usermod.8.xml:530(para) userdel.8.xml:199(para) useradd.8.xml:728(para)
#: su.1.xml:384(para) pwconv.8.xml:255(para) passwd.1.xml:425(para)
#: newusers.8.xml:426(para) login.access.5.xml:126(para) login.1.xml:391(para)
#: groupmod.8.xml:222(para) groupadd.8.xml:250(para) chsh.1.xml:184(para)
@@ -1448,31 +1440,31 @@ msgstr "/etc/login.defs"
msgid "Shadow password suite configuration."
msgstr ""
#: usermod.8.xml:547(filename) userdel.8.xml:215(filename)
#: usermod.8.xml:546(filename) userdel.8.xml:215(filename)
#: useradd.8.xml:714(filename) newusers.8.xml:436(filename)
#, fuzzy
#| msgid "/etc/suauth"
msgid "/etc/subgid"
msgstr "/etc/suauth"
#: usermod.8.xml:549(para) userdel.8.xml:217(para) useradd.8.xml:716(para)
#: usermod.8.xml:548(para) userdel.8.xml:217(para) useradd.8.xml:716(para)
#: newusers.8.xml:438(para)
msgid "Per user subordinate group IDs."
msgstr ""
#: usermod.8.xml:553(filename) userdel.8.xml:221(filename)
#: usermod.8.xml:552(filename) userdel.8.xml:221(filename)
#: useradd.8.xml:720(filename) newusers.8.xml:442(filename)
#, fuzzy
#| msgid "/etc/suauth"
msgid "/etc/subuid"
msgstr "/etc/suauth"
#: usermod.8.xml:555(para) userdel.8.xml:223(para) useradd.8.xml:722(para)
#: usermod.8.xml:554(para) userdel.8.xml:223(para) useradd.8.xml:722(para)
#: newusers.8.xml:444(para)
msgid "Per user subordinate user IDs."
msgstr ""
#: usermod.8.xml:563(para)
#: usermod.8.xml:562(para)
#, fuzzy
#| msgid ""
#| "<citerefentry><refentrytitle>chfn</refentrytitle><manvolnum>1</"
@@ -1708,9 +1700,8 @@ msgstr "lyckad"
#: passwd.1.xml:449(replaceable) newgrp.1.xml:59(manvolnum)
#: login.1.xml:91(manvolnum) grpck.8.xml:256(replaceable)
#: groups.1.xml:58(manvolnum) gpasswd.1.xml:63(manvolnum)
#: expiry.1.xml:62(manvolnum) chsh.1.xml:61(manvolnum)
#: chfn.1.xml:61(manvolnum) chage.1.xml:59(manvolnum)
#: chage.1.xml:289(replaceable)
#: expiry.1.xml:62(manvolnum) chsh.1.xml:61(manvolnum) chfn.1.xml:61(manvolnum)
#: chage.1.xml:59(manvolnum) chage.1.xml:289(replaceable)
msgid "1"
msgstr "1"
@@ -2072,7 +2063,7 @@ msgid ""
"<option>PASS_MAX_DAYS</option> and others). <placeholder-1/> Example: "
"<option>-K</option>&nbsp;<replaceable>PASS_MAX_DAYS</"
"replaceable>=<replaceable>-1</replaceable> can be used when creating system "
"account to turn off password ageing, even though system account has no "
"account to turn off password aging, even though system account has no "
"password at all. Multiple <option>-K</option> options can be specified, e."
"g.: <option>-K</option>&nbsp;<replaceable>UID_MIN</"
"replaceable>=<replaceable>100</replaceable>&nbsp;<option>-K</option>&nbsp;"
@@ -2101,7 +2092,7 @@ msgstr ""
#: useradd.8.xml:327(para)
msgid ""
"By default, the user's entries in the lastlog and faillog databases are "
"resetted to avoid reusing the entry from a previously deleted user."
"reset to avoid reusing the entry from a previously deleted user."
msgstr ""
#: useradd.8.xml:335(term)
@@ -2121,11 +2112,11 @@ msgid ""
"is not enabled, no home directories are created."
msgstr ""
#: useradd.8.xml:354(option)
#: useradd.8.xml:353(term)
#, fuzzy
#| msgid "-"
msgid "-M"
msgstr "-"
#| msgid "<option>-m</option>, <option>--create-home</option>"
msgid "<option>-M</option>, <option>--no-create-home</option>"
msgstr "<option>-m</option>, <option>--create-home</option>"
#: useradd.8.xml:357(para)
msgid ""
@@ -2204,10 +2195,10 @@ msgstr ""
#: useradd.8.xml:434(para)
msgid ""
"Note that <command>useradd</command> will not create a home directory for "
"such an user, regardless of the default setting in <filename>/etc/login."
"defs</filename> (<option>CREATE_HOME</option>). You have to specify the "
"<option>-m</option> options if you want a home directory for a system "
"account to be created."
"such a user, regardless of the default setting in <filename>/etc/login.defs</"
"filename> (<option>CREATE_HOME</option>). You have to specify the <option>-"
"m</option> options if you want a home directory for a system account to be "
"created."
msgstr ""
#: useradd.8.xml:461(para)
@@ -2764,7 +2755,7 @@ msgstr ""
#, no-wrap
msgid ""
"\n"
" 1) the user su is targetting\n"
" 1) the user su is targeting\n"
" "
msgstr ""
@@ -2809,14 +2800,23 @@ msgstr ""
"emphasis> följt av en lista med användarnamn separerade med \",\""
#: suauth.5.xml:107(para)
#, fuzzy
#| msgid ""
#| "from-id is formatted the same as to-id except the extra word "
#| "<emphasis>GROUP</emphasis> is recognised. <emphasis>ALL EXCEPT GROUP</"
#| "emphasis> is perfectly valid too. Following <emphasis>GROUP</emphasis> "
#| "appears one or more group names, delimited by \",\". It is not sufficient "
#| "to have primary group id of the relevant group, an entry in "
#| "<citerefentry><refentrytitle>/etc/group</refentrytitle><manvolnum>5</"
#| "manvolnum></citerefentry> is neccessary."
msgid ""
"from-id is formatted the same as to-id except the extra word "
"<emphasis>GROUP</emphasis> is recognised. <emphasis>ALL EXCEPT GROUP</"
"<emphasis>GROUP</emphasis> is recognized. <emphasis>ALL EXCEPT GROUP</"
"emphasis> is perfectly valid too. Following <emphasis>GROUP</emphasis> "
"appears one or more group names, delimited by \",\". It is not sufficient to "
"have primary group id of the relevant group, an entry in "
"<citerefentry><refentrytitle>/etc/group</refentrytitle><manvolnum>5</"
"manvolnum></citerefentry> is neccessary."
"manvolnum></citerefentry> is necessary."
msgstr ""
"från-id är formaterad på samma sätt som till-id förutom att det extra ordet "
"<emphasis>GROUP</emphasis> känns igen. <emphasis>ALL EXCEPT GROUP</emphasis> "
@@ -2954,9 +2954,8 @@ msgstr ""
"citerefentry>."
#: su.1.xml:58(contrib) shadow.5.xml:41(contrib) shadow.3.xml:41(contrib)
#: porttime.5.xml:41(contrib) passwd.5.xml:41(contrib)
#: passwd.1.xml:48(contrib) login.1.xml:74(contrib) faillog.8.xml:41(contrib)
#: faillog.5.xml:41(contrib)
#: porttime.5.xml:41(contrib) passwd.5.xml:41(contrib) passwd.1.xml:48(contrib)
#: login.1.xml:74(contrib) faillog.8.xml:41(contrib) faillog.5.xml:41(contrib)
msgid "Creation, 1989"
msgstr ""
@@ -3065,7 +3064,7 @@ msgstr "Ange ett kommando som ska startas av skalet med <option>-c</option>."
#: su.1.xml:158(para)
msgid ""
"The executed command will have no controlling terminal. This option cannot "
"be used to execute interractive programs which need a controlling TTY."
"be used to execute interactive programs which need a controlling TTY."
msgstr ""
#: su.1.xml:168(term)
@@ -3709,7 +3708,7 @@ msgstr ""
#: shadow.5.xml:117(para) gshadow.5.xml:107(para)
msgid ""
"A password field which starts with a exclamation mark means that the "
"A password field which starts with an exclamation mark means that the "
"password is locked. The remaining characters on the line represent the "
"password field before the password was locked."
msgstr ""
@@ -3729,7 +3728,7 @@ msgstr ""
#: shadow.5.xml:134(para)
msgid ""
"The value 0 has a special meaning, which is that the user should change her "
"pasword the next time she will log in the system."
"password the next time she will log in the system."
msgstr ""
#: shadow.5.xml:139(para)
@@ -3843,7 +3842,7 @@ msgstr ""
#: shadow.5.xml:229(para)
msgid ""
"Note that an account expiration differs from a password expiration. In case "
"of an acount expiration, the user shall not be allowed to login. In case of "
"of an account expiration, the user shall not be allowed to login. In case of "
"a password expiration, the user is not allowed to login using her password."
msgstr ""
@@ -4141,18 +4140,15 @@ msgstr ""
msgid "pwconv"
msgstr "pwconv"
#: pwconv.8.xml:71(refname) pwconv.8.xml:85(command)
#: login.defs.5.xml:438(term)
#: pwconv.8.xml:71(refname) pwconv.8.xml:85(command) login.defs.5.xml:438(term)
msgid "pwunconv"
msgstr "pwunconv"
#: pwconv.8.xml:72(refname) pwconv.8.xml:91(command)
#: login.defs.5.xml:340(term)
#: pwconv.8.xml:72(refname) pwconv.8.xml:91(command) login.defs.5.xml:340(term)
msgid "grpconv"
msgstr "grpconv"
#: pwconv.8.xml:73(refname) pwconv.8.xml:97(command)
#: login.defs.5.xml:346(term)
#: pwconv.8.xml:73(refname) pwconv.8.xml:97(command) login.defs.5.xml:346(term)
msgid "grpunconv"
msgstr "grpunconv"
@@ -4324,8 +4320,7 @@ msgstr "validera integriteten för lösenordsfiler"
#: pwck.8.xml:80(replaceable) passwd.5.xml:57(refentrytitle)
#: passwd.5.xml:64(refname) passwd.1.xml:64(refentrytitle)
#: passwd.1.xml:71(refname) passwd.1.xml:77(command)
#: login.defs.5.xml:409(term)
#: passwd.1.xml:71(refname) passwd.1.xml:77(command) login.defs.5.xml:409(term)
msgid "passwd"
msgstr "passwd"
@@ -4485,7 +4480,7 @@ msgstr ""
msgid ""
"Note that when <option>USE_TCB</option> is enabled, you cannot specify an "
"alternative <replaceable>shadow</replaceable> file. In future releases, this "
"paramater could be replaced by an alternate TCB directory."
"parameter could be replaced by an alternate TCB directory."
msgstr ""
#: pwck.8.xml:312(para)
@@ -4811,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 ""
@@ -4829,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."
@@ -4934,7 +4929,7 @@ msgstr ""
#: passwd.1.xml:166(para)
msgid ""
"You can find advices on how to choose a strong password on http://en."
"You can find advice on how to choose a strong password on http://en."
"wikipedia.org/wiki/Password_strength"
msgstr ""
@@ -4974,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."
@@ -5056,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 "
@@ -5133,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 "
@@ -5305,8 +5300,8 @@ msgstr "PASS_MIN_DAYS (nummer)"
#: passwd.1.xml:35(para) login.defs.5.xml:35(para)
msgid ""
"Number of significant characters in the password for crypt(). "
"<option>PASS_MAX_LEN</option> is 8 by default. Don't change unless your crypt"
"() is better. This is ignored if <option>MD5_CRYPT_ENAB</option> set to "
"<option>PASS_MAX_LEN</option> is 8 by default. Don't change unless your "
"crypt() is better. This is ignored if <option>MD5_CRYPT_ENAB</option> set to "
"<replaceable>yes</replaceable>."
msgstr ""
@@ -5478,7 +5473,7 @@ msgstr "HISTORIK"
#: nologin.8.xml:91(para)
#, fuzzy
#| msgid "The <command>nologin</command> command appeared in BSD 4.4."
msgid "The <command>nologin</command> command appearred in BSD 4.4."
msgid "The <command>nologin</command> command appeared in BSD 4.4."
msgstr "Kommandot <command>nologin</command> dök upp i BSD 4.4."
#: newusers.8.xml:72(refentrytitle) newusers.8.xml:79(refname)
@@ -5520,7 +5515,7 @@ msgstr ""
#: newusers.8.xml:116(para)
msgid ""
"It can be the name of a new user or the name of an existing user (or an user "
"It can be the name of a new user or the name of an existing user (or a user "
"created before by <command>newusers</command>). In case of an existing user, "
"the user's information will be changed, otherwise a new user will be created."
msgstr ""
@@ -5549,7 +5544,7 @@ msgstr ""
#: newusers.8.xml:144(para)
msgid ""
"If the field is empty, an new (unused) UID will be defined automatically by "
"If the field is empty, a new (unused) UID will be defined automatically by "
"<command>newusers</command>."
msgstr ""
@@ -5559,7 +5554,7 @@ msgstr ""
#: newusers.8.xml:152(para)
msgid ""
"If this field contains the name of an existing user (or the name of an user "
"If this field contains the name of an existing user (or the name of a user "
"created before by <command>newusers</command>), the UID of the specified "
"user will be used."
msgstr ""
@@ -6860,7 +6855,9 @@ msgid "D: max data size (KB)"
msgstr "D: maximal datastorlek (KB)"
#: limits.5.xml:111(para)
msgid "F: maximum filesize (KB)"
#, fuzzy
#| msgid "F: maximum filesize (KB)"
msgid "F: maximum file size (KB)"
msgstr "F: maximal filstorlek (KB)"
#: limits.5.xml:112(para)
@@ -6936,7 +6933,7 @@ msgstr ""
#: limits.5.xml:145(para)
msgid ""
"Be aware that after <emphasis remap=\"I\">username</emphasis> the rest of "
"the line is considered a limit string, thus comments are not allowed. A "
"the line is considered a limit string, thus comments are not allowed. An "
"invalid limits string will be rejected (not considered) by the "
"<command>login</command> program."
msgstr ""
@@ -6957,13 +6954,13 @@ msgstr ""
#: limits.5.xml:165(para)
msgid ""
"If more than one line with limits for an user exist, only the first line for "
"If more than one line with limits for a user exist, only the first line for "
"this user will be considered."
msgstr ""
#: limits.5.xml:170(para)
msgid ""
"If no lines are specified for an user, the last <replaceable>@group</"
"If no lines are specified for a user, the last <replaceable>@group</"
"replaceable> line matching a group whose the user is a member of will be "
"considered, or the last line with default limits if no groups contain the "
"user."
@@ -7041,7 +7038,33 @@ msgid ""
"Print only lastlog records older than <emphasis remap=\"I\">DAYS</emphasis>."
msgstr ""
#: lastlog.8.xml:127(term) faillog.8.xml:192(term)
#: lastlog.8.xml:107(term)
#, fuzzy
#| msgid "<option>-q</option>, <option>--quiet</option>"
msgid "<option>-C</option>, <option>--clear</option>"
msgstr "<option>-q</option>, <option>--quiet</option>"
#: lastlog.8.xml:111(para)
#, fuzzy
#| msgid "<option>-m</option>, <option>--create-home</option>"
msgid ""
"Clear lastlog record of a user. This option can be used only together with "
"<option>-u</option> (<option>--user</option>))."
msgstr "<option>-m</option>, <option>--create-home</option>"
#: lastlog.8.xml:138(term)
#, fuzzy
#| msgid "<option>-r</option>, <option>--reset</option>"
msgid "<option>-S</option>, <option>--set</option>"
msgstr "<option>-r</option>, <option>--reset</option>"
#: lastlog.8.xml:142(para)
msgid ""
"Set lastlog record of a user to the current time. This option can be used "
"only together with <option>-u</option> (<option>--user</option>))."
msgstr ""
#: lastlog.8.xml:149(term) faillog.8.xml:192(term)
msgid ""
"<option>-t</option>, <option>--time</option>&nbsp;<replaceable>DAYS</"
"replaceable>"
@@ -7049,13 +7072,13 @@ msgstr ""
"<option>-t</option>, <option>--time</option>&nbsp;<replaceable>DAGAR</"
"replaceable>"
#: lastlog.8.xml:131(para)
#: lastlog.8.xml:153(para)
msgid ""
"Print the lastlog records more recent than <emphasis remap=\"I\">DAYS</"
"emphasis>."
msgstr ""
#: lastlog.8.xml:138(term) faillog.8.xml:202(term)
#: lastlog.8.xml:160(term) faillog.8.xml:202(term)
#, fuzzy
#| msgid ""
#| "<option>-K</option>, <option>--key</option>&nbsp;<replaceable>KEY</"
@@ -7067,11 +7090,11 @@ msgstr ""
"<option>-K</option>, <option>--key</option>&nbsp;<replaceable>NYCKEL</"
"replaceable>=<replaceable>VÄRDE</replaceable>"
#: lastlog.8.xml:142(para)
#: lastlog.8.xml:164(para)
msgid "Print the lastlog record of the specified user(s)."
msgstr ""
#: lastlog.8.xml:145(para) faillog.8.xml:211(para)
#: lastlog.8.xml:167(para) faillog.8.xml:211(para)
msgid ""
"The users can be specified by a login name, a numerical user ID, or a "
"<replaceable>RANGE</replaceable> of users. This <replaceable>RANGE</"
@@ -7080,24 +7103,24 @@ msgid ""
"UID_MAX</replaceable>), or a min value (<replaceable>UID_MIN-</replaceable>)."
msgstr ""
#: lastlog.8.xml:157(para)
#: lastlog.8.xml:179(para)
msgid ""
"If the user has never logged in the message <emphasis>** Never logged in**</"
"emphasis> will be displayed instead of the port and time."
msgstr ""
#: lastlog.8.xml:162(para)
#: lastlog.8.xml:184(para)
msgid ""
"Only the entries for the current users of the system will be displayed. "
"Other entries may exist for users that were deleted previously."
msgstr ""
#: lastlog.8.xml:170(title) groups.1.xml:90(title) chsh.1.xml:140(title)
#: lastlog.8.xml:192(title) groups.1.xml:90(title) chsh.1.xml:140(title)
#: chage.1.xml:231(title)
msgid "NOTE"
msgstr "NOTERA"
#: lastlog.8.xml:171(para)
#: lastlog.8.xml:193(para)
msgid ""
"The <filename>lastlog</filename> file is a database which contains info on "
"the last login of each user. You should not rotate it. It is a sparse file, "
@@ -7107,15 +7130,15 @@ msgid ""
"its real size with \"<command>ls -s</command>\"."
msgstr ""
#: lastlog.8.xml:185(filename)
#: lastlog.8.xml:207(filename)
msgid "/var/log/lastlog"
msgstr "/var/log/lastlog"
#: lastlog.8.xml:187(para)
#: lastlog.8.xml:209(para)
msgid "Database times of previous user logins."
msgstr "Databastider för tidigare användarinloggningar."
#: lastlog.8.xml:195(para)
#: lastlog.8.xml:217(para)
msgid ""
"Large gaps in UID numbers will cause the lastlog program to run longer with "
"no output to the screen (i.e. if in lastlog database there is no entries for "
@@ -7179,7 +7202,7 @@ msgstr ""
#| "modified using the <citerefentry><refentrytitle>chfn</"
#| "refentrytitle><manvolnum>1</manvolnum></citerefentry> utility."
msgid ""
"The password is used when an user who is not a member of the group wants to "
"The password is used when a user who is not a member of the group wants to "
"gain the permissions of this group (see <citerefentry><refentrytitle>newgrp</"
"refentrytitle><manvolnum>1</manvolnum></citerefentry>)."
msgstr ""
@@ -7648,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)."
@@ -7683,7 +7706,7 @@ msgstr ""
#: groupmems.8.xml:109(para)
#, fuzzy
#| msgid "Add a new user to the group membership list."
msgid "Add an user to the group membership list."
msgid "Add a user to the group membership list."
msgstr "Lägg till en ny användare till gruppens medlemslista."
#: groupmems.8.xml:110(para) groupmems.8.xml:126(para)
@@ -8682,7 +8705,7 @@ msgstr ""
msgid ""
"The default encryption algorithm can be defined for the system with the "
"<option>ENCRYPT_METHOD</option> or <option>MD5_CRYPT_ENAB</option> variables "
"of <filename>/etc/login.defs</filename>, and can be overwitten with the "
"of <filename>/etc/login.defs</filename>, and can be overwritten with the "
"<option>-e</option>, <option>-m</option>, or <option>-c</option> options."
msgstr ""
@@ -8697,7 +8720,7 @@ msgstr ""
msgid ""
"<phrase condition=\"pam\">Except when PAM is used to encrypt the passwords,</"
"phrase><command>chpasswd</command> first updates all the passwords in "
"memory, and then commits all the changes to disk if no errors occured for "
"memory, and then commits all the changes to disk if no errors occurred for "
"any user."
msgstr ""
@@ -8861,7 +8884,7 @@ msgstr ""
msgid ""
"The default encryption algorithm can be defined for the system with the "
"<option>ENCRYPT_METHOD</option> variable of <filename>/etc/login.defs</"
"filename>, and can be overwiten with the <option>-e</option>, <option>-m</"
"filename>, and can be overwritten with the <option>-e</option>, <option>-m</"
"option>, or <option>-c</option> options."
msgstr ""
@@ -9041,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)
@@ -9133,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 ""
@@ -9158,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 ""
@@ -9183,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)
@@ -9207,6 +9230,11 @@ msgstr ""
msgid "translator-credits"
msgstr "Daniel Nylander <po@danielnylander.se>, 2006."
#, fuzzy
#~| msgid "-"
#~ msgid "-M"
#~ msgstr "-"
#~ msgid ""
#~ "<citerefentry><refentrytitle>chfn</refentrytitle><manvolnum>1</"
#~ "manvolnum></citerefentry>, <citerefentry><refentrytitle>chsh</"

File diff suppressed because it is too large Load Diff

View File

@@ -243,7 +243,7 @@
<para condition="tcb">
Note that when <option>USE_TCB</option> is enabled, you cannot
specify an alternative <replaceable>shadow</replaceable> file. In
future releases, this paramater could be replaced by an alternate
future releases, this parameter could be replaced by an alternate
TCB directory.
</para>
</refsect1>

View File

@@ -115,7 +115,7 @@
any access at all if the password field is empty.
</para>
<para>
A password field which starts with a exclamation mark means
A password field which starts with an exclamation mark means
that the password is locked. The remaining characters on the
line represent the password field before the password was
locked.
@@ -133,7 +133,7 @@
</para>
<para>
The value 0 has a special meaning, which is that the user
should change her pasword the next time she will log in the
should change her password the next time she will log in the
system.
</para>
<para>
@@ -228,7 +228,7 @@
</para>
<para>
Note that an account expiration differs from a password
expiration. In case of an acount expiration, the user shall
expiration. In case of an account expiration, the user shall
not be allowed to login. In case of a password expiration,
the user is not allowed to login using her password.
</para>

View File

@@ -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
@@ -157,7 +156,7 @@
</para>
<para>
The executed command will have no controlling terminal. This
option cannot be used to execute interractive programs which
option cannot be used to execute interactive programs which
need a controlling TTY.
<!-- This avoids TTY hijacking when su is used to lower
privileges -->
@@ -191,7 +190,7 @@
<para>The shell that will be invoked.</para>
<para>
The invoked shell is chosen from (highest priority first):
<!--This should be an orderedlist, but lists inside another
<!--This should be an ordered list, but lists inside another
list does not work well with current docbook.
- nekral - 2009.06.03 -->
<variablelist>

View File

@@ -81,7 +81,7 @@
<!-- .RS -->
<literallayout remap='.nf'>
1) the user su is targetting
1) the user su is targeting
</literallayout>
<!-- .fi -->
<para>
@@ -106,13 +106,13 @@
<para>
from-id is formatted the same as to-id except the extra word
<emphasis>GROUP</emphasis> is recognised. <emphasis>ALL EXCEPT
<emphasis>GROUP</emphasis> is recognized. <emphasis>ALL EXCEPT
GROUP</emphasis> is perfectly valid too. Following
<emphasis>GROUP</emphasis> appears one or more group names, delimited
by ",". It is not sufficient to have primary group id of the relevant
group, an entry in
<citerefentry><refentrytitle>/etc/group</refentrytitle>
<manvolnum>5</manvolnum></citerefentry> is neccessary.
<manvolnum>5</manvolnum></citerefentry> is necessary.
</para>
<para>

View File

@@ -32,6 +32,7 @@
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY CREATE_HOME SYSTEM "login.defs.d/CREATE_HOME.xml">
<!ENTITY GID_MAX SYSTEM "login.defs.d/GID_MAX.xml">
<!ENTITY LASTLOG_UID_MAX SYSTEM "login.defs.d/LASTLOG_UID_MAX.xml">
<!ENTITY MAIL_DIR SYSTEM "login.defs.d/MAIL_DIR.xml">
<!ENTITY MAX_MEMBERS_PER_GROUP SYSTEM "login.defs.d/MAX_MEMBERS_PER_GROUP.xml">
<!ENTITY PASS_MAX_DAYS SYSTEM "login.defs.d/PASS_MAX_DAYS.xml">
@@ -307,7 +308,7 @@
</para>
Example: <option>-K</option>&nbsp;<replaceable>PASS_MAX_DAYS</replaceable>=<replaceable>-1</replaceable>
can be used when creating system account to turn off password
ageing, even though system account has no password at all.
aging, even though system account has no password at all.
Multiple <option>-K</option> options can be specified, e.g.:
<option>-K</option>&nbsp;<replaceable>UID_MIN</replaceable>=<replaceable>100</replaceable>&nbsp;
<option>-K</option>&nbsp;<replaceable>UID_MAX</replaceable>=<replaceable>499</replaceable>
@@ -326,7 +327,7 @@
</para>
<para>
By default, the user's entries in the lastlog and faillog
databases are resetted to avoid reusing the entry from a previously
databases are reset to avoid reusing the entry from a previously
deleted user.
</para>
</listitem>
@@ -351,7 +352,7 @@
</varlistentry>
<varlistentry>
<term>
<option>-M</option>
<option>-M</option>, <option>--no-create-home</option>
</term>
<listitem>
<para>
@@ -433,7 +434,7 @@
</para>
<para>
Note that <command>useradd</command> will not create a home
directory for such an user, regardless of the default setting
directory for such a user, regardless of the default setting
in <filename>/etc/login.defs</filename>
(<option>CREATE_HOME</option>). You have to specify the
<option>-m</option> options if you want a home directory for a
@@ -453,6 +454,23 @@
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>-P</option>, <option>--prefix</option>&nbsp;<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>&nbsp;<replaceable>SHELL</replaceable>
@@ -653,6 +671,7 @@
<variablelist>
&CREATE_HOME;
&GID_MAX; <!-- documents also GID_MIN -->
&LASTLOG_UID_MAX;
&MAIL_DIR;
&MAX_MEMBERS_PER_GROUP;
&PASS_MAX_DAYS;

View File

@@ -154,6 +154,23 @@
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>-P</option>, <option>--prefix</option>&nbsp;<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>

View File

@@ -30,6 +30,7 @@
-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY LASTLOG_UID_MAX SYSTEM "login.defs.d/LASTLOG_UID_MAX.xml">
<!ENTITY MAIL_DIR SYSTEM "login.defs.d/MAIL_DIR.xml">
<!ENTITY MAX_MEMBERS_PER_GROUP SYSTEM "login.defs.d/MAX_MEMBERS_PER_GROUP.xml">
<!ENTITY SUB_GID_COUNT SYSTEM "login.defs.d/SUB_GID_COUNT.xml">
@@ -319,6 +320,23 @@
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>-P</option>, <option>--prefix</option>&nbsp;<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>&nbsp;<replaceable>SHELL</replaceable>
@@ -382,7 +400,7 @@
</varlistentry>
<varlistentry condition="subids">
<term>
<option>-v</option>, <option>--add-sub-uids</option>&nbsp;<replaceable>FIRST</replaceable>-<replaceable>LAST</replaceable>
<option>-v</option>, <option>--add-subuids</option>&nbsp;<replaceable>FIRST</replaceable>-<replaceable>LAST</replaceable>
</term>
<listitem>
<para>
@@ -400,7 +418,7 @@
</varlistentry>
<varlistentry condition="subids">
<term>
<option>-V</option>, <option>--del-sub-uids</option>&nbsp;<replaceable>FIRST</replaceable>-<replaceable>LAST</replaceable>
<option>-V</option>, <option>--del-subuids</option>&nbsp;<replaceable>FIRST</replaceable>-<replaceable>LAST</replaceable>
</term>
<listitem>
<para>
@@ -408,7 +426,7 @@
</para>
<para>
This option may be specified multiple times to remove multiple ranges to a users account.
When both <option>--del-sub-uids</option> and <option>--add-sub-uids</option> are specified,
When both <option>--del-subuids</option> and <option>--add-subuids</option> are specified,
the removal of all subordinate uid ranges happens before any subordinate uid range is added.
</para>
<para>
@@ -420,7 +438,7 @@
</varlistentry>
<varlistentry condition="subids">
<term>
<option>-w</option>, <option>--add-sub-gids</option>&nbsp;<replaceable>FIRST</replaceable>-<replaceable>LAST</replaceable>
<option>-w</option>, <option>--add-subgids</option>&nbsp;<replaceable>FIRST</replaceable>-<replaceable>LAST</replaceable>
</term>
<listitem>
<para>
@@ -438,7 +456,7 @@
</varlistentry>
<varlistentry condition="subids">
<term>
<option>-W</option>, <option>--del-sub-gids</option>&nbsp;<replaceable>FIRST</replaceable>-<replaceable>LAST</replaceable>
<option>-W</option>, <option>--del-subgids</option>&nbsp;<replaceable>FIRST</replaceable>-<replaceable>LAST</replaceable>
</term>
<listitem>
<para>
@@ -446,7 +464,7 @@
</para>
<para>
This option may be specified multiple times to remove multiple ranges to a users account.
When both <option>--del-sub-gids</option> and <option>--add-sub-gids</option> are specified,
When both <option>--del-subgids</option> and <option>--add-subgids</option> are specified,
the removal of all subordinate gid ranges happens before any subordinate gid range is added.
</para>
<para>
@@ -481,8 +499,7 @@
not executing any processes when this command is being executed if the
user's numerical user ID, the user's name, or the user's home
directory is being changed. <command>usermod</command> checks this
on Linux, but only check if the user is logged in according to utmp
on other architectures.
on Linux. On other platforms it only uses utmp to check if the user is logged in.
</para>
<para>
You must change the owner of any <command>crontab</command> files or
@@ -501,6 +518,7 @@
tool:
</para>
<variablelist>
&LASTLOG_UID_MAX;
&MAIL_DIR; <!-- documents also MAIL_FILE -->
&MAX_MEMBERS_PER_GROUP;
&SUB_GID_COUNT; <!-- documents also SUB_GID_MAX and SUB_GID_MIN -->

175
po/bs.po
View File

@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: shadow\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: 2004-05-09 12:03+0100\n"
"Last-Translator: Safir Šećerović <sapphire@linux.org.ba>\n"
"Language-Team: Bosnian <lokal@lugbih.org>\n"
@@ -113,12 +113,10 @@ msgid "Cannot init SELinux management\n"
msgstr ""
#, fuzzy, c-format
#| msgid "%s: unknown member %s\n"
msgid "Cannot create SELinux user key\n"
msgstr "%s: nepoznat član %s\n"
#, fuzzy, c-format
#| msgid "%s: unknown member %s\n"
msgid "Cannot verify the SELinux user\n"
msgstr "%s: nepoznat član %s\n"
@@ -151,7 +149,6 @@ msgid "%s: out of memory\n"
msgstr ""
#, fuzzy, c-format
#| msgid "%s: unknown member %s\n"
msgid "%s: Cannot stat %s: %s\n"
msgstr "%s: nepoznat član %s\n"
@@ -204,7 +201,6 @@ msgid "%s: Cannot change owners of %s: %s\n"
msgstr "nepoznata grupa: %s\n"
#, fuzzy, c-format
#| msgid "%s: unknown member %s\n"
msgid "%s: Cannot lstat %s: %s\n"
msgstr "%s: nepoznat član %s\n"
@@ -223,7 +219,6 @@ msgid "%s: mkdir: %s: %s\n"
msgstr "nepoznata grupa: %s\n"
#, fuzzy, c-format
#| msgid "%s: unknown member %s\n"
msgid "%s: Cannot open %s: %s\n"
msgstr "%s: nepoznat član %s\n"
@@ -413,6 +408,10 @@ msgstr "nepoznata grupa: %s\n"
msgid "%s: cannot access chroot directory %s: %s\n"
msgstr "nepoznata grupa: %s\n"
#, fuzzy, c-format
msgid "%s: cannot chdir to chroot directory %s: %s\n"
msgstr "nepoznata grupa: %s\n"
#, fuzzy, c-format
msgid "%s: unable to chroot to directory %s: %s\n"
msgstr "nepoznata grupa: %s\n"
@@ -481,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 ""
@@ -571,12 +570,10 @@ msgid "%s: PAM: %s\n"
msgstr "nepoznata grupa: %s\n"
#, fuzzy, c-format
#| msgid "%s: Try again later\n"
msgid "%s: cannot lock %s; try again later.\n"
msgstr "%s: Pokušajte ponovo kasnije\n"
#, fuzzy, c-format
#| msgid "%s: unknown member %s\n"
msgid "%s: cannot open %s\n"
msgstr "%s: nepoznat član %s\n"
@@ -747,6 +744,10 @@ msgstr ""
msgid "%s: line %d: missing new password\n"
msgstr ""
#, fuzzy, c-format
msgid "%s: failed to crypt password with salt '%s': %s\n"
msgstr "nepoznata grupa: %s\n"
#, fuzzy, c-format
msgid "%s: line %d: group '%s' does not exist\n"
msgstr "%s: grupa %s postoji\n"
@@ -1006,7 +1007,6 @@ msgid "%s: -K requires KEY=VALUE\n"
msgstr ""
#, fuzzy, c-format
#| msgid "%s: group %s exists\n"
msgid "%s: group '%s' already exists\n"
msgstr "%s: grupa %s postoji\n"
@@ -1015,10 +1015,14 @@ msgid "%s: GID '%lu' already exists\n"
msgstr ""
#, fuzzy, c-format
#| msgid "%s: unknown member %s\n"
msgid "%s: Cannot setup cleanup service.\n"
msgstr "%s: nepoznat član %s\n"
msgid ""
" -f, --force delete group even if it is the primary group "
"of a user\n"
msgstr ""
#, c-format
msgid "%s: cannot remove entry '%s' from %s\n"
msgstr ""
@@ -1209,7 +1213,6 @@ msgid "%s: no changes\n"
msgstr ""
#, fuzzy, c-format
#| msgid "%s: unknown member %s\n"
msgid "%s: cannot delete %s\n"
msgstr "%s: nepoznat član %s\n"
@@ -1226,6 +1229,16 @@ msgid ""
" -b, --before DAYS print only lastlog records older than DAYS\n"
msgstr ""
msgid ""
" -C, --clear clear lastlog record of an user (usable only "
"with -u)\n"
msgstr ""
msgid ""
" -S, --set set lastlog record to current time (usable "
"only with -u)\n"
msgstr ""
msgid ""
" -t, --time DAYS print only lastlog records more recent than "
"DAYS\n"
@@ -1244,6 +1257,22 @@ msgstr ""
msgid "**Never logged in**"
msgstr ""
#, fuzzy, c-format
msgid "%s: Failed to update the entry for UID %lu\n"
msgstr "nepoznata grupa: %s\n"
#, fuzzy, c-format
msgid "%s: Failed to update the lastlog file\n"
msgstr "nepoznata grupa: %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 ""
@@ -1273,12 +1302,6 @@ msgid ""
"[Disconnect bypassed -- root login allowed.]"
msgstr ""
#, c-format
msgid ""
"\n"
"Login timed out after %u seconds.\n"
msgstr ""
#, c-format
msgid "%s: Cannot possibly work without effective root\n"
msgstr ""
@@ -1286,6 +1309,12 @@ msgstr ""
msgid "No utmp entry. You must exec \"login\" from the lowest level \"sh\""
msgstr ""
#, c-format
msgid ""
"\n"
"Login timed out after %u seconds.\n"
msgstr ""
#, c-format
msgid "login: PAM Failure, aborting: %s\n"
msgstr ""
@@ -1308,7 +1337,6 @@ msgid "Login incorrect"
msgstr ""
#, fuzzy, c-format
#| msgid "%s: unknown member %s\n"
msgid "Cannot find user (%s)\n"
msgstr "%s: nepoznat član %s\n"
@@ -1355,6 +1383,10 @@ msgstr ""
msgid "Usage: sg group [[-c] command]\n"
msgstr ""
#, fuzzy, c-format
msgid "%s: failed to crypt password with previous salt: %s\n"
msgstr "nepoznata grupa: %s\n"
#, fuzzy
msgid "Invalid password.\n"
msgstr "Stara šifra:"
@@ -1421,6 +1453,18 @@ msgstr "nepoznata grupa: %s\n"
msgid "%s: line %d: can't update entry\n"
msgstr ""
#, fuzzy, c-format
msgid "%s: failed to prepare new %s entry\n"
msgstr "nepoznata grupa: %s\n"
#, c-format
msgid "%s: can't find subordinate user range\n"
msgstr ""
#, fuzzy, c-format
msgid "%s: can't find subordinate group range\n"
msgstr "nepoznata grupa: %s\n"
msgid ""
" -a, --all report password status on all accounts\n"
msgstr ""
@@ -1546,7 +1590,6 @@ msgid "%s: password changed.\n"
msgstr "Šifra:"
#, fuzzy, c-format
#| msgid "Password Expiration Warning"
msgid "%s: password expiry information changed.\n"
msgstr "Upozorenje o isteku šifre"
@@ -1587,7 +1630,6 @@ msgid "invalid user ID '%lu'\n"
msgstr ""
#, fuzzy, c-format
#| msgid "Adding user %s to group %s\n"
msgid "user '%s': no group %lu\n"
msgstr "Dodajem korisnika %s grupi %s\n"
@@ -1612,7 +1654,6 @@ msgid "failed to create tcb directory for %s\n"
msgstr ""
#, fuzzy, c-format
#| msgid "%s: unknown member %s\n"
msgid "%s: cannot lock %s.\n"
msgstr "%s: nepoznat član %s\n"
@@ -1660,14 +1701,7 @@ msgstr ""
msgid "Please enter your OWN password as authentication.\n"
msgstr ""
msgid " ...killed.\n"
msgstr ""
msgid " ...waiting for child to terminate.\n"
msgstr ""
#, fuzzy, c-format
#| msgid "%s: unknown member %s\n"
msgid "%s: Cannot fork user shell\n"
msgstr "%s: nepoznat član %s\n"
@@ -1682,13 +1716,19 @@ msgstr ""
msgid "Session terminated, terminating shell..."
msgstr ""
#, c-format
msgid "%s: %s\n"
msgid " ...killed.\n"
msgstr ""
msgid " ...waiting for child to terminate.\n"
msgstr ""
msgid " ...terminated.\n"
msgstr ""
#, c-format
msgid "%s: %s\n"
msgstr ""
msgid ""
"Usage: su [options] [LOGIN]\n"
"\n"
@@ -1742,7 +1782,6 @@ msgid "%s: Cannot drop the controlling terminal\n"
msgstr "nepoznata grupa: %s\n"
#, fuzzy, c-format
#| msgid "%s: unknown member %s\n"
msgid "Cannot execute %s\n"
msgstr "%s: nepoznat član %s\n"
@@ -1930,6 +1969,10 @@ msgstr ""
msgid "%s: failed to reset the lastlog entry of UID %lu: %s\n"
msgstr ""
#, fuzzy, c-format
msgid "%s: failed to prepare the new %s entry\n"
msgstr "nepoznata grupa: %s\n"
#, c-format
msgid "%s: cannot create directory %s\n"
msgstr ""
@@ -1969,6 +2012,14 @@ msgstr ""
msgid "%s: can't create group\n"
msgstr "nepoznata grupa: %s\n"
#, fuzzy, c-format
msgid "%s: can't create subordinate user IDs\n"
msgstr "nepoznata grupa: %s\n"
#, fuzzy, c-format
msgid "%s: can't create subordinate group IDs\n"
msgstr "nepoznata grupa: %s\n"
#, c-format
msgid ""
"%s: warning: the home directory already exists.\n"
@@ -2005,6 +2056,10 @@ msgstr ""
msgid "%s: group %s is the primary group of another user and is not removed.\n"
msgstr ""
#, fuzzy, c-format
msgid "%s: cannot remove entry %lu from %s\n"
msgstr "nepoznata grupa: %s\n"
#, c-format
msgid "%s: %s mail spool (%s) not found\n"
msgstr ""
@@ -2022,7 +2077,6 @@ msgid "%s: Can't allocate memory, tcb entry for %s not removed.\n"
msgstr ""
#, fuzzy, c-format
#| msgid "%s: unknown member %s\n"
msgid "%s: Cannot drop privileges: %s\n"
msgstr "%s: nepoznat član %s\n"
@@ -2079,7 +2133,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"
@@ -2107,6 +2161,18 @@ msgstr ""
msgid " -U, --unlock unlock the user account\n"
msgstr ""
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"
@@ -2123,7 +2189,14 @@ msgid "%s: user '%s' already exists in %s\n"
msgstr "%s: grupa %s postoji\n"
#, fuzzy, c-format
#| msgid "%s: unknown member %s\n"
msgid "%s: invalid subordinate uid range '%s'\n"
msgstr "nepoznata grupa: %s\n"
#, fuzzy, c-format
msgid "%s: invalid subordinate gid range '%s'\n"
msgstr "nepoznata grupa: %s\n"
#, fuzzy, c-format
msgid "%s: no options\n"
msgstr "%s: nepoznat član %s\n"
@@ -2139,6 +2212,10 @@ msgstr ""
msgid "%s: UID '%lu' already exists\n"
msgstr ""
#, c-format
msgid "%s: %s does not exist, you cannot use the flags %s or %s\n"
msgstr ""
#, c-format
msgid "%s: directory %s exists\n"
msgstr ""
@@ -2179,6 +2256,22 @@ msgstr ""
msgid "failed to rename mailbox"
msgstr ""
#, fuzzy, c-format
msgid "%s: failed to remove uid range %lu-%lu from '%s'\n"
msgstr "nepoznata grupa: %s\n"
#, c-format
msgid "%s: failed to add uid range %lu-%lu from '%s'\n"
msgstr ""
#, fuzzy, c-format
msgid "%s: failed to remove gid range %lu-%lu from '%s'\n"
msgstr "nepoznata grupa: %s\n"
#, c-format
msgid "%s: failed to add gid range %lu-%lu from '%s'\n"
msgstr ""
#, c-format
msgid ""
"You have modified %s.\n"
@@ -2227,6 +2320,18 @@ msgstr ""
msgid "Couldn't make backup"
msgstr ""
#, fuzzy, c-format
msgid "%s: %s: %s\n"
msgstr "nepoznata grupa: %s\n"
#, c-format
msgid "%s: %s returned with status %d\n"
msgstr ""
#, c-format
msgid "%s: %s killed by signal %d\n"
msgstr ""
msgid "failed to open scratch file"
msgstr ""

183
po/ca.po
View File

@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: shadow 4.0.18\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: 2012-01-22 18:25+0100\n"
"Last-Translator: Innocent De Marchi <tangram.peces@gmail.com>\n"
"Language-Team: Catalan <debian-l10n-catalan@lists.debian.org>\n"
@@ -46,7 +46,6 @@ msgid "%s: nscd did not terminate normally (signal %d)\n"
msgstr "%s: nscd no ha acabat correctament (senyal %d)\n"
#, fuzzy, c-format
#| msgid "%s: nscd exited with status %d"
msgid "%s: nscd exited with status %d\n"
msgstr "%s: «nscd» ha sortit amb l'estat %d"
@@ -429,6 +428,10 @@ msgstr "%s: camí «chroot» incorrecta «%s»\n"
msgid "%s: cannot access chroot directory %s: %s\n"
msgstr "%s: no es pot accedir al directori «chroot» %s: %s\n"
#, fuzzy, c-format
msgid "%s: cannot chdir to chroot directory %s: %s\n"
msgstr "%s: no es pot accedir al directori «chroot» %s: %s\n"
#, c-format
msgid "%s: unable to chroot to directory %s: %s\n"
msgstr "%s: no es pot executar «chroot» en el directori %s: %s\n"
@@ -513,8 +516,9 @@ msgstr ""
" -m, --mindays DIES_MÍN estableix el número mínim de dies abans\n"
" del canvi de contrasenya a DIES_MÍN\n"
#, fuzzy
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 ""
" -M, --maxdays DIES_MÀX estableix el número màxim de dies abans\n"
@@ -802,6 +806,10 @@ msgstr "%s: línia %d: la línia és massa llarga\n"
msgid "%s: line %d: missing new password\n"
msgstr "%s: línia %d: manca la nova contrasenya\n"
#, fuzzy, c-format
msgid "%s: failed to crypt password with salt '%s': %s\n"
msgstr "%s: Error en escriure %s: %s\n"
#, c-format
msgid "%s: line %d: group '%s' does not exist\n"
msgstr "%s: línia %d: el grup «%s» no existeix\n"
@@ -1120,6 +1128,14 @@ msgstr "%s: el GID '%lu ja existeix\n"
msgid "%s: Cannot setup cleanup service.\n"
msgstr "%s: no es pot configurar el servei de neteja.\n"
#, fuzzy
msgid ""
" -f, --force delete group even if it is the primary group "
"of a user\n"
msgstr ""
" -r, --reset restableix els comptadors d'errors "
"d'identificació\n"
#, c-format
msgid "%s: cannot remove entry '%s' from %s\n"
msgstr "%s: no es pot eliminar l'entrada «%s» de %s\n"
@@ -1350,6 +1366,22 @@ msgstr ""
" -b, --before DIES mostra només els registres de lastlog més\n"
" antics que DIES\n"
#, fuzzy
msgid ""
" -C, --clear clear lastlog record of an user (usable only "
"with -u)\n"
msgstr ""
" -a, --all mostra els registres «faillog» per a tots "
"els usuaris\n"
#, fuzzy
msgid ""
" -S, --set set lastlog record to current time (usable "
"only with -u)\n"
msgstr ""
" -a, --all mostra els registres «faillog» per a tots "
"els usuaris\n"
msgid ""
" -t, --time DAYS print only lastlog records more recent than "
"DAYS\n"
@@ -1371,6 +1403,22 @@ msgstr "Usuari Port Últim"
msgid "**Never logged in**"
msgstr "**No ha entrat mai**"
#, fuzzy, c-format
msgid "%s: Failed to update the entry for UID %lu\n"
msgstr "%s: No s'ha pogut obtenir l'entrada de la UID %lu\n"
#, fuzzy, c-format
msgid "%s: Failed to update the lastlog file\n"
msgstr "%s: no es pot actualitzar el fitxer de contrasenyes\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 "Forma d'ús: %s [-p] [nom]\n"
@@ -1404,14 +1452,6 @@ msgstr ""
"\n"
"[S'ha evitat la desconnexió -- l'accés de «root» està permès]."
#, c-format
msgid ""
"\n"
"Login timed out after %u seconds.\n"
msgstr ""
"\n"
"L'accés ha caducat després de %u segons.\n"
#, c-format
msgid "%s: Cannot possibly work without effective root\n"
msgstr "%s: no es pot treballar sense ésser administrador\n"
@@ -1420,6 +1460,14 @@ msgid "No utmp entry. You must exec \"login\" from the lowest level \"sh\""
msgstr ""
"No hi ha entrada utmp. Heu d'executar «login» des del «sh» de nivell més baix"
#, c-format
msgid ""
"\n"
"Login timed out after %u seconds.\n"
msgstr ""
"\n"
"L'accés ha caducat després de %u segons.\n"
#, c-format
msgid "login: PAM Failure, aborting: %s\n"
msgstr "login: fallada de PAM, s'està cancel·lant: %s\n"
@@ -1492,6 +1540,10 @@ msgstr "Forma d'ús: newgrp [-] [grup]\n"
msgid "Usage: sg group [[-c] command]\n"
msgstr "Forma d'ús: sg grup [[-c] ordre]\n"
#, fuzzy, c-format
msgid "%s: failed to crypt password with previous salt: %s\n"
msgstr "%s: Error en escriure %s: %s\n"
msgid "Invalid password.\n"
msgstr "Contrasenya no vàlida.\n"
@@ -1561,6 +1613,18 @@ msgstr ""
msgid "%s: line %d: can't update entry\n"
msgstr "%s: línia %d: no es pot actualitzar l'entrada\n"
#, fuzzy, c-format
msgid "%s: failed to prepare new %s entry\n"
msgstr "%s: ha fallat la preparació de la nova entrada %s: «%s»\n"
#, fuzzy, c-format
msgid "%s: can't find subordinate user range\n"
msgstr "%s: no es pot generar l'usuari\n"
#, fuzzy, c-format
msgid "%s: can't find subordinate group range\n"
msgstr "%s: no es pot actualitzar el fitxer de grups\n"
msgid ""
" -a, --all report password status on all accounts\n"
msgstr ""
@@ -1833,12 +1897,6 @@ msgstr "S'ha evitat l'autenticació de contrasenya.\n"
msgid "Please enter your OWN password as authentication.\n"
msgstr "Si us plau introduïu la VOSTRA contrasenya com a autenticació.\n"
msgid " ...killed.\n"
msgstr "...mort.\n"
msgid " ...waiting for child to terminate.\n"
msgstr "...esperant al fill per acabar.\n"
#, c-format
msgid "%s: Cannot fork user shell\n"
msgstr "%s: no es pot blocar el «shell» de l'usuari\n"
@@ -1854,13 +1912,19 @@ msgstr "%s: el senyal emmascara un error\n"
msgid "Session terminated, terminating shell..."
msgstr "Sessió acabada, finalitzant el «shell»..."
#, c-format
msgid "%s: %s\n"
msgstr "%s: %s\n"
msgid " ...killed.\n"
msgstr "...mort.\n"
msgid " ...waiting for child to terminate.\n"
msgstr "...esperant al fill per acabar.\n"
msgid " ...terminated.\n"
msgstr "...acabat.\n"
#, c-format
msgid "%s: %s\n"
msgstr "%s: %s\n"
msgid ""
"Usage: su [options] [LOGIN]\n"
"\n"
@@ -1973,7 +2037,6 @@ msgid "%s: line too long in %s: %s..."
msgstr "%s: línia massa llarga a %s: %s..."
#, fuzzy, c-format
#| msgid "%s: Cannot create symbolic link %s: %s\n"
msgid "%s: Cannot create backup file (%s): %s\n"
msgstr "%s: no es pot generar l'enllaç simbòlic %s: %s\n"
@@ -2147,6 +2210,10 @@ msgstr ""
msgid "%s: failed to reset the lastlog entry of UID %lu: %s\n"
msgstr "%s: ha fallat el restabliment del darrer registre de UID %lu: %s\n"
#, fuzzy, c-format
msgid "%s: failed to prepare the new %s entry\n"
msgstr "%s: ha fallat la preparació de la nova entrada %s: «%s»\n"
#, c-format
msgid "%s: cannot create directory %s\n"
msgstr "%s: no es pot crear el directori %s\n"
@@ -2190,6 +2257,14 @@ msgstr "%s: no es pot generar el directori «tcb» per a %s\n"
msgid "%s: can't create group\n"
msgstr "%s: no es pot generar el grup\n"
#, fuzzy, c-format
msgid "%s: can't create subordinate user IDs\n"
msgstr "%s: no es pot generar l'usuari\n"
#, fuzzy, c-format
msgid "%s: can't create subordinate group IDs\n"
msgstr "%s: no es pot generar el grup\n"
#, c-format
msgid ""
"%s: warning: the home directory already exists.\n"
@@ -2239,6 +2314,10 @@ msgstr ""
"%s: no es pot eliminar el grup %s, que és el grup primari per un altre "
"usuari.\n"
#, fuzzy, c-format
msgid "%s: cannot remove entry %lu from %s\n"
msgstr "%s: no es pot eliminar l'entrada «%s» de %s\n"
#, c-format
msgid "%s: %s mail spool (%s) not found\n"
msgstr "%s: %s no s'ha trobat la cua de correu (%s)\n"
@@ -2325,7 +2404,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"
@@ -2360,6 +2439,18 @@ msgstr " -u, --uid UID nou UID per al compte d'usuari\n"
msgid " -U, --unlock unlock the user account\n"
msgstr " -U, --unlock desbloca el compte d'usuari\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"
@@ -2381,6 +2472,14 @@ msgstr ""
msgid "%s: user '%s' already exists in %s\n"
msgstr "%s: l'usuari «%s» ja existeix a %s\n"
#, fuzzy, c-format
msgid "%s: invalid subordinate uid range '%s'\n"
msgstr "%s: la data «%s» no és vàlida\n"
#, fuzzy, c-format
msgid "%s: invalid subordinate gid range '%s'\n"
msgstr "%s: la data «%s» no és vàlida\n"
#, c-format
msgid "%s: no options\n"
msgstr "%s: sense opcions\n"
@@ -2397,6 +2496,10 @@ msgstr "%s: les contrasenyes ombra són obligatòries per a «-e» i «-f»\n"
msgid "%s: UID '%lu' already exists\n"
msgstr "%s: UID '%lu' ja existeix\n"
#, fuzzy, c-format
msgid "%s: %s does not exist, you cannot use the flags %s or %s\n"
msgstr "%s: %s no està autoritzat per canviar la contrasenya de %s\n"
#, c-format
msgid "%s: directory %s exists\n"
msgstr "%s: el directori %s ja existeix\n"
@@ -2444,6 +2547,22 @@ msgstr "no s'ha pogut canviar el propietari de la bústia de correu"
msgid "failed to rename mailbox"
msgstr "no s'ha pogut reanomenar la bústia de correu"
#, fuzzy, c-format
msgid "%s: failed to remove uid range %lu-%lu from '%s'\n"
msgstr "%s: ha fallat la preparació de la nova entrada %s: «%s»\n"
#, fuzzy, c-format
msgid "%s: failed to add uid range %lu-%lu from '%s'\n"
msgstr "%s: ha fallat la preparació de la nova entrada %s: «%s»\n"
#, fuzzy, c-format
msgid "%s: failed to remove gid range %lu-%lu from '%s'\n"
msgstr "%s: ha fallat la preparació de la nova entrada %s: «%s»\n"
#, fuzzy, c-format
msgid "%s: failed to add gid range %lu-%lu from '%s'\n"
msgstr "%s: ha fallat la preparació de la nova entrada %s: «%s»\n"
#, c-format
msgid ""
"You have modified %s.\n"
@@ -2499,6 +2618,18 @@ msgstr "No s'ha pogut blocar el fitxer"
msgid "Couldn't make backup"
msgstr "No s'ha pogut fer una còpia de seguretat"
#, fuzzy, c-format
msgid "%s: %s: %s\n"
msgstr "%s: PAM: %s\n"
#, fuzzy, c-format
msgid "%s: %s returned with status %d\n"
msgstr "%s: «nscd» ha sortit amb l'estat %d"
#, c-format
msgid "%s: %s killed by signal %d\n"
msgstr ""
msgid "failed to open scratch file"
msgstr "no s'ha pogut obrir el fitxer de treball («scratch file»)"
@@ -2809,7 +2940,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"
@@ -3132,9 +3263,6 @@ msgstr "%s: no es pot trobar el directori «tcb» per %s\n"
#~ msgid "%s: can't rewrite password file\n"
#~ msgstr "%s: no es pot reescriure el fitxer de contrasenyes\n"
#~ msgid "%s: can't update password file\n"
#~ msgstr "%s: no es pot actualitzar el fitxer de contrasenyes\n"
#~ msgid "%s: can't update shadow password file\n"
#~ msgstr "%s: no es pot actualitzar el fitxer de contrasenyes ombra\n"
@@ -3371,9 +3499,6 @@ msgstr "%s: no es pot trobar el directori «tcb» per %s\n"
#~ msgid "%s: can't update shadow group file\n"
#~ msgstr "%s: no es pot actualitzar el fitxer de grups ombra\n"
#~ msgid "%s: can't update group file\n"
#~ msgstr "%s: no es pot actualitzar el fitxer de grups\n"
#~ msgid "%s: can't delete shadow group file\n"
#~ msgstr "%s: no es pot eliminar el fitxer de grups ombra\n"

718
po/cs.po

File diff suppressed because it is too large Load Diff

168
po/da.po
View File

@@ -20,7 +20,7 @@ msgid ""
msgstr ""
"Project-Id-Version: shadow\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: 2012-01-26 23:57+0100\n"
"Last-Translator: Joe Hansen <joedalton2@yahoo.dk>\n"
"Language-Team: Danish <debian-l10n-danish@lists.debian.org>\n"
@@ -57,7 +57,6 @@ msgid "%s: nscd did not terminate normally (signal %d)\n"
msgstr "%s: nscd afsluttedes ikke normalt (signal %d)\n"
#, fuzzy, c-format
#| msgid "%s: nscd exited with status %d"
msgid "%s: nscd exited with status %d\n"
msgstr "%s: nscd afsluttede med status %d"
@@ -435,6 +434,10 @@ msgstr "%s: Ugyldig chroot-sti »%s«\n"
msgid "%s: cannot access chroot directory %s: %s\n"
msgstr "%s: Kan ikke tilgå chroot-mappe %s: %s\n"
#, fuzzy, c-format
msgid "%s: cannot chdir to chroot directory %s: %s\n"
msgstr "%s: Kan ikke tilgå chroot-mappe %s: %s\n"
#, c-format
msgid "%s: unable to chroot to directory %s: %s\n"
msgstr "%s: Kan ikke chroot til mappe %s: %s\n"
@@ -514,8 +517,9 @@ msgstr ""
" -m, --mindays MIN_DAGE sæt minimalt antal dage inden\n"
" adgangskodeændring til MIN_DAGE\n"
#, fuzzy
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 ""
" -M, --maxdays MAKS_DAGE sæt maksimalt antal dage inden\n"
@@ -792,6 +796,10 @@ msgstr "%s: Linje %d: Linjen er for lang\n"
msgid "%s: line %d: missing new password\n"
msgstr "%s: Linje %d: Mangler ny adgangskode\n"
#, fuzzy, c-format
msgid "%s: failed to crypt password with salt '%s': %s\n"
msgstr "%s: Kunne ikke skrive %s: %s\n"
#, c-format
msgid "%s: line %d: group '%s' does not exist\n"
msgstr "%s: Linje %d: Gruppe »%s« findes ikke\n"
@@ -1093,6 +1101,13 @@ msgstr "%s: GID »%lu« findes allerede\n"
msgid "%s: Cannot setup cleanup service.\n"
msgstr "%s: Kan ikke opsætte tjenesten cleanup.\n"
#, fuzzy
msgid ""
" -f, --force delete group even if it is the primary group "
"of a user\n"
msgstr ""
" -r, --reset nulstil tælleren for mislykkede logind\n"
#, c-format
msgid "%s: cannot remove entry '%s' from %s\n"
msgstr "%s: Kan ikke fjerne punkt »%s« fra %s\n"
@@ -1323,6 +1338,18 @@ msgstr ""
" -b, --before DAGE vis kun lastlog-poster, der er ældre\n"
" end DAGE\n"
#, fuzzy
msgid ""
" -C, --clear clear lastlog record of an user (usable only "
"with -u)\n"
msgstr " -a, --all vis faillog-poster for alle brugere\n"
#, fuzzy
msgid ""
" -S, --set set lastlog record to current time (usable "
"only with -u)\n"
msgstr " -a, --all vis faillog-poster for alle brugere\n"
msgid ""
" -t, --time DAYS print only lastlog records more recent than "
"DAYS\n"
@@ -1345,6 +1372,22 @@ msgstr "Brugernavn Port Seneste"
msgid "**Never logged in**"
msgstr "**Har aldrig logget på**"
#, fuzzy, c-format
msgid "%s: Failed to update the entry for UID %lu\n"
msgstr "%s: Kunne ikke indhente punktet for UID %lu\n"
#, fuzzy, c-format
msgid "%s: Failed to update the lastlog file\n"
msgstr "%s: Kunne ikke nulstille lastlog-punktet for UID %lu: %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 "Brug: %s [-p] [navn]\n"
@@ -1378,6 +1421,13 @@ msgstr ""
"\n"
"[Afbrød ikke forbindelsen - root-logind er tilladt.]"
#, c-format
msgid "%s: Cannot possibly work without effective root\n"
msgstr "%s: Kan umuligt arbejde uden effektiv root\n"
msgid "No utmp entry. You must exec \"login\" from the lowest level \"sh\""
msgstr "Intet utmp-punkt. Du skal køre »login« fra det laveste »sh-niveau«"
#, c-format
msgid ""
"\n"
@@ -1386,13 +1436,6 @@ msgstr ""
"\n"
"Logind udløb efter %u sekunder.\n"
#, c-format
msgid "%s: Cannot possibly work without effective root\n"
msgstr "%s: Kan umuligt arbejde uden effektiv root\n"
msgid "No utmp entry. You must exec \"login\" from the lowest level \"sh\""
msgstr "Intet utmp-punkt. Du skal køre »login« fra det laveste »sh-niveau«"
#, c-format
msgid "login: PAM Failure, aborting: %s\n"
msgstr "login: PAM-fejl, afbryder: %s\n"
@@ -1465,6 +1508,10 @@ msgstr "Brug: newgrp [-] [gruppe]\n"
msgid "Usage: sg group [[-c] command]\n"
msgstr "Brug: sg gruppe [[-c] kommando]\n"
#, fuzzy, c-format
msgid "%s: failed to crypt password with previous salt: %s\n"
msgstr "%s: Kunne ikke skrive %s: %s\n"
msgid "Invalid password.\n"
msgstr "Ugyldig adgangskode.\n"
@@ -1531,6 +1578,18 @@ msgstr "%s: Linje %d: chown %s fejlede: %s\n"
msgid "%s: line %d: can't update entry\n"
msgstr "%s: Linje %d: Kan ikke opdatere punktet\n"
#, fuzzy, c-format
msgid "%s: failed to prepare new %s entry\n"
msgstr "%s: Kunne ikke forberede det nye %s-punkt »%s«\n"
#, fuzzy, c-format
msgid "%s: can't find subordinate user range\n"
msgstr "%s: Kan ikke oprette bruger\n"
#, fuzzy, c-format
msgid "%s: can't find subordinate group range\n"
msgstr "%s: Kan ikke oprette gruppe\n"
msgid ""
" -a, --all report password status on all accounts\n"
msgstr ""
@@ -1795,12 +1854,6 @@ msgstr "Gik uden om adgangskodegodkendelse.\n"
msgid "Please enter your OWN password as authentication.\n"
msgstr "Angiv din EGEN adgangskode som godkendelse.\n"
msgid " ...killed.\n"
msgstr " ...dræbt.\n"
msgid " ...waiting for child to terminate.\n"
msgstr " ...venter på at underproces termineres.\n"
#, c-format
msgid "%s: Cannot fork user shell\n"
msgstr "%s: Kan ikke forgrene brugerskal\n"
@@ -1816,13 +1869,19 @@ msgstr "%s: Forkert signalmasking\n"
msgid "Session terminated, terminating shell..."
msgstr "Session termineret, terminerer skal..."
#, c-format
msgid "%s: %s\n"
msgstr "%s: %s\n"
msgid " ...killed.\n"
msgstr " ...dræbt.\n"
msgid " ...waiting for child to terminate.\n"
msgstr " ...venter på at underproces termineres.\n"
msgid " ...terminated.\n"
msgstr " ...termineret.\n"
#, c-format
msgid "%s: %s\n"
msgstr "%s: %s\n"
msgid ""
"Usage: su [options] [LOGIN]\n"
"\n"
@@ -1934,7 +1993,6 @@ msgid "%s: line too long in %s: %s..."
msgstr "%s: Linje for lang i %s: %s..."
#, fuzzy, c-format
#| msgid "%s: Cannot create symbolic link %s: %s\n"
msgid "%s: Cannot create backup file (%s): %s\n"
msgstr "%s: Kan ikke oprette symbolsk henvisning %s: %s\n"
@@ -2106,6 +2164,10 @@ msgstr "%s: Kunne ikke nulstille faillog-punktet for UID %lu: %s\n"
msgid "%s: failed to reset the lastlog entry of UID %lu: %s\n"
msgstr "%s: Kunne ikke nulstille lastlog-punktet for UID %lu: %s\n"
#, fuzzy, c-format
msgid "%s: failed to prepare the new %s entry\n"
msgstr "%s: Kunne ikke forberede det nye %s-punkt »%s«\n"
#, c-format
msgid "%s: cannot create directory %s\n"
msgstr "%s: Kan ikke oprette mappen %s\n"
@@ -2149,6 +2211,14 @@ msgstr "%s: Kan ikke oprette tcv-mappe for %s\n"
msgid "%s: can't create group\n"
msgstr "%s: Kan ikke oprette gruppe\n"
#, fuzzy, c-format
msgid "%s: can't create subordinate user IDs\n"
msgstr "%s: Kan ikke oprette bruger\n"
#, fuzzy, c-format
msgid "%s: can't create subordinate group IDs\n"
msgstr "%s: Kan ikke oprette gruppe\n"
#, c-format
msgid ""
"%s: warning: the home directory already exists.\n"
@@ -2195,6 +2265,10 @@ msgid "%s: group %s is the primary group of another user and is not removed.\n"
msgstr ""
"%s: Gruppe %s er den primære gruppe for en anden bruger og fjernes ikke.\n"
#, fuzzy, c-format
msgid "%s: cannot remove entry %lu from %s\n"
msgstr "%s: Kan ikke fjerne punkt »%s« fra %s\n"
#, c-format
msgid "%s: %s mail spool (%s) not found\n"
msgstr "%s: %s postkø (%s) er ikke fundet\n"
@@ -2277,7 +2351,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"
@@ -2316,6 +2390,18 @@ msgstr " -u, --uid UID ny UID til brugerkontoen\n"
msgid " -U, --unlock unlock the user account\n"
msgstr " -U, --unlock åbn brugerkontoen\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"
@@ -2337,6 +2423,14 @@ msgstr ""
msgid "%s: user '%s' already exists in %s\n"
msgstr "%s: Brugeren »%s« findes allerede i %s\n"
#, fuzzy, c-format
msgid "%s: invalid subordinate uid range '%s'\n"
msgstr "%s: Ugyldig dato »%s«\n"
#, fuzzy, c-format
msgid "%s: invalid subordinate gid range '%s'\n"
msgstr "%s: Ugyldig dato »%s«\n"
#, c-format
msgid "%s: no options\n"
msgstr "%s: Ingen tilvalg\n"
@@ -2353,6 +2447,10 @@ msgstr "%s: Skyggeadgangskoder kræves for -e og -f\n"
msgid "%s: UID '%lu' already exists\n"
msgstr "%s: UID »%lu« findes allerede\n"
#, fuzzy, c-format
msgid "%s: %s does not exist, you cannot use the flags %s or %s\n"
msgstr "%s: %s er ikke godkendt til at ændre adgangskoden på %s\n"
#, c-format
msgid "%s: directory %s exists\n"
msgstr "%s: Mappen %s findes\n"
@@ -2397,6 +2495,22 @@ msgstr "kunne ikke ændre postkassens ejer"
msgid "failed to rename mailbox"
msgstr "kunne ikke omdøbe postkasse"
#, fuzzy, c-format
msgid "%s: failed to remove uid range %lu-%lu from '%s'\n"
msgstr "%s: Kunne ikke forberede det nye %s-punkt »%s«\n"
#, fuzzy, c-format
msgid "%s: failed to add uid range %lu-%lu from '%s'\n"
msgstr "%s: Kunne ikke forberede det nye %s-punkt »%s«\n"
#, fuzzy, c-format
msgid "%s: failed to remove gid range %lu-%lu from '%s'\n"
msgstr "%s: Kunne ikke forberede det nye %s-punkt »%s«\n"
#, fuzzy, c-format
msgid "%s: failed to add gid range %lu-%lu from '%s'\n"
msgstr "%s: Kunne ikke forberede det nye %s-punkt »%s«\n"
#, c-format
msgid ""
"You have modified %s.\n"
@@ -2450,6 +2564,18 @@ msgstr "Kunne ikke låse filen"
msgid "Couldn't make backup"
msgstr "Kunne ikke lave sikkerhedskopi"
#, fuzzy, c-format
msgid "%s: %s: %s\n"
msgstr "%s: PAM: %s\n"
#, fuzzy, c-format
msgid "%s: %s returned with status %d\n"
msgstr "%s: nscd afsluttede med status %d"
#, c-format
msgid "%s: %s killed by signal %d\n"
msgstr ""
msgid "failed to open scratch file"
msgstr "kunne ikke åbne scratch-fil"

837
po/de.po

File diff suppressed because it is too large Load Diff

305
po/dz.po

File diff suppressed because it is too large Load Diff

186
po/el.po
View File

@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: shadow_po_el\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: 2012-01-21 00:22+0200\n"
"Last-Translator: Thomas Vasileiou <thomas-v@wildmail.com>\n"
"Language-Team: Greek <debian-l10n-greek@lists.debian.org>\n"
@@ -47,7 +47,6 @@ msgid "%s: nscd did not terminate normally (signal %d)\n"
msgstr "%s: το nscd δεν τερμάτισε κανονικά (σήμα %d)\n"
#, fuzzy, c-format
#| msgid "%s: nscd exited with status %d"
msgid "%s: nscd exited with status %d\n"
msgstr "%s: το ncsd τερμάτισε με κατάσταση εξόδου %d"
@@ -432,6 +431,10 @@ msgstr "%s: διαδρομή chroot μη έγκυρη '%s'\n"
msgid "%s: cannot access chroot directory %s: %s\n"
msgstr "%s: αδυναμία προσπέλαση του καταλόγου chroot %s: %s\n"
#, fuzzy, c-format
msgid "%s: cannot chdir to chroot directory %s: %s\n"
msgstr "%s: αδυναμία προσπέλαση του καταλόγου chroot %s: %s\n"
#, c-format
msgid "%s: unable to chroot to directory %s: %s\n"
msgstr ""
@@ -517,8 +520,9 @@ msgstr ""
"συνθηματικό\n"
" αλλάξει σε ΕΛΑΧ_ΗΜΕΡΕΣ\n"
#, fuzzy
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 ""
" -M, --maxdays ΜΕΓ_ΗΜΕΡΕΣ καθορίζει μέγιστο αριθμό ημερών πριν το "
@@ -806,6 +810,10 @@ msgstr "%s: γραμμή %d: πολύ μεγάλη γραμμή\n"
msgid "%s: line %d: missing new password\n"
msgstr "%s: γραμμή %d: έλλειψη νέου συνθηματικού\n"
#, fuzzy, c-format
msgid "%s: failed to crypt password with salt '%s': %s\n"
msgstr "%s: Αποτυχία εγγραφής %s: %s\n"
#, c-format
msgid "%s: line %d: group '%s' does not exist\n"
msgstr "%s: γραμμή %d: η ομάδα '%s' δεν υπάρχει\n"
@@ -1119,6 +1127,13 @@ msgstr "%s: το GID '%lu' υπάρχει\n"
msgid "%s: Cannot setup cleanup service.\n"
msgstr "%s: Δεν ήταν δυνατή η ρύθμιση της υπηρεσίας εκκαθάρισης.\n"
#, fuzzy
msgid ""
" -f, --force delete group even if it is the primary group "
"of a user\n"
msgstr ""
" -r, --reset επαναφορά μετρητή αποτυχημένων εισόδων\n"
#, c-format
msgid "%s: cannot remove entry '%s' from %s\n"
msgstr "%s: αδυναμία απομάκρυνσης της εγγραφής '%s' από το %s\n"
@@ -1349,6 +1364,22 @@ msgstr ""
" -b, --before ΗΜΕΡΕΣ προβολή των εγγραφών του lastlog που είναι "
"παλαιότερες από ΗΜΕΡΕΣ\n"
#, fuzzy
msgid ""
" -C, --clear clear lastlog record of an user (usable only "
"with -u)\n"
msgstr ""
" -a, --all προβολή των εγγραφών του faillog για όλους "
"τους χρήστες\n"
#, fuzzy
msgid ""
" -S, --set set lastlog record to current time (usable "
"only with -u)\n"
msgstr ""
" -a, --all προβολή των εγγραφών του faillog για όλους "
"τους χρήστες\n"
msgid ""
" -t, --time DAYS print only lastlog records more recent than "
"DAYS\n"
@@ -1371,6 +1402,22 @@ msgstr "Όνομα_Χρήστη Θύρα Τελευταία"
msgid "**Never logged in**"
msgstr "**Καμιά είσοδος στο σύστημα**"
#, fuzzy, c-format
msgid "%s: Failed to update the entry for UID %lu\n"
msgstr "%s: Aδυναμία ανάκτησης της εγγραφής UID %lu\n"
#, fuzzy, c-format
msgid "%s: Failed to update the lastlog file\n"
msgstr "%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 "Χρήση: %s [-p] [όνομα]\n"
@@ -1404,14 +1451,6 @@ msgstr ""
"\n"
"[Παράκαμψη αποσύνδεσης -- Η είσοδος του root επετράπη.]"
#, c-format
msgid ""
"\n"
"Login timed out after %u seconds.\n"
msgstr ""
"\n"
"Η διαδικασία εισόδου τερματίστηκε μετά από %u δευτερόλεπτα.\n"
#, c-format
msgid "%s: Cannot possibly work without effective root\n"
msgstr "%s: Μάλλον δεν είναι δυνατή η λειτουργία χωρίς ενεργό χρήστη root\n"
@@ -1421,6 +1460,14 @@ msgstr ""
"Δεν υπάρχει καταχώριση utmp. Πρέπει να εκτελέσετε \"login\" από το \"sh\" "
"του πιο χαμηλού επιπέδου"
#, c-format
msgid ""
"\n"
"Login timed out after %u seconds.\n"
msgstr ""
"\n"
"Η διαδικασία εισόδου τερματίστηκε μετά από %u δευτερόλεπτα.\n"
#, c-format
msgid "login: PAM Failure, aborting: %s\n"
msgstr "login: αποτυχία PAM, εγκατάλειψη: %s\n"
@@ -1494,6 +1541,10 @@ msgstr "Χρήση: newgrp [-] [ομάδα]\n"
msgid "Usage: sg group [[-c] command]\n"
msgstr "Χρήση: sg ομάδα [[-c] εντολή]\n"
#, fuzzy, c-format
msgid "%s: failed to crypt password with previous salt: %s\n"
msgstr "%s: Αποτυχία εγγραφής %s: %s\n"
msgid "Invalid password.\n"
msgstr "Λάθος συνθηματικό.\n"
@@ -1562,6 +1613,18 @@ msgstr "%s: γραμμή %d: αποτυχία αλλαγής ιδιοκτήτη
msgid "%s: line %d: can't update entry\n"
msgstr "%s: γραμμή %d: αδυναμία ανανέωσης καταχώρησης\n"
#, fuzzy, c-format
msgid "%s: failed to prepare new %s entry\n"
msgstr "%s: αποτυχία προετοιμασίας της νέας εγγραφής %s '%s'\n"
#, fuzzy, c-format
msgid "%s: can't find subordinate user range\n"
msgstr "%s: αδυναμία δημιουργίας του χρήστη\n"
#, fuzzy, c-format
msgid "%s: can't find subordinate group range\n"
msgstr "%s: αδυναμία ανανέωσης για το αρχείο ομάδων\n"
msgid ""
" -a, --all report password status on all accounts\n"
msgstr ""
@@ -1582,7 +1645,6 @@ msgstr ""
"ονομαζόμενου λογαριασμού\n"
#, fuzzy
#| msgid " -e, --encrypted supplied passwords are encrypted\n"
msgid " -k, --keep-tokens change password only if expired\n"
msgstr ""
" -e, --encrypted τα παρεχόμενα συνθηματικά είναι "
@@ -1751,7 +1813,6 @@ msgstr ""
"Επιλογές:\n"
#, fuzzy
#| msgid " -q, --quiet quiet mode\n"
msgid " -q, --quiet report errors only\n"
msgstr " -q, --quiet σιωπηλή λειτουργία\n"
@@ -1850,12 +1911,6 @@ msgstr "Παράκαμψη εξακρίβωσης με συνθηματικό.\n
msgid "Please enter your OWN password as authentication.\n"
msgstr "Παρακαλώ εισάγετε το ΔΙΚΟ σας συνθηματικό για εξακρίβωση.\n"
msgid " ...killed.\n"
msgstr " ...σκοτώθηκε.\n"
msgid " ...waiting for child to terminate.\n"
msgstr ""
#, c-format
msgid "%s: Cannot fork user shell\n"
msgstr "%s: αδυναμία διχάλωσης του φλοιού του χρήστη\n"
@@ -1871,13 +1926,19 @@ msgstr "%s: δυσλειτουργία μασκαρίσμος του σήματ
msgid "Session terminated, terminating shell..."
msgstr "Συνεδρία τερματίστηκε, τερματισμός φλοιού..."
#, c-format
msgid "%s: %s\n"
msgstr "%s: %s\n"
msgid " ...killed.\n"
msgstr " ...σκοτώθηκε.\n"
msgid " ...waiting for child to terminate.\n"
msgstr ""
msgid " ...terminated.\n"
msgstr " ...τερματίστηκε.\n"
#, c-format
msgid "%s: %s\n"
msgstr "%s: %s\n"
msgid ""
"Usage: su [options] [LOGIN]\n"
"\n"
@@ -1990,7 +2051,6 @@ msgid "%s: line too long in %s: %s..."
msgstr "%s: πολύ μακριά γραμμή στο %s: %s..."
#, fuzzy, 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"
@@ -2167,6 +2227,10 @@ msgstr "%s: αποτυχία επαναφοράς της καταχώρησης
msgid "%s: failed to reset the lastlog entry of UID %lu: %s\n"
msgstr "%s: αποτυχία επαναφοράς της καταχώρησης στο lastlog του UID %lu: %s\n"
#, fuzzy, c-format
msgid "%s: failed to prepare the new %s entry\n"
msgstr "%s: αποτυχία προετοιμασίας της νέας εγγραφής %s '%s'\n"
#, c-format
msgid "%s: cannot create directory %s\n"
msgstr "%s: αδυναμία δημιουργίας καταλόγου %s\n"
@@ -2209,6 +2273,14 @@ msgstr "%s: Αδυναμία δημιουργίας tcb καταλόγου γι
msgid "%s: can't create group\n"
msgstr "%s: αδυναμία δημιουργίας ομάδας\n"
#, fuzzy, c-format
msgid "%s: can't create subordinate user IDs\n"
msgstr "%s: αδυναμία δημιουργίας του χρήστη\n"
#, fuzzy, c-format
msgid "%s: can't create subordinate group IDs\n"
msgstr "%s: αδυναμία δημιουργίας ομάδας\n"
#, c-format
msgid ""
"%s: warning: the home directory already exists.\n"
@@ -2259,6 +2331,10 @@ msgid "%s: group %s is the primary group of another user and is not removed.\n"
msgstr ""
"%s: η ομάδα %s είναι πρωταρχική ομάδα για άλλο χρήστη και δεν διαγράφηκε.\n"
#, fuzzy, c-format
msgid "%s: cannot remove entry %lu from %s\n"
msgstr "%s: αδυναμία απομάκρυνσης της εγγραφής '%s' από το %s\n"
#, c-format
msgid "%s: %s mail spool (%s) not found\n"
msgstr "%s: %s η ουρά του ταχυδρομείου (%s) δεν βρέθηκε\n"
@@ -2347,7 +2423,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"
@@ -2386,6 +2462,18 @@ msgid " -U, --unlock unlock the user account\n"
msgstr ""
" -U, --unlock ξεκλείδωμα του λογαριασμού του χρήστη\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"
@@ -2407,6 +2495,14 @@ msgstr ""
msgid "%s: user '%s' already exists in %s\n"
msgstr "%s: Ο χρήστης %s υπάρχει ήδη στο %s\n"
#, fuzzy, c-format
msgid "%s: invalid subordinate uid range '%s'\n"
msgstr "%s: Μη έγκυρη ημερομηνία '%s'\n"
#, fuzzy, c-format
msgid "%s: invalid subordinate gid range '%s'\n"
msgstr "%s: Μη έγκυρη ημερομηνία '%s'\n"
#, c-format
msgid "%s: no options\n"
msgstr "%s: χωρίς επιλογές\n"
@@ -2423,6 +2519,12 @@ msgstr "%s: σκιώδη συνθηματικά απαιτούνται για τ
msgid "%s: UID '%lu' already exists\n"
msgstr "%s: το UID '%lu' υπάρχει ήδη\n"
#, fuzzy, c-format
msgid "%s: %s does not exist, you cannot use the flags %s or %s\n"
msgstr ""
"%s: ο χρήστης %s δεν είναι εξουσιοδοτημένος να αλλάξει το συνθηματικό του "
"%s\n"
#, c-format
msgid "%s: directory %s exists\n"
msgstr "%s: ο κατάλογος %s υπάρχει\n"
@@ -2471,6 +2573,22 @@ msgstr "αποτυχία αλλαγής του ιδιοκτήτη του γρα
msgid "failed to rename mailbox"
msgstr "αποτυχία μετονομασίας γραμματοκιβωτίου"
#, fuzzy, c-format
msgid "%s: failed to remove uid range %lu-%lu from '%s'\n"
msgstr "%s: αποτυχία προετοιμασίας της νέας εγγραφής %s '%s'\n"
#, fuzzy, c-format
msgid "%s: failed to add uid range %lu-%lu from '%s'\n"
msgstr "%s: αποτυχία προετοιμασίας της νέας εγγραφής %s '%s'\n"
#, fuzzy, c-format
msgid "%s: failed to remove gid range %lu-%lu from '%s'\n"
msgstr "%s: αποτυχία προετοιμασίας της νέας εγγραφής %s '%s'\n"
#, fuzzy, c-format
msgid "%s: failed to add gid range %lu-%lu from '%s'\n"
msgstr "%s: αποτυχία προετοιμασίας της νέας εγγραφής %s '%s'\n"
#, c-format
msgid ""
"You have modified %s.\n"
@@ -2526,6 +2644,18 @@ msgstr "Αδυναμία ξεκλειδώματος αρχείου"
msgid "Couldn't make backup"
msgstr "Αδυναμία δημιουργίας αντιγράφου ασφαλείας "
#, fuzzy, c-format
msgid "%s: %s: %s\n"
msgstr "%s: PAM: %s\n"
#, fuzzy, c-format
msgid "%s: %s returned with status %d\n"
msgstr "%s: το ncsd τερμάτισε με κατάσταση εξόδου %d"
#, c-format
msgid "%s: %s killed by signal %d\n"
msgstr ""
msgid "failed to open scratch file"
msgstr "αποτυχία ανοίγματος προσωρινού αρχείου"
@@ -2821,7 +2951,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"
@@ -3151,9 +3281,6 @@ msgstr "%s: αποτυχία εύρεσης καταλόγου tcb %s\n"
#~ msgid "%s: can't rewrite password file\n"
#~ msgstr "%s: αδυναμία επανεγγραφής αρχείου συνθηματικών\n"
#~ msgid "%s: can't update password file\n"
#~ msgstr "%s: αδυναμία ανανέωσης αρχείου συνθηματικών\n"
#~ msgid "%s: can't update shadow password file\n"
#~ msgstr "%s: αδυναμία ανανέωσης του αρχείου σκιωδών συνθηματικών\n"
@@ -3386,9 +3513,6 @@ msgstr "%s: αποτυχία εύρεσης καταλόγου tcb %s\n"
#~ msgid "%s: can't update shadow group file\n"
#~ msgstr "%s: αδυναμία ανανέωσης του αρχείου σκιωδών συνθηματικών ομάδων\n"
#~ msgid "%s: can't update group file\n"
#~ msgstr "%s: αδυναμία ανανέωσης για το αρχείο ομάδων\n"
#~ msgid "%s: can't delete shadow group file\n"
#~ msgstr ""
#~ "%s: Δεν είναι δυνατόν να διαγραφεί το αρχείο σκιωδών συνθηματικών ομάδων\n"

211
po/es.po
View File

@@ -32,7 +32,7 @@ msgid ""
msgstr ""
"Project-Id-Version: shadow 4.1.4.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: 2011-11-23 23:56+0100\n"
"Last-Translator: Francisco Javier Cuadrado <fcocuadrado@gmail.com>\n"
"Language-Team: Debian l10n Spanish <debian-l10n-spanish@lists.debian.org>\n"
@@ -114,7 +114,6 @@ msgid "Could not set serange for %s\n"
msgstr ""
#, fuzzy, c-format
#| msgid "Could not allocate space for config info.\n"
msgid "Could not set sename for %s\n"
msgstr "No se pudo reservar espacio para la información de configuración.\n"
@@ -123,7 +122,6 @@ msgid "Could not modify login mapping for %s\n"
msgstr ""
#, fuzzy, c-format
#| msgid "Changing the aging information for %s\n"
msgid "Cannot create SELinux login mapping for %s\n"
msgstr "Cambiando la información de la edad para %s\n"
@@ -144,12 +142,10 @@ msgid "Cannot init SELinux management\n"
msgstr ""
#, fuzzy, c-format
#| msgid "%s: Cannot determine your user name.\n"
msgid "Cannot create SELinux user key\n"
msgstr "%s: no se pudo determinar su nombre de usuario.\n"
#, fuzzy, c-format
#| msgid "%s: line %d: cannot find user %s\n"
msgid "Cannot verify the SELinux user\n"
msgstr "%s: línea %d: no se puede encontrar el usuario %s\n"
@@ -449,17 +445,18 @@ msgid "%s: failed to drop privileges (%s)\n"
msgstr "%s: se produjo un fallo al desprenderse de los privilegios (%s)\n"
#, fuzzy, c-format
#| msgid "%s: invalid home phone: '%s'\n"
msgid "%s: invalid chroot path '%s'\n"
msgstr "%s: teléfono de casa incorrecto: «%s»\n"
#, fuzzy, c-format
#| msgid "%s: Cannot create directory %s: %s\n"
msgid "%s: cannot access chroot directory %s: %s\n"
msgstr "%s: no se pudo crear el directorio %s: %s\n"
#, fuzzy, c-format
#| msgid "%s: Failed to create tcb directory for %s\n"
msgid "%s: cannot chdir to chroot directory %s: %s\n"
msgstr "%s: no se pudo crear el directorio %s: %s\n"
#, fuzzy, c-format
msgid "%s: unable to chroot to directory %s: %s\n"
msgstr "%s: se produjo un fallo al crear el directorio tcb para %s\n"
@@ -541,8 +538,9 @@ msgstr ""
" -m, --mindays DÍAS_MIN establece el número mínimo de días antes de\n"
" cambiar la contraseña a DÍAS_MIN\n"
#, fuzzy
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 ""
" -M, --maxdays DÍAS_MAX establece el número máximo de días antes de\n"
@@ -630,7 +628,6 @@ msgid "%s: Cannot determine your user name.\n"
msgstr "%s: no se pudo determinar su nombre de usuario.\n"
#, fuzzy, c-format
#| msgid "%s: %s\n"
msgid "%s: PAM: %s\n"
msgstr "%s: %s\n"
@@ -781,7 +778,6 @@ msgstr ""
"Opciones:\n"
#, fuzzy, c-format
#| msgid " -c, --crypt-method <METHOD> the crypt method (one of %s)\n"
msgid " -c, --crypt-method METHOD the crypt method (one of %s)\n"
msgstr " -c, --crypt-method <MÉTODO> el método de cifrado (uno de %s)\n"
@@ -823,6 +819,10 @@ msgstr "%s: línea %d: línea demasiado larga\n"
msgid "%s: line %d: missing new password\n"
msgstr "%s: línea %d: falta la nueva contraseña\n"
#, fuzzy, c-format
msgid "%s: failed to crypt password with salt '%s': %s\n"
msgstr "%s: se produjo un fallo al eliminar %s\n"
#, c-format
msgid "%s: line %d: group '%s' does not exist\n"
msgstr "%s: línea %d: el grupo «%s» no existe\n"
@@ -973,7 +973,6 @@ msgid "%s: Cannot get the size of %s: %s\n"
msgstr "%s: no se pudo conseguir el tamaño de %s: %s\n"
#, fuzzy, c-format
#| msgid "%s: failed to remove %s\n"
msgid "%s: Failed to write %s: %s\n"
msgstr "%s: se produjo un fallo al eliminar %s\n"
@@ -1132,10 +1131,16 @@ msgid "%s: GID '%lu' already exists\n"
msgstr "%s: el GID «%lu» ya existe\n"
#, fuzzy, c-format
#| msgid "%s: Cannot determine your user name.\n"
msgid "%s: Cannot setup cleanup service.\n"
msgstr "%s: no se pudo determinar su nombre de usuario.\n"
#, fuzzy
msgid ""
" -f, --force delete group even if it is the primary group "
"of a user\n"
msgstr ""
" -r, --reset reinicia el contador de accesos fallidos\n"
#, c-format
msgid "%s: cannot remove entry '%s' from %s\n"
msgstr "%s: no se pudo eliminar la entrada «%s» de %s\n"
@@ -1366,6 +1371,22 @@ msgstr ""
"anteriores\n"
" a DÍAS\n"
#, fuzzy
msgid ""
" -C, --clear clear lastlog record of an user (usable only "
"with -u)\n"
msgstr ""
" -a, --all muestra los registros de faillog para\n"
" todos los usuarios\n"
#, fuzzy
msgid ""
" -S, --set set lastlog record to current time (usable "
"only with -u)\n"
msgstr ""
" -a, --all muestra los registros de faillog para\n"
" todos los usuarios\n"
msgid ""
" -t, --time DAYS print only lastlog records more recent than "
"DAYS\n"
@@ -1388,6 +1409,22 @@ msgstr "Nombre Puerto Último"
msgid "**Never logged in**"
msgstr "**Nunca ha accedido**"
#, fuzzy, c-format
msgid "%s: Failed to update the entry for UID %lu\n"
msgstr "%s: Se produjo un fallo al conseguir la entrada para el UID %lu\n"
#, fuzzy, c-format
msgid "%s: Failed to update the lastlog file\n"
msgstr "%s: no puedo actualizar el fichero de contraseñas\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 "Modo de uso: %s [-p] [nombre]\n"
@@ -1421,6 +1458,13 @@ msgstr ""
"\n"
"[Desconexión evitada -- acceso del administrador («root») permitido.]"
#, c-format
msgid "%s: Cannot possibly work without effective root\n"
msgstr "%s: posiblemente no se puede trabajar sin el administrador\n"
msgid "No utmp entry. You must exec \"login\" from the lowest level \"sh\""
msgstr "Sin entrada utmp. Debe ejecutar «login» desde el nivel «sh» más bajo"
#, c-format
msgid ""
"\n"
@@ -1429,13 +1473,6 @@ msgstr ""
"\n"
"El acceso caducó después de %u segundos.\n"
#, c-format
msgid "%s: Cannot possibly work without effective root\n"
msgstr "%s: posiblemente no se puede trabajar sin el administrador\n"
msgid "No utmp entry. You must exec \"login\" from the lowest level \"sh\""
msgstr "Sin entrada utmp. Debe ejecutar «login» desde el nivel «sh» más bajo"
#, c-format
msgid "login: PAM Failure, aborting: %s\n"
msgstr "login: fallo de PAM, abortando: %s\n"
@@ -1458,7 +1495,6 @@ msgid "Login incorrect"
msgstr "Identificación incorrecta"
#, fuzzy, c-format
#| msgid "%s: line %d: cannot find user %s\n"
msgid "Cannot find user (%s)\n"
msgstr "%s: línea %d: no se puede encontrar el usuario %s\n"
@@ -1509,6 +1545,10 @@ msgstr "Modo de uso: newgrp [-] [grupo]\n"
msgid "Usage: sg group [[-c] command]\n"
msgstr "Modo de uso: sg grupo [[-c] orden]\n"
#, fuzzy, c-format
msgid "%s: failed to crypt password with previous salt: %s\n"
msgstr "%s: se produjo un fallo al eliminar %s\n"
msgid "Invalid password.\n"
msgstr "Contraseña incorrecta.\n"
@@ -1576,6 +1616,18 @@ msgstr "%s: línea %d: chown %s falló: %s\n"
msgid "%s: line %d: can't update entry\n"
msgstr "%s: línea %d: no se puede actualizar la entrada\n"
#, fuzzy, c-format
msgid "%s: failed to prepare new %s entry\n"
msgstr "%s: se produjo un fallo al preparar la nueva %s entrada «%s»\n"
#, fuzzy, c-format
msgid "%s: can't find subordinate user range\n"
msgstr "%s: no se pudo crear el usuario\n"
#, fuzzy, c-format
msgid "%s: can't find subordinate group range\n"
msgstr "%s: no se puede actualizar el fichero de grupo\n"
msgid ""
" -a, --all report password status on all accounts\n"
msgstr ""
@@ -1734,10 +1786,6 @@ msgid "%s: password expiry information changed.\n"
msgstr "%s: información de caducidad de la contraseña cambiada.\n"
#, fuzzy, c-format
#| msgid ""
#| "Usage: %s [options] [action]\n"
#| "\n"
#| "Options:\n"
msgid ""
"Usage: %s [options] [passwd]\n"
"\n"
@@ -1758,7 +1806,6 @@ msgstr ""
"Opciones:\n"
#, fuzzy
#| msgid " -q, --quiet quiet mode\n"
msgid " -q, --quiet report errors only\n"
msgstr " -q, --quiet modo silencioso\n"
@@ -1857,12 +1904,6 @@ msgstr "Autenticación de contraseña evitada.\n"
msgid "Please enter your OWN password as authentication.\n"
msgstr "Por favor, introduzca su PROPIA contraseña como autenticación.\n"
msgid " ...killed.\n"
msgstr " ... finalizado.\n"
msgid " ...waiting for child to terminate.\n"
msgstr " ... esperando a que el hijo finalice.\n"
#, c-format
msgid "%s: Cannot fork user shell\n"
msgstr "%s: no se pudo realizar el «fork» de la consola del usuario\n"
@@ -1878,13 +1919,19 @@ msgstr "%s: funcionamiento incorrecto del enmascaramiento de la señal\n"
msgid "Session terminated, terminating shell..."
msgstr "Sesión finalizada, parando la consola ..."
#, c-format
msgid "%s: %s\n"
msgstr "%s: %s\n"
msgid " ...killed.\n"
msgstr " ... finalizado.\n"
msgid " ...waiting for child to terminate.\n"
msgstr " ... esperando a que el hijo finalice.\n"
msgid " ...terminated.\n"
msgstr " ... parada.\n"
#, c-format
msgid "%s: %s\n"
msgstr "%s: %s\n"
msgid ""
"Usage: su [options] [LOGIN]\n"
"\n"
@@ -1936,7 +1983,6 @@ msgid "%s: You are not authorized to su at that time\n"
msgstr "%s: no está autorizado a usar su en este momento\n"
#, fuzzy, c-format
#| msgid "No password entry for 'root'"
msgid "No passwd entry for user '%s'\n"
msgstr "Sin entrada de contraseña para el administrador («root»)"
@@ -1949,7 +1995,6 @@ msgid "%s: pam_start: error %d\n"
msgstr "%s: pam_start: error %d\n"
#, fuzzy, c-format
#| msgid "%s: Cannot remove the content of %s: %s\n"
msgid "%s: Cannot drop the controlling terminal\n"
msgstr "%s: no se pudo eliminar el contenido de %s: %s\n"
@@ -2002,7 +2047,6 @@ msgid "%s: line too long in %s: %s..."
msgstr "%s: línea demasiado larga en %s: %s..."
#, fuzzy, c-format
#| msgid "%s: Cannot create symbolic link %s: %s\n"
msgid "%s: Cannot create backup file (%s): %s\n"
msgstr "%s no se pudo crear el enlace simbólico %s: %s\n"
@@ -2185,6 +2229,10 @@ msgid "%s: failed to reset the lastlog entry of UID %lu: %s\n"
msgstr ""
"%s: se produjo un fallo al reiniciar la entrada de lastlog del UID %lu: %s\n"
#, fuzzy, c-format
msgid "%s: failed to prepare the new %s entry\n"
msgstr "%s: se produjo un fallo al preparar la nueva %s entrada «%s»\n"
#, c-format
msgid "%s: cannot create directory %s\n"
msgstr "%s: no se puede crear el directorio %s\n"
@@ -2227,6 +2275,14 @@ msgstr "%s: se produjo un fallo al crear el directorio tcb para %s\n"
msgid "%s: can't create group\n"
msgstr "%s: no se puede crear el grupo\n"
#, fuzzy, c-format
msgid "%s: can't create subordinate user IDs\n"
msgstr "%s: no se pudo crear el usuario\n"
#, fuzzy, c-format
msgid "%s: can't create subordinate group IDs\n"
msgstr "%s: no se puede crear el grupo\n"
#, c-format
msgid ""
"%s: warning: the home directory already exists.\n"
@@ -2255,9 +2311,6 @@ msgstr ""
" correo\n"
#, fuzzy
#| msgid ""
#| " -Z, --selinux-user new SELinux user mapping for the user "
#| "account\n"
msgid ""
" -Z, --selinux-user remove any SELinux user mapping for the "
"user\n"
@@ -2266,7 +2319,6 @@ msgstr ""
" usuario\n"
#, fuzzy, c-format
#| msgid "%s: cannot remove the primary group of user '%s'\n"
msgid ""
"%s: group %s not removed because it is not the primary group of user %s.\n"
msgstr "%s: no se pudo eliminar el grupo primario del usuario «%s»\n"
@@ -2280,7 +2332,10 @@ msgid "%s: group %s is the primary group of another user and is not removed.\n"
msgstr "%s: grupo %s es el grupo primario de otro usuario y no se eliminará.\n"
#, fuzzy, c-format
#| msgid "%s: %s home directory (%s) not found\n"
msgid "%s: cannot remove entry %lu from %s\n"
msgstr "%s: no se pudo eliminar la entrada «%s» de %s\n"
#, fuzzy, c-format
msgid "%s: %s mail spool (%s) not found\n"
msgstr "%s: %s directorio personal (%s) no encontrado\n"
@@ -2327,7 +2382,6 @@ msgid "%s: error removing directory %s\n"
msgstr "%s: error eliminando el directorio %s\n"
#, fuzzy, c-format
#| msgid "%s: warning: the user name %s to %s SELinux user mapping failed.\n"
msgid "%s: warning: the user name %s to SELinux user mapping removal failed.\n"
msgstr ""
"%s: aviso: no se pudo relacionar el nombre del usuario %s con el usuario %s "
@@ -2365,7 +2419,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"
@@ -2401,10 +2455,19 @@ msgstr ""
msgid " -U, --unlock unlock the user account\n"
msgstr " -U, --unlock desbloquea la cuenta de usuario\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 ""
#, fuzzy
#| msgid ""
#| " -Z, --selinux-user new SELinux user mapping for the user "
#| "account\n"
msgid ""
" -Z, --selinux-user SEUSER new SELinux user mapping for the user "
"account\n"
@@ -2426,7 +2489,14 @@ msgid "%s: user '%s' already exists in %s\n"
msgstr "%s: el usuario «%s» ya existe en %s\n"
#, fuzzy, c-format
#| msgid "%s: cannot open %s\n"
msgid "%s: invalid subordinate uid range '%s'\n"
msgstr "%s: fecha «%s» incorrecta\n"
#, fuzzy, c-format
msgid "%s: invalid subordinate gid range '%s'\n"
msgstr "%s: fecha «%s» incorrecta\n"
#, fuzzy, c-format
msgid "%s: no options\n"
msgstr "%s: no se pudo abrir %s\n"
@@ -2442,6 +2512,10 @@ msgstr "%s: se necesitan contraseñas de shadow para -e y -f\n"
msgid "%s: UID '%lu' already exists\n"
msgstr "%s: el UID «%lu» ya existe\n"
#, fuzzy, c-format
msgid "%s: %s does not exist, you cannot use the flags %s or %s\n"
msgstr "%s: %s no está autorizado a cambiar la contraseña de %s\n"
#, c-format
msgid "%s: directory %s exists\n"
msgstr "%s: el directorio %s existe\n"
@@ -2489,6 +2563,22 @@ msgstr "se produjo un fallo al cambiar el propietario del buzón de correo"
msgid "failed to rename mailbox"
msgstr "se produjo un fallo al cambiar el nombre del buzón de correo"
#, fuzzy, c-format
msgid "%s: failed to remove uid range %lu-%lu from '%s'\n"
msgstr "%s: se produjo un fallo al preparar la nueva %s entrada «%s»\n"
#, fuzzy, c-format
msgid "%s: failed to add uid range %lu-%lu from '%s'\n"
msgstr "%s: se produjo un fallo al preparar la nueva %s entrada «%s»\n"
#, fuzzy, c-format
msgid "%s: failed to remove gid range %lu-%lu from '%s'\n"
msgstr "%s: se produjo un fallo al preparar la nueva %s entrada «%s»\n"
#, fuzzy, c-format
msgid "%s: failed to add gid range %lu-%lu from '%s'\n"
msgstr "%s: se produjo un fallo al preparar la nueva %s entrada «%s»\n"
#, c-format
msgid ""
"You have modified %s.\n"
@@ -2544,6 +2634,18 @@ msgstr "No se puede bloquear el fichero"
msgid "Couldn't make backup"
msgstr "No se puede realizar una copia de seguridad"
#, fuzzy, c-format
msgid "%s: %s: %s\n"
msgstr "%s: %s\n"
#, fuzzy, c-format
msgid "%s: %s returned with status %d\n"
msgstr "%s: no se encontró %s en /etc/passwd\n"
#, c-format
msgid "%s: %s killed by signal %d\n"
msgstr ""
msgid "failed to open scratch file"
msgstr "se produjo un fallo al abrir el fichero temporal"
@@ -2861,7 +2963,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"
@@ -3184,9 +3286,6 @@ msgstr "%s: se produjo un fallo al buscar el directorio tcb de %s\n"
#~ msgid "%s: can't rewrite password file\n"
#~ msgstr "%s: no se puede reescribir el fichero de contraseñas\n"
#~ msgid "%s: can't update password file\n"
#~ msgstr "%s: no puedo actualizar el fichero de contraseñas\n"
#~ msgid "%s: can't update shadow password file\n"
#~ msgstr "%s: no puedo actualizar el fichero de contraseñas ocultas\n"
@@ -3209,9 +3308,6 @@ msgstr "%s: se produjo un fallo al buscar el directorio tcb de %s\n"
#~ msgid "Cannot open the password file.\n"
#~ msgstr "No se puede abrir el fichero de contraseñas.\n"
#~ msgid "%s: %s not found in /etc/passwd\n"
#~ msgstr "%s: no se encontró %s en /etc/passwd\n"
#~ msgid "Error updating the password entry.\n"
#~ msgstr "Error actualizando la entrada de la contraseña.\n"
@@ -3405,9 +3501,6 @@ msgstr "%s: se produjo un fallo al buscar el directorio tcb de %s\n"
#~ msgid "%s: can't update shadow group file\n"
#~ msgstr "%s: no se puede actualizar el fichero de grupos oculto (shadow)\n"
#~ msgid "%s: can't update group file\n"
#~ msgstr "%s: no se puede actualizar el fichero de grupo\n"
#~ msgid "%s: can't delete shadow group file\n"
#~ msgstr "%s: no se puede eliminar el fichero de grupos oculto\n"

250
po/eu.po
View File

@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: eu\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: 2011-11-26 19:42+0100\n"
"Last-Translator: Piarres Beobide <pi@beobide.net>\n"
"Language-Team: Euskara <debian-l10n-eu@lists.debian.org>\n"
@@ -90,7 +90,6 @@ msgid "Could not set serange for %s\n"
msgstr ""
#, fuzzy, c-format
#| msgid "Could not allocate space for config info.\n"
msgid "Could not set sename for %s\n"
msgstr "Ezin izan da lekua esleitu, konfigurazioaren informaziorako.\n"
@@ -99,7 +98,6 @@ msgid "Could not modify login mapping for %s\n"
msgstr ""
#, fuzzy, c-format
#| msgid "Changing the aging information for %s\n"
msgid "Cannot create SELinux login mapping for %s\n"
msgstr "%s(r)en data informazioa aldatzen\n"
@@ -120,12 +118,10 @@ msgid "Cannot init SELinux management\n"
msgstr ""
#, fuzzy, c-format
#| msgid "%s: Cannot determine your user name.\n"
msgid "Cannot create SELinux user key\n"
msgstr "%s: Ezin da Erabiltzaile izena zehaztu.\n"
#, fuzzy, c-format
#| msgid "%s: Cannot determine your user name.\n"
msgid "Cannot verify the SELinux user\n"
msgstr "%s: Ezin da Erabiltzaile izena zehaztu.\n"
@@ -158,17 +154,14 @@ msgid "%s: out of memory\n"
msgstr "%s: memoriarik ez\n"
#, fuzzy, c-format
#| msgid "%s: cannot delete %s\n"
msgid "%s: Cannot stat %s: %s\n"
msgstr "%s: ezin da %s ezabatu\n"
#, fuzzy, c-format
#| msgid "%s: %s home directory (%s) not found\n"
msgid "%s: %s is neither a directory, nor a symlink.\n"
msgstr "%s: %s etxe-direktorioa (%s) ez dago\n"
#, fuzzy, c-format
#| msgid "%s: cannot remove entry '%s' from %s\n"
msgid "%s: Cannot read symbolic link %s: %s\n"
msgstr "%s: ezin da '%s' sarrera %s-tik kendu\n"
@@ -177,57 +170,46 @@ msgid "%s: Suspiciously long symlink: %s\n"
msgstr ""
#, fuzzy, c-format
#| msgid "%s: cannot create directory %s\n"
msgid "%s: Cannot create directory %s: %s\n"
msgstr "%s: ezin da %s direktorioa sortu\n"
#, fuzzy, c-format
#| msgid "lastlog: Cannot get the size of %s: %s\n"
msgid "%s: Cannot change owner of %s: %s\n"
msgstr "lastlog: Ezinda %s-ren tamaina eskuratu: %s\n"
#, fuzzy, c-format
#| msgid "%s: warning: can't remove %s: %s\n"
msgid "%s: Cannot change mode of %s: %s\n"
msgstr "%s: abisua: ezin da %s ezabatu: %s\n"
#, fuzzy, c-format
#| msgid "%s: rename: %s: %s"
msgid "%s: unlink: %s: %s\n"
msgstr "%s: berrizendatu: %s: %s"
#, fuzzy, c-format
#| msgid "%s: cannot rename directory %s to %s\n"
msgid "%s: Cannot remove directory %s: %s\n"
msgstr "%s: ezin da %s direktorioa %s gisa izenez aldatu\n"
#, fuzzy, c-format
#| msgid "%s: cannot rename directory %s to %s\n"
msgid "%s: Cannot rename %s to %s: %s\n"
msgstr "%s: ezin da %s direktorioa %s gisa izenez aldatu\n"
#, fuzzy, c-format
#| msgid "%s: warning: can't remove %s: %s\n"
msgid "%s: Cannot remove %s: %s\n"
msgstr "%s: abisua: ezin da %s ezabatu: %s\n"
#, fuzzy, c-format
#| msgid "%s: cannot create directory %s\n"
msgid "%s: Cannot create symbolic link %s: %s\n"
msgstr "%s: ezin da %s direktorioa sortu\n"
#, fuzzy, c-format
#| msgid "lastlog: Cannot get the size of %s: %s\n"
msgid "%s: Cannot change owners of %s: %s\n"
msgstr "lastlog: Ezinda %s-ren tamaina eskuratu: %s\n"
#, fuzzy, c-format
#| msgid "%s: cannot delete %s\n"
msgid "%s: Cannot lstat %s: %s\n"
msgstr "%s: ezin da %s ezabatu\n"
#, fuzzy, c-format
#| msgid "%s: (line %d, user %s) password not changed\n"
msgid "%s: Warning, user %s has no tcb shadow file.\n"
msgstr "%s: `(%d lerroa, %s erabiltzailea) pasahitza ez da aldatu\n"
@@ -238,12 +220,10 @@ msgid ""
msgstr ""
#, fuzzy, c-format
#| msgid "%s: rename: %s: %s"
msgid "%s: mkdir: %s: %s\n"
msgstr "%s: berrizendatu: %s: %s"
#, fuzzy, c-format
#| msgid "%s: cannot open %s\n"
msgid "%s: Cannot open %s: %s\n"
msgstr "%s: ezin da %s ireki\n"
@@ -332,12 +312,10 @@ msgid ""
msgstr ""
#, fuzzy, c-format
#| msgid "failed to change mailbox owner"
msgid "%s: failed to allocate memory: %s\n"
msgstr "huts egin du postontzia jabez aldatzean"
#, fuzzy, c-format
#| msgid "%s: Can't get unique system UID (no more available UIDs)\n"
msgid "%s: Can't get unique system GID (no more available GIDs)\n"
msgstr ""
"%s: Ezin da sistema UID bakarra lortu (ez dago UID erabilgarri gehiago)\n"
@@ -433,17 +411,18 @@ msgid "%s: failed to drop privileges (%s)\n"
msgstr "%s: huts baimenak kentzerakoan (%s)\n"
#, fuzzy, c-format
#| msgid "%s: invalid home phone: '%s'\n"
msgid "%s: invalid chroot path '%s'\n"
msgstr "%s: etxeko tlf baliogabea: '%s'\n"
#, fuzzy, c-format
#| msgid "%s: cannot create directory %s\n"
msgid "%s: cannot access chroot directory %s: %s\n"
msgstr "%s: ezin da %s direktorioa sortu\n"
#, fuzzy, c-format
#| msgid "%s: cannot create directory %s\n"
msgid "%s: cannot chdir to chroot directory %s: %s\n"
msgstr "%s: ezin da %s direktorioa sortu\n"
#, fuzzy, c-format
msgid "%s: unable to chroot to directory %s: %s\n"
msgstr "%s: ezin da %s direktorioa sortu\n"
@@ -523,8 +502,9 @@ msgstr ""
" -m, --mindays GUTXI_EGUN pasahitz aldaketa gutxieneko data\n"
" GUTXI_EGUN-era aldatu\n"
#, fuzzy
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 ""
" -M, --maxdays GEHI_EGUN pasashitz aldaketa gehienezko data\n"
@@ -759,7 +739,6 @@ msgstr ""
"Aukerak:\n"
#, fuzzy, c-format
#| msgid " -c, --crypt-method the crypt method (one of %s)\n"
msgid " -c, --crypt-method METHOD the crypt method (one of %s)\n"
msgstr " -c, --crypt-method zifratze metodoa (%s-etako bat)\n"
@@ -800,6 +779,10 @@ msgstr "%s: %d. lerroa: lerro luzegia\n"
msgid "%s: line %d: missing new password\n"
msgstr "%s: %d. lerroa: pasahitz berria falta da\n"
#, fuzzy, c-format
msgid "%s: failed to crypt password with salt '%s': %s\n"
msgstr "%s: huts %s kentzerakoan\n"
#, c-format
msgid "%s: line %d: group '%s' does not exist\n"
msgstr "%s: %d lerroa: '%s' taldea ez da existitzen\n"
@@ -844,12 +827,10 @@ msgid "%s: %s is an invalid shell\n"
msgstr "%s: %s shell baliogabea da\n"
#, fuzzy, c-format
#| msgid "%s: user '%s' does not exist\n"
msgid "%s: Warning: %s does not exist\n"
msgstr "%s: '%s' erabiltzailea ez da existitzen\n"
#, fuzzy, c-format
#| msgid "%s: warning: %s not owned by %s\n"
msgid "%s: Warning: %s is not executable\n"
msgstr "%s: abisua: %s ez dago %s(r)en jabegoan\n"
@@ -947,7 +928,6 @@ msgid "%s: Cannot get the size of %s: %s\n"
msgstr "%s: Ezinda %s-ren tamaina eskuratu: %s\n"
#, fuzzy, c-format
#| msgid "%s: failed to remove %s\n"
msgid "%s: Failed to write %s: %s\n"
msgstr "%s: huts %s kentzerakoan\n"
@@ -1040,10 +1020,6 @@ msgid "%s: Not a tty\n"
msgstr "%s: ez da tty\n"
#, fuzzy, c-format
#| msgid ""
#| "Usage: %s [options]\n"
#| "\n"
#| "Options:\n"
msgid ""
"Usage: %s [options] GROUP\n"
"\n"
@@ -1106,10 +1082,17 @@ msgid "%s: GID '%lu' already exists\n"
msgstr "%s: '%lu' GIDa badago dagoeneko\n"
#, fuzzy, c-format
#| msgid "%s: Cannot determine your user name.\n"
msgid "%s: Cannot setup cleanup service.\n"
msgstr "%s: Ezin da Erabiltzaile izena zehaztu.\n"
#, fuzzy
msgid ""
" -f, --force delete group even if it is the primary group "
"of a user\n"
msgstr ""
" -r, --reset saio-hasierako hutsegiteen kontatzailea\n"
" berrezartzeko\n"
#, c-format
msgid "%s: cannot remove entry '%s' from %s\n"
msgstr "%s: ezin da '%s' sarrera %s-tik kendu\n"
@@ -1191,7 +1174,6 @@ msgid "%s: only root can use the -g/--group option\n"
msgstr "%s: root-ek bakarrik erabili dezake -g/--group aukera\n"
#, fuzzy
#| msgid " -r, --system create system accounts\n"
msgid " -g, --gid GID change the group ID to GID\n"
msgstr " -r, --system sortu sistema kontuak\n"
@@ -1337,6 +1319,22 @@ msgstr ""
" -b, --before EGUN EGUN kopurua baino zaharragoak diren\n"
" erregistroak\n"
#, fuzzy
msgid ""
" -C, --clear clear lastlog record of an user (usable only "
"with -u)\n"
msgstr ""
" -a, --all erabiltzaile guztien faillog-en\n"
" erregistroak bistaratzen ditu\n"
#, fuzzy
msgid ""
" -S, --set set lastlog record to current time (usable "
"only with -u)\n"
msgstr ""
" -a, --all erabiltzaile guztien faillog-en\n"
" erregistroak bistaratzen ditu\n"
msgid ""
" -t, --time DAYS print only lastlog records more recent than "
"DAYS\n"
@@ -1359,6 +1357,22 @@ msgstr "Erabiltzaile-izena Ataka Azkena"
msgid "**Never logged in**"
msgstr "**Inoiz ez du saiorik hasi**"
#, fuzzy, c-format
msgid "%s: Failed to update the entry for UID %lu\n"
msgstr "%s: Huts %lu UIDaren sarrera eskuratzean\n"
#, fuzzy, c-format
msgid "%s: Failed to update the lastlog file\n"
msgstr "%s: huts %lu UIDaren lastlog sarrera berrezartzean: %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 "Erabilera: %s [-p] [izena]\n"
@@ -1392,14 +1406,6 @@ msgstr ""
"\n"
"[Deskonexioa saltatuta -- root-ek saio-hastea baimenduta.]"
#, c-format
msgid ""
"\n"
"Login timed out after %u seconds.\n"
msgstr ""
"\n"
"Saio-hasiera denboraz kanpo %u segundo igarotakoan.\n"
#, c-format
msgid "%s: Cannot possibly work without effective root\n"
msgstr "%s: Ezingo du ziurrenik funtzionatu erro efektibo bat gabe\n"
@@ -1409,6 +1415,14 @@ msgstr ""
"Ez dago utmp sarrerarik. \"login\" \"sh\" maila baxuenetik exekutatu beharko "
"zenuke"
#, c-format
msgid ""
"\n"
"Login timed out after %u seconds.\n"
msgstr ""
"\n"
"Saio-hasiera denboraz kanpo %u segundo igarotakoan.\n"
#, c-format
msgid "login: PAM Failure, aborting: %s\n"
msgstr "saio hasiera: PAM hutsa, uzten: %s\n"
@@ -1431,7 +1445,6 @@ msgid "Login incorrect"
msgstr "Izen okerra"
#, fuzzy, c-format
#| msgid "%s: Cannot determine your user name.\n"
msgid "Cannot find user (%s)\n"
msgstr "%s: Ezin da Erabiltzaile izena zehaztu.\n"
@@ -1483,6 +1496,10 @@ msgstr "Erabilera: newgrp [-] [taldea]\n"
msgid "Usage: sg group [[-c] command]\n"
msgstr "Erabilera: sg taldea [[-c] komandoa]\n"
#, fuzzy, c-format
msgid "%s: failed to crypt password with previous salt: %s\n"
msgstr "%s: huts %s kentzerakoan\n"
msgid "Invalid password.\n"
msgstr "Pasahitz baliogabea.\n"
@@ -1550,6 +1567,18 @@ msgstr "%s: %d lerroa: chown %s-ek huts egin du: %s\n"
msgid "%s: line %d: can't update entry\n"
msgstr "%s: %d lerroa: ezin da sarrera eguneratu\n"
#, fuzzy, c-format
msgid "%s: failed to prepare new %s entry\n"
msgstr "%s: huts %s sarrera berria prestatzean '%s'\n"
#, fuzzy, c-format
msgid "%s: can't find subordinate user range\n"
msgstr "%s: ezin da erabiltzailea sortu\n"
#, fuzzy, c-format
msgid "%s: can't find subordinate group range\n"
msgstr "%s: ezin da taldea sortu\n"
msgid ""
" -a, --all report password status on all accounts\n"
msgstr ""
@@ -1703,10 +1732,6 @@ msgid "%s: password expiry information changed.\n"
msgstr "%s: pasahitz iraungitzea informazioa aldatua.\n"
#, fuzzy, c-format
#| msgid ""
#| "Usage: %s [options]\n"
#| "\n"
#| "Options:\n"
msgid ""
"Usage: %s [options] [passwd]\n"
"\n"
@@ -1727,7 +1752,6 @@ msgstr ""
"Aukerak:\n"
#, fuzzy
#| msgid " -r, --system create system accounts\n"
msgid " -q, --quiet report errors only\n"
msgstr " -r, --system sortu sistema kontuak\n"
@@ -1762,22 +1786,18 @@ msgid "user '%s': program '%s' does not exist\n"
msgstr "'%s' erabiltzailea: '%s' programa ez da existitzen\n"
#, fuzzy, c-format
#| msgid "%s: cannot create directory %s\n"
msgid "no tcb directory for %s\n"
msgstr "%s: ezin da %s direktorioa sortu\n"
#, fuzzy, c-format
#| msgid "%s: cannot create directory %s\n"
msgid "create tcb directory for %s?"
msgstr "%s: ezin da %s direktorioa sortu\n"
#, fuzzy, c-format
#| msgid "%s: cannot create directory %s\n"
msgid "failed to create tcb directory for %s\n"
msgstr "%s: ezin da %s direktorioa sortu\n"
#, fuzzy, c-format
#| msgid "%s: cannot open %s\n"
msgid "%s: cannot lock %s.\n"
msgstr "%s: ezin da %s ireki\n"
@@ -1827,14 +1847,7 @@ msgstr "Pasahitz autentifikazioa saltatuta.\n"
msgid "Please enter your OWN password as authentication.\n"
msgstr "Sartu zure pasahitz PROPIOA autentifikazio gisa.\n"
msgid " ...killed.\n"
msgstr ""
msgid " ...waiting for child to terminate.\n"
msgstr ""
#, fuzzy, c-format
#| msgid "%s: Cannot determine your user name.\n"
msgid "%s: Cannot fork user shell\n"
msgstr "%s: Ezin da Erabiltzaile izena zehaztu.\n"
@@ -1849,13 +1862,19 @@ msgstr ""
msgid "Session terminated, terminating shell..."
msgstr ""
#, c-format
msgid "%s: %s\n"
msgstr "%s: %s\n"
msgid " ...killed.\n"
msgstr ""
msgid " ...waiting for child to terminate.\n"
msgstr ""
msgid " ...terminated.\n"
msgstr ""
#, c-format
msgid "%s: %s\n"
msgstr "%s: %s\n"
msgid ""
"Usage: su [options] [LOGIN]\n"
"\n"
@@ -1906,7 +1925,6 @@ msgid "%s: You are not authorized to su at that time\n"
msgstr "%s: Ez duzu orain su erabiltzeko baimenik\n"
#, fuzzy, c-format
#| msgid "No password entry for 'root'"
msgid "No passwd entry for user '%s'\n"
msgstr "Ez dago 'root'-en pasahitzik"
@@ -1919,7 +1937,6 @@ msgid "%s: pam_start: error %d\n"
msgstr "%s: pam_start: %d errorea\n"
#, fuzzy, c-format
#| msgid "lastlog: Cannot get the size of %s: %s\n"
msgid "%s: Cannot drop the controlling terminal\n"
msgstr "lastlog: Ezinda %s-ren tamaina eskuratu: %s\n"
@@ -1969,7 +1986,6 @@ msgid "%s: line too long in %s: %s..."
msgstr "%s: lerro luzeegia %s-n: %s..."
#, fuzzy, c-format
#| msgid "%s: cannot create directory %s\n"
msgid "%s: Cannot create backup file (%s): %s\n"
msgstr "%s: ezin da %s direktorioa sortu\n"
@@ -2000,9 +2016,6 @@ msgstr ""
"Aukerak:\n"
#, fuzzy
#| msgid ""
#| " -b, --base-dir BASE_DIR base directory for the new user account\n"
#| " home directory\n"
msgid ""
" -b, --base-dir BASE_DIR base directory for the home directory of "
"the\n"
@@ -2127,6 +2140,10 @@ msgstr "%s: huts %lu UIDaren faillog erregistroa berrezartzean: %s\n"
msgid "%s: failed to reset the lastlog entry of UID %lu: %s\n"
msgstr "%s: huts %lu UIDaren lastlog sarrera berrezartzean: %s\n"
#, fuzzy, c-format
msgid "%s: failed to prepare the new %s entry\n"
msgstr "%s: huts %s sarrera berria prestatzean '%s'\n"
#, c-format
msgid "%s: cannot create directory %s\n"
msgstr "%s: ezin da %s direktorioa sortu\n"
@@ -2162,7 +2179,6 @@ msgid "%s: UID %lu is not unique\n"
msgstr "%s: %lu UIDa ez da bakarra\n"
#, fuzzy, c-format
#| msgid "%s: cannot create directory %s\n"
msgid "%s: Failed to create tcb directory for %s\n"
msgstr "%s: ezin da %s direktorioa sortu\n"
@@ -2170,6 +2186,14 @@ msgstr "%s: ezin da %s direktorioa sortu\n"
msgid "%s: can't create group\n"
msgstr "%s: ezin da taldea sortu\n"
#, fuzzy, c-format
msgid "%s: can't create subordinate user IDs\n"
msgstr "%s: ezin da erabiltzailea sortu\n"
#, fuzzy, c-format
msgid "%s: can't create subordinate group IDs\n"
msgstr "%s: ezin da taldea sortu\n"
#, c-format
msgid ""
"%s: warning: the home directory already exists.\n"
@@ -2196,9 +2220,6 @@ msgstr ""
" -r, --remove etxe direktorioa eta posta hilara ezabatu\n"
#, fuzzy
#| msgid ""
#| " -Z, --selinux-user new SELinux user mapping for the user "
#| "account\n"
msgid ""
" -Z, --selinux-user remove any SELinux user mapping for the "
"user\n"
@@ -2207,7 +2228,6 @@ msgstr ""
"erabiltzailearen kontuarentzat\n"
#, fuzzy, c-format
#| msgid "%s: cannot remove the primary group of user '%s'\n"
msgid ""
"%s: group %s not removed because it is not the primary group of user %s.\n"
msgstr "%s: Ezin da '%s' erabiltzailearen talde nagusia kendu\n"
@@ -2223,7 +2243,10 @@ msgstr ""
"da.\n"
#, fuzzy, c-format
#| msgid "%s: %s home directory (%s) not found\n"
msgid "%s: cannot remove entry %lu from %s\n"
msgstr "%s: ezin da '%s' sarrera %s-tik kendu\n"
#, fuzzy, c-format
msgid "%s: %s mail spool (%s) not found\n"
msgstr "%s: %s etxe-direktorioa (%s) ez dago\n"
@@ -2240,17 +2263,14 @@ msgid "%s: Can't allocate memory, tcb entry for %s not removed.\n"
msgstr ""
#, fuzzy, c-format
#| msgid "%s: failed to drop privileges (%s)\n"
msgid "%s: Cannot drop privileges: %s\n"
msgstr "%s: huts baimenak kentzerakoan (%s)\n"
#, fuzzy, c-format
#| msgid "lastlog: Cannot get the size of %s: %s\n"
msgid "%s: Cannot remove the content of %s: %s\n"
msgstr "lastlog: Ezinda %s-ren tamaina eskuratu: %s\n"
#, fuzzy, c-format
#| msgid "%s: cannot remove entry '%s' from %s\n"
msgid "%s: Cannot remove tcb files for %s: %s\n"
msgstr "%s: ezin da '%s' sarrera %s-tik kendu\n"
@@ -2271,7 +2291,6 @@ msgid "%s: error removing directory %s\n"
msgstr "%s: errorea %s direktorioa ezabatzean\n"
#, fuzzy, c-format
#| msgid "%s: warning: the user name %s to %s SELinux user mapping failed.\n"
msgid "%s: warning: the user name %s to SELinux user mapping removal failed.\n"
msgstr ""
"%s: abisua: %s erabiltzaile izena %s SELinux erabiltzailera mapatzean huts "
@@ -2310,7 +2329,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"
@@ -2347,10 +2366,19 @@ msgstr " -u, --uid UID erabiltzaile kontuaren UID berria\n"
msgid " -U, --unlock unlock the user account\n"
msgstr " -U, --unlock erabiltzaile kontua desblokeatu\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 ""
#, fuzzy
#| msgid ""
#| " -Z, --selinux-user new SELinux user mapping for the user "
#| "account\n"
msgid ""
" -Z, --selinux-user SEUSER new SELinux user mapping for the user "
"account\n"
@@ -2373,7 +2401,14 @@ msgid "%s: user '%s' already exists in %s\n"
msgstr "%s: '%s' erabiltzailea badago dagoeneko %s-n\n"
#, fuzzy, c-format
#| msgid "%s: cannot open %s\n"
msgid "%s: invalid subordinate uid range '%s'\n"
msgstr "%s: '%s' data baliogabea\n"
#, fuzzy, c-format
msgid "%s: invalid subordinate gid range '%s'\n"
msgstr "%s: '%s' data baliogabea\n"
#, fuzzy, c-format
msgid "%s: no options\n"
msgstr "%s: ezin da %s ireki\n"
@@ -2389,6 +2424,10 @@ msgstr "%s: -e eta -f aukerek itzalpeko pasahitzak eskatzen dute\n"
msgid "%s: UID '%lu' already exists\n"
msgstr "%s: '%lu' UIDa badago dagoeneko\n"
#, fuzzy, c-format
msgid "%s: %s does not exist, you cannot use the flags %s or %s\n"
msgstr "%s: %s ez dago %s-ren pasahitza aldatzeko baimendurik\n"
#, c-format
msgid "%s: directory %s exists\n"
msgstr "%s: %s direktorioa badago\n"
@@ -2400,7 +2439,6 @@ msgid ""
msgstr ""
#, fuzzy, c-format
#| msgid "%s: cannot create directory %s\n"
msgid "%s: Failed to change ownership of the home directory"
msgstr "%s: ezin da %s direktorioa sortu\n"
@@ -2434,6 +2472,22 @@ msgstr "huts egin du postontzia jabez aldatzean"
msgid "failed to rename mailbox"
msgstr "huts egin du postontzia izenez aldatzean"
#, fuzzy, c-format
msgid "%s: failed to remove uid range %lu-%lu from '%s'\n"
msgstr "%s: huts %s sarrera berria prestatzean '%s'\n"
#, fuzzy, c-format
msgid "%s: failed to add uid range %lu-%lu from '%s'\n"
msgstr "%s: huts %s sarrera berria prestatzean '%s'\n"
#, fuzzy, c-format
msgid "%s: failed to remove gid range %lu-%lu from '%s'\n"
msgstr "%s: huts %s sarrera berria prestatzean '%s'\n"
#, fuzzy, c-format
msgid "%s: failed to add gid range %lu-%lu from '%s'\n"
msgstr "%s: huts %s sarrera berria prestatzean '%s'\n"
#, c-format
msgid ""
"You have modified %s.\n"
@@ -2465,7 +2519,6 @@ msgid "%s: %s is unchanged\n"
msgstr "%s: %s ez da aldatu\n"
#, fuzzy
#| msgid "failed to rename mailbox"
msgid "failed to create scratch directory"
msgstr "huts egin du postontzia izenez aldatzean"
@@ -2479,7 +2532,6 @@ msgid "setfscreatecon () failed"
msgstr "setfscreatecon () -ek huts egin du"
#, fuzzy
#| msgid "%s: failed to drop privileges (%s)\n"
msgid "failed to gain privileges"
msgstr "%s: huts baimenak kentzerakoan (%s)\n"
@@ -2489,28 +2541,35 @@ msgstr "Ezin da fitxategia blokeatu"
msgid "Couldn't make backup"
msgstr "Ezin izan da babeskopiarik egin"
#, fuzzy, c-format
msgid "%s: %s: %s\n"
msgstr "%s: PAM: %s\n"
#, c-format
msgid "%s: %s returned with status %d\n"
msgstr ""
#, c-format
msgid "%s: %s killed by signal %d\n"
msgstr ""
#, fuzzy
#| msgid "failed to rename mailbox"
msgid "failed to open scratch file"
msgstr "huts egin du postontzia izenez aldatzean"
#, fuzzy
#| msgid "%s: failed to unlock %s\n"
msgid "failed to unlink scratch file"
msgstr "%s: huts %s desblokeatzean\n"
#, fuzzy
#| msgid "failed to rename mailbox"
msgid "failed to stat edited file"
msgstr "huts egin du postontzia izenez aldatzean"
#, fuzzy
#| msgid "failed to change mailbox owner"
msgid "failed to allocate memory"
msgstr "huts egin du postontzia jabez aldatzean"
#, fuzzy
#| msgid "failed to rename mailbox"
msgid "failed to create backup file"
msgstr "huts egin du postontzia izenez aldatzean"
@@ -2519,7 +2578,6 @@ msgid "%s: can't restore %s: %s (your changes are in %s)\n"
msgstr "%s: ezin da %s leheneratu: %s (zure aldaketak %s(e)n daude)\n"
#, fuzzy, c-format
#| msgid "%s: invalid base directory '%s'\n"
msgid "%s: failed to find tcb directory for %s\n"
msgstr "%s: oinarrizko '%s' direktorio baliogabea\n"
@@ -2804,7 +2862,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"

308
po/fi.po

File diff suppressed because it is too large Load Diff

11370
po/fr.po

File diff suppressed because it is too large Load Diff

308
po/gl.po

File diff suppressed because it is too large Load Diff

Some files were not shown because too many files have changed in this diff Show More