Merge pull request #58 from Bandie/master

gettext, po4a, clean headers
This commit is contained in:
Bandie 2018-10-01 18:32:20 +02:00 committed by GitHub
commit c3894075f3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
49 changed files with 3926 additions and 1285 deletions

20
.gitignore vendored
View File

@ -5,7 +5,9 @@
*.o *.o
*~ *~
.deps .deps
.dirstamp
.libs .libs
ABOUT-NLS
aclocal.m4 aclocal.m4
autom4te.cache/ autom4te.cache/
build-aux/ build-aux/
@ -14,9 +16,27 @@ config.h.in
config.log config.log
config.status config.status
configure configure
core.*
libtool libtool
m4/
Makefile Makefile
Makefile.in Makefile.in
Makefile.in.in
po/Makevars.template
po/POTFILES
po/Rules-quot
po/stamp-po
po/*.header
po/*.gmo
po/*.sed
po/*.sin
src/pam_panic/man/*
!src/pam_panic/man/Makefile.am
!src/pam_panic/man/man8/
src/pam_panic_pw/pam_panic_pw src/pam_panic_pw/pam_panic_pw
src/pam_panic_pw/man/*
!src/pam_panic_pw/man/Makefile.am
!src/pam_panic_pw/man/man1/
stamp-h1 stamp-h1
test/pwfile
test/test test/test

View File

@ -1,3 +1,4 @@
language: C language: C
dist: trusty
sudo: enabled sudo: enabled
script: sudo apt install libcunit1 libcunit1-dev && autoreconf -i && ./configure && make && make test script: sudo apt install po4a autopoint gettext libcunit1 libcunit1-dev && autoreconf -i && ./configure && make && make test

View File

@ -0,0 +1,6 @@
## [0.2.0]
- Adding gettext for translation capability
- Adding po4a system for man pages
## [0.1.2]
- First stable release

View File

@ -2,9 +2,15 @@ ACLOCAL_AMFLAGS = -I m4
AM_CPPFLAGS = -I src AM_CPPFLAGS = -I src
SUBDIRS = src/pam_panic src/pam_panic_pw SUBDIRS = po po4a src/pam_panic src/pam_panic_pw
.PHONY: all test clean .PHONY: all test clean
update-po:
make -C po update-po
all: update-po
test: test:
make -C test make -C test

View File

@ -18,11 +18,14 @@ There are two passwords you are able to set: the key password and the panic pass
## Installation ## Installation
### Arch Linux ### Arch Linux AUR
There is [pam_panic](https://aur.archlinux.org/packages/pam_panic) and [pam_panic-git](https://aur.archlinux.org/packages/pam_panic-git/) in the AUR. Install it with your favourite AUR helper. There is
- [pam_panic](https://aur.archlinux.org/packages/pam_panic/) - Actual [releases](https://github.com/pampanic/pam_panic/releases) and
- [pam_panic-git](https://aur.archlinux.org/packages/pam_panic-git/) for this actual git repository.
### Ubuntu ### Ubuntu
There's a [PPA](https://launchpad.net/~bandie/+archive/ubuntu/pampanic). There's a [PPA](https://launchpad.net/~bandie/+archive/ubuntu/pampanic) updating for new [releases](https://github.com/pampanic/pam_panic/releases).
To install the package using the PPA: To install the package using the PPA:
``` ```
sudo add-apt-repository ppa:bandie/pampanic sudo add-apt-repository ppa:bandie/pampanic
@ -32,7 +35,7 @@ sudo apt-get install pampanic
### From sources ### From sources
You will need GCC or similar, as well as the PAM headers. Some distributions package the PAM headers as `libpam0g-dev`. You will need GCC or similar, as well as the PAM headers. Some distributions package the PAM headers as `libpam0g-dev`.
Also you need `autoconf`. Also you need `autoconf` and `gettext`. Some also need `autopoint`.
To compile and install it, do the following within the project's root directory: To compile and install it, do the following within the project's root directory:
@ -100,7 +103,7 @@ See `man 8 pam_panic` and `man 1 pam_panic_pw` for more information.
## TODO ## TODO
- [Manpage translations](https://github.com/Bandie/pam_panic/issues?q=is%3Aissue+is%3Aopen+label%3Alocalization) - [Translations](https://github.com/pampanic/pam_panic/wiki/How-to-translate)
# Addendum # Addendum

View File

@ -1,6 +1,6 @@
AC_INIT( AC_INIT(
[pam_panic], [pam_panic],
[0.1.0], [0.2.0],
[https://github.com/pampanic/pam_panic/issues], [https://github.com/pampanic/pam_panic/issues],
[pam_panic]) [pam_panic])
AC_CONFIG_AUX_DIR([build-aux]) AC_CONFIG_AUX_DIR([build-aux])
@ -20,6 +20,15 @@ CFLAGS+=" -std=gnu11"
AM_PROG_AR AM_PROG_AR
AM_GNU_GETTEXT_VERSION(0.18.3)
AM_GNU_GETTEXT([external])
AC_PATH_PROG([PO4A],po4a)
if test -z "$PO4A" ; then
AC_MSG_ERROR([Please install po4a before building pam_panic.])
fi
AC_DEFINE_UNQUOTED([PO4A], "$PO4A",
[path to po4a])
AC_PATH_PROG([REBOOT], [reboot]) AC_PATH_PROG([REBOOT], [reboot])
AC_DEFINE_UNQUOTED([REBOOT], "$REBOOT", AC_DEFINE_UNQUOTED([REBOOT], "$REBOOT",
@ -31,6 +40,10 @@ AC_PATH_PROG([CRYPTSETUP], [cryptsetup])
AC_DEFINE_UNQUOTED([CRYPTSETUP], "$CRYPTSETUP", AC_DEFINE_UNQUOTED([CRYPTSETUP], "$CRYPTSETUP",
[path to the cryptsetup command]) [path to the cryptsetup command])
AC_PATH_PROG([FIND], [find])
AC_DEFINE_UNQUOTED([FIND], "$FIND",
[path to the find command])
AC_ARG_ENABLE(securedir, AC_ARG_ENABLE(securedir,
AS_HELP_STRING([--enable-securedir=DIR], AS_HELP_STRING([--enable-securedir=DIR],
[path to location of PAMs @<:@default=LIBDIR/security@:>@]), [path to location of PAMs @<:@default=LIBDIR/security@:>@]),
@ -51,6 +64,8 @@ AC_ENABLE_SHARED([yes])
AC_CONFIG_FILES([ AC_CONFIG_FILES([
Makefile Makefile
po/Makefile.in
po4a/Makefile
src/pam_panic/Makefile src/pam_panic/Makefile
src/pam_panic/man/Makefile src/pam_panic/man/Makefile
src/pam_panic_pw/Makefile src/pam_panic_pw/Makefile

292
lib/gettext.h Normal file
View File

@ -0,0 +1,292 @@
/* Convenience header for conditional use of GNU <libintl.h>.
Copyright (C) 1995-1998, 2000-2002, 2004-2006, 2009-2016 Free Software
Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
#ifndef _LIBGETTEXT_H
#define _LIBGETTEXT_H 1
/* NLS can be disabled through the configure --disable-nls option. */
#if ENABLE_NLS
/* Get declarations of GNU message catalog functions. */
# include <libintl.h>
/* You can set the DEFAULT_TEXT_DOMAIN macro to specify the domain used by
the gettext() and ngettext() macros. This is an alternative to calling
textdomain(), and is useful for libraries. */
# ifdef DEFAULT_TEXT_DOMAIN
# undef gettext
# define gettext(Msgid) \
dgettext (DEFAULT_TEXT_DOMAIN, Msgid)
# undef ngettext
# define ngettext(Msgid1, Msgid2, N) \
dngettext (DEFAULT_TEXT_DOMAIN, Msgid1, Msgid2, N)
# endif
#else
/* Solaris /usr/include/locale.h includes /usr/include/libintl.h, which
chokes if dcgettext is defined as a macro. So include it now, to make
later inclusions of <locale.h> a NOP. We don't include <libintl.h>
as well because people using "gettext.h" will not include <libintl.h>,
and also including <libintl.h> would fail on SunOS 4, whereas <locale.h>
is OK. */
#if defined(__sun)
# include <locale.h>
#endif
/* Many header files from the libstdc++ coming with g++ 3.3 or newer include
<libintl.h>, which chokes if dcgettext is defined as a macro. So include
it now, to make later inclusions of <libintl.h> a NOP. */
#if defined(__cplusplus) && defined(__GNUG__) && (__GNUC__ >= 3)
# include <cstdlib>
# if (__GLIBC__ >= 2 && !defined __UCLIBC__) || _GLIBCXX_HAVE_LIBINTL_H
# include <libintl.h>
# endif
#endif
/* Disabled NLS.
The casts to 'const char *' serve the purpose of producing warnings
for invalid uses of the value returned from these functions.
On pre-ANSI systems without 'const', the config.h file is supposed to
contain "#define const". */
# undef gettext
# define gettext(Msgid) ((const char *) (Msgid))
# undef dgettext
# define dgettext(Domainname, Msgid) ((void) (Domainname), gettext (Msgid))
# undef dcgettext
# define dcgettext(Domainname, Msgid, Category) \
((void) (Category), dgettext (Domainname, Msgid))
# undef ngettext
# define ngettext(Msgid1, Msgid2, N) \
((N) == 1 \
? ((void) (Msgid2), (const char *) (Msgid1)) \
: ((void) (Msgid1), (const char *) (Msgid2)))
# undef dngettext
# define dngettext(Domainname, Msgid1, Msgid2, N) \
((void) (Domainname), ngettext (Msgid1, Msgid2, N))
# undef dcngettext
# define dcngettext(Domainname, Msgid1, Msgid2, N, Category) \
((void) (Category), dngettext (Domainname, Msgid1, Msgid2, N))
# undef textdomain
# define textdomain(Domainname) ((const char *) (Domainname))
# undef bindtextdomain
# define bindtextdomain(Domainname, Dirname) \
((void) (Domainname), (const char *) (Dirname))
# undef bind_textdomain_codeset
# define bind_textdomain_codeset(Domainname, Codeset) \
((void) (Domainname), (const char *) (Codeset))
#endif
/* Prefer gnulib's setlocale override over libintl's setlocale override. */
#ifdef GNULIB_defined_setlocale
# undef setlocale
# define setlocale rpl_setlocale
#endif
/* A pseudo function call that serves as a marker for the automated
extraction of messages, but does not call gettext(). The run-time
translation is done at a different place in the code.
The argument, String, should be a literal string. Concatenated strings
and other string expressions won't work.
The macro's expansion is not parenthesized, so that it is suitable as
initializer for static 'char[]' or 'const char[]' variables. */
#define gettext_noop(String) String
/* The separator between msgctxt and msgid in a .mo file. */
#define GETTEXT_CONTEXT_GLUE "\004"
/* Pseudo function calls, taking a MSGCTXT and a MSGID instead of just a
MSGID. MSGCTXT and MSGID must be string literals. MSGCTXT should be
short and rarely need to change.
The letter 'p' stands for 'particular' or 'special'. */
#ifdef DEFAULT_TEXT_DOMAIN
# define pgettext(Msgctxt, Msgid) \
pgettext_aux (DEFAULT_TEXT_DOMAIN, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, LC_MESSAGES)
#else
# define pgettext(Msgctxt, Msgid) \
pgettext_aux (NULL, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, LC_MESSAGES)
#endif
#define dpgettext(Domainname, Msgctxt, Msgid) \
pgettext_aux (Domainname, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, LC_MESSAGES)
#define dcpgettext(Domainname, Msgctxt, Msgid, Category) \
pgettext_aux (Domainname, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, Category)
#ifdef DEFAULT_TEXT_DOMAIN
# define npgettext(Msgctxt, Msgid, MsgidPlural, N) \
npgettext_aux (DEFAULT_TEXT_DOMAIN, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, MsgidPlural, N, LC_MESSAGES)
#else
# define npgettext(Msgctxt, Msgid, MsgidPlural, N) \
npgettext_aux (NULL, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, MsgidPlural, N, LC_MESSAGES)
#endif
#define dnpgettext(Domainname, Msgctxt, Msgid, MsgidPlural, N) \
npgettext_aux (Domainname, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, MsgidPlural, N, LC_MESSAGES)
#define dcnpgettext(Domainname, Msgctxt, Msgid, MsgidPlural, N, Category) \
npgettext_aux (Domainname, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, MsgidPlural, N, Category)
#ifdef __GNUC__
__inline
#else
#ifdef __cplusplus
inline
#endif
#endif
static const char *
pgettext_aux (const char *domain,
const char *msg_ctxt_id, const char *msgid,
int category)
{
const char *translation = dcgettext (domain, msg_ctxt_id, category);
if (translation == msg_ctxt_id)
return msgid;
else
return translation;
}
#ifdef __GNUC__
__inline
#else
#ifdef __cplusplus
inline
#endif
#endif
static const char *
npgettext_aux (const char *domain,
const char *msg_ctxt_id, const char *msgid,
const char *msgid_plural, unsigned long int n,
int category)
{
const char *translation =
dcngettext (domain, msg_ctxt_id, msgid_plural, n, category);
if (translation == msg_ctxt_id || translation == msgid_plural)
return (n == 1 ? msgid : msgid_plural);
else
return translation;
}
/* The same thing extended for non-constant arguments. Here MSGCTXT and MSGID
can be arbitrary expressions. But for string literals these macros are
less efficient than those above. */
#include <string.h>
#if (((__GNUC__ >= 3 || __GNUG__ >= 2) && !defined __STRICT_ANSI__) \
/* || __STDC_VERSION__ >= 199901L */ )
# define _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS 1
#else
# define _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS 0
#endif
#if !_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS
#include <stdlib.h>
#endif
#define pgettext_expr(Msgctxt, Msgid) \
dcpgettext_expr (NULL, Msgctxt, Msgid, LC_MESSAGES)
#define dpgettext_expr(Domainname, Msgctxt, Msgid) \
dcpgettext_expr (Domainname, Msgctxt, Msgid, LC_MESSAGES)
#ifdef __GNUC__
__inline
#else
#ifdef __cplusplus
inline
#endif
#endif
static const char *
dcpgettext_expr (const char *domain,
const char *msgctxt, const char *msgid,
int category)
{
size_t msgctxt_len = strlen (msgctxt) + 1;
size_t msgid_len = strlen (msgid) + 1;
const char *translation;
#if _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS
char msg_ctxt_id[msgctxt_len + msgid_len];
#else
char buf[1024];
char *msg_ctxt_id =
(msgctxt_len + msgid_len <= sizeof (buf)
? buf
: (char *) malloc (msgctxt_len + msgid_len));
if (msg_ctxt_id != NULL)
#endif
{
int found_translation;
memcpy (msg_ctxt_id, msgctxt, msgctxt_len - 1);
msg_ctxt_id[msgctxt_len - 1] = '\004';
memcpy (msg_ctxt_id + msgctxt_len, msgid, msgid_len);
translation = dcgettext (domain, msg_ctxt_id, category);
found_translation = (translation != msg_ctxt_id);
#if !_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS
if (msg_ctxt_id != buf)
free (msg_ctxt_id);
#endif
if (found_translation)
return translation;
}
return msgid;
}
#define npgettext_expr(Msgctxt, Msgid, MsgidPlural, N) \
dcnpgettext_expr (NULL, Msgctxt, Msgid, MsgidPlural, N, LC_MESSAGES)
#define dnpgettext_expr(Domainname, Msgctxt, Msgid, MsgidPlural, N) \
dcnpgettext_expr (Domainname, Msgctxt, Msgid, MsgidPlural, N, LC_MESSAGES)
#ifdef __GNUC__
__inline
#else
#ifdef __cplusplus
inline
#endif
#endif
static const char *
dcnpgettext_expr (const char *domain,
const char *msgctxt, const char *msgid,
const char *msgid_plural, unsigned long int n,
int category)
{
size_t msgctxt_len = strlen (msgctxt) + 1;
size_t msgid_len = strlen (msgid) + 1;
const char *translation;
#if _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS
char msg_ctxt_id[msgctxt_len + msgid_len];
#else
char buf[1024];
char *msg_ctxt_id =
(msgctxt_len + msgid_len <= sizeof (buf)
? buf
: (char *) malloc (msgctxt_len + msgid_len));
if (msg_ctxt_id != NULL)
#endif
{
int found_translation;
memcpy (msg_ctxt_id, msgctxt, msgctxt_len - 1);
msg_ctxt_id[msgctxt_len - 1] = '\004';
memcpy (msg_ctxt_id + msgctxt_len, msgid, msgid_len);
translation = dcngettext (domain, msg_ctxt_id, msgid_plural, n, category);
found_translation = !(translation == msg_ctxt_id || translation == msgid_plural);
#if !_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS
if (msg_ctxt_id != buf)
free (msg_ctxt_id);
#endif
if (found_translation)
return translation;
}
return (n == 1 ? msgid : msgid_plural);
}
#endif /* _LIBGETTEXT_H */

5
m4/.gitignore vendored
View File

@ -1,5 +0,0 @@
libtool.m4
ltoptions.m4
ltsugar.m4
ltversion.m4
lt~obsolete.m4

2
po/LINGUAS Normal file
View File

@ -0,0 +1,2 @@
# Languages
de es fr ja

53
po/Makevars Normal file
View File

@ -0,0 +1,53 @@
# Makefile variables for PO directory in any package using GNU gettext.
# Usually the message domain is the same as the package name.
DOMAIN = $(PACKAGE)
# These two variables depend on the location of this directory.
subdir = po
top_builddir = ..
# These options get passed to xgettext.
XGETTEXT_OPTIONS = --keyword=_ --keyword=N_
# This is the copyright holder that gets inserted into the header of the
# $(DOMAIN).pot file. Set this to the copyright holder of the surrounding
# package. (Note that the msgstr strings, extracted from the package's
# sources, belong to the copyright holder of the package.) Translators are
# expected to transfer the copyright for their translations to this person
# or entity, or to disclaim their copyright. The empty string stands for
# the public domain; in this case the translators are expected to disclaim
# their copyright.
COPYRIGHT_HOLDER = Bandie <bandie@chaospott.de>
# This is the email address or URL to which the translators shall report
# bugs in the untranslated strings:
# - Strings which are not entire sentences, see the maintainer guidelines
# in the GNU gettext documentation, section 'Preparing Strings'.
# - Strings which use unclear terms or require additional context to be
# understood.
# - Strings which make invalid assumptions about notation of date, time or
# money.
# - Pluralisation problems.
# - Incorrect English spelling.
# - Incorrect formatting.
# It can be your email address, or a mailing list address where translators
# can write to without being subscribed, or the URL of a web page through
# which the translators can contact you.
MSGID_BUGS_ADDRESS = https://github.com/pampanic/pam_panic
# This is the list of locale categories, beyond LC_MESSAGES, for which the
# message catalogs shall be used. It is usually empty.
EXTRA_LOCALE_CATEGORIES =
# This tells whether the $(DOMAIN).pot file contains messages with an 'msgctxt'
# context. Possible values are "yes" and "no". Set this to yes if the
# package uses functions taking also a message context, like pgettext(), or
# if in $(XGETTEXT_OPTIONS) you define keywords with a context argument.
USE_MSGCTXT = no
# These options get passed to msgmerge.
# Useful options are in particular:
# --previous to keep previous msgids of translated messages,
# --quiet to reduce the verbosity.
MSGMERGE_OPTIONS =

5
po/POTFILES.in Normal file
View File

@ -0,0 +1,5 @@
# The sources which contains output strings
src/pam_panic/pam_panic.c
src/pam_panic/pam_panic_authdevice.c
src/pam_panic/pam_panic_password.c
src/pam_panic_pw/pam_panic_pw.c

97
po/de.po Normal file
View File

@ -0,0 +1,97 @@
# German translations for pam_panic package
# German translation for pam_panic.
# Copyright (C) 2018 Bandie <bandie@chaospott.de>
# This file is distributed under the same license as the pam_panic package.
# <bandie@chaospott.de>, 2018.
#
msgid ""
msgstr ""
"Project-Id-Version: pam_panic 0.2.0\n"
"Report-Msgid-Bugs-To: https://github.com/pampanic/pam_panic\n"
"POT-Creation-Date: 2018-09-30 13:04+0200\n"
"PO-Revision-Date: 2018-09-20 21:03+0200\n"
"Last-Translator: <bandie@chaospott.de>\n"
"Language-Team: German\n"
"Language: de\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: src/pam_panic/pam_panic.c:41
msgid "CRITICAL: Problem with regcomp."
msgstr "CRITICAL: Problem mit regcomp."
#: src/pam_panic/pam_panic.c:122
msgid ""
"ERROR: Arguments invalid. Note that \"allow\" and \"reject\" must have a "
"valid GPT UUID."
msgstr ""
"ERROR: Argument ungültig. Hinweis: \"allow\" und \"reject\" müssen eine "
"valide GPT UUID aufweisen."
#: src/pam_panic/pam_panic.c:158
msgid "ALERT for argument \"serious\": Device doesn't exist."
msgstr "ALERT für Argument \"serious\": Gerät existiert nicht."
#: src/pam_panic/pam_panic_authdevice.c:35
msgid "Key? "
msgstr "Schlüssel? "
#: src/pam_panic/pam_panic_authdevice.c:37
msgid "Couldn't identify any key after 3 tries."
msgstr "Konnte keinen Schlüssel nach 3 Versuchen identifizieren."
#: src/pam_panic/pam_panic_password.c:29
msgid "ALERT for password option: No password file detected."
msgstr "ALERT für Passwort-Option: Keine Passwort-Datei gefunden."
#: src/pam_panic/pam_panic_password.c:34
msgid "ERROR: Couldn't open password file."
msgstr "ERROR: Konnte Passwort-Datei nicht öffnen."
#: src/pam_panic/pam_panic_password.c:46
msgid "CRITICAL: Password file is corrupt!"
msgstr "CRITICAL: Passwort-Datei ist beschädigt!"
#: src/pam_panic/pam_panic_password.c:91
msgid "Password: "
msgstr "Passwort: "
#: src/pam_panic_pw/pam_panic_pw.c:28
#, c-format
msgid "ERROR opening file!\n"
msgstr "ERROR: Datei konnte nicht geöffnet werden!\n"
#: src/pam_panic_pw/pam_panic_pw.c:65
msgid "Key password: "
msgstr "Schlüsselpasswort: "
#: src/pam_panic_pw/pam_panic_pw.c:66
msgid "Panic password: "
msgstr "Panikpasswort: "
#: src/pam_panic_pw/pam_panic_pw.c:67
msgid "Confirm key password: "
msgstr "Schlüsselpasswort bestätigen: "
#: src/pam_panic_pw/pam_panic_pw.c:68
msgid "Confirm panic password: "
msgstr "Panikpasswort bestätigen: "
#: src/pam_panic_pw/pam_panic_pw.c:74
#, c-format
msgid "Please run this program under root. Write access to %s is mandatory.\n"
msgstr ""
"Dieses Programm muss als root ausgeführt werden. Schreibrechte auf %s sind "
"dabei notwendig.\n"
#: src/pam_panic_pw/pam_panic_pw.c:97
#, c-format
msgid "Didn't work. Bye.\n"
msgstr "Hat nicht funktioniert. Tschüss.\n"
#: src/pam_panic_pw/pam_panic_pw.c:100
#, c-format
msgid "Password didn't match. Try again.\n"
msgstr "Passwort stimmt nicht überein. Bitte noch einmal versuchen.\n"

100
po/es.po Normal file
View File

@ -0,0 +1,100 @@
# Spanish translations for pam_panic package
# Traducciones al español para el paquete pam_panic.
# Copyright (C) 2018 Bandie <bandie@chaospott.de>
# This file is distributed under the same license as the pam_panic package.
# Dangered wolf <d@ngeredwolf.me>>, 2018.
#
msgid ""
msgstr ""
"Project-Id-Version: pam_panic 0.2.0\n"
"Report-Msgid-Bugs-To: https://github.com/pampanic/pam_panic\n"
"POT-Creation-Date: 2018-09-30 13:04+0200\n"
"PO-Revision-Date: 2018-09-29 18:19+0200\n"
"Last-Translator: Dangered wolf <d@ngeredwolf.me>\n"
"Language-Team: Spanish\n"
"Language: es\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Poedit 2.1.1\n"
#: src/pam_panic/pam_panic.c:41
msgid "CRITICAL: Problem with regcomp."
msgstr "CRITICAL: Problema con regcomp."
#: src/pam_panic/pam_panic.c:122
msgid ""
"ERROR: Arguments invalid. Note that \"allow\" and \"reject\" must have a "
"valid GPT UUID."
msgstr ""
"ERROR: Argumentos inválidos. Tenga en cuenta que \"allow\" y \"reject\" "
"deben tener un UUID de GPT válido."
#: src/pam_panic/pam_panic.c:158
msgid "ALERT for argument \"serious\": Device doesn't exist."
msgstr "ALERT para el argumento \"serious\": El dispositivo no existe."
#: src/pam_panic/pam_panic_authdevice.c:35
msgid "Key? "
msgstr "¿Código? "
#: src/pam_panic/pam_panic_authdevice.c:37
msgid "Couldn't identify any key after 3 tries."
msgstr "No se pudo identificar ninguna clave después de 3 intentos."
#: src/pam_panic/pam_panic_password.c:29
msgid "ALERT for password option: No password file detected."
msgstr ""
"ALERT para la opción de contraseña: No se ha detectado ningún archivo de "
"contraseña."
#: src/pam_panic/pam_panic_password.c:34
msgid "ERROR: Couldn't open password file."
msgstr "ERROR: No se pudo abrir el archivo de contraseña."
#: src/pam_panic/pam_panic_password.c:46
msgid "CRITICAL: Password file is corrupt!"
msgstr "CRITICAL: Archivo de contraseña está dañado!"
#: src/pam_panic/pam_panic_password.c:91
msgid "Password: "
msgstr "Contraseña: "
#: src/pam_panic_pw/pam_panic_pw.c:28
#, c-format
msgid "ERROR opening file!\n"
msgstr "ERROR al abrir el archivo!\n"
#: src/pam_panic_pw/pam_panic_pw.c:65
msgid "Key password: "
msgstr "Contraseña clave: "
#: src/pam_panic_pw/pam_panic_pw.c:66
msgid "Panic password: "
msgstr "Contraseña de pánico: "
#: src/pam_panic_pw/pam_panic_pw.c:67
msgid "Confirm key password: "
msgstr "Confirmar contraseña clave: "
#: src/pam_panic_pw/pam_panic_pw.c:68
msgid "Confirm panic password: "
msgstr "Confirmar contraseña de pánico: "
#: src/pam_panic_pw/pam_panic_pw.c:74
#, c-format
msgid "Please run this program under root. Write access to %s is mandatory.\n"
msgstr ""
"Ejecute este programa con acceso root. El acceso de escritura a %s es "
"obligatorio.\n"
#: src/pam_panic_pw/pam_panic_pw.c:97
#, c-format
msgid "Didn't work. Bye.\n"
msgstr "No funcionó. Adiós.\n"
#: src/pam_panic_pw/pam_panic_pw.c:100
#, c-format
msgid "Password didn't match. Try again.\n"
msgstr "La contraseña no coincide. Inténtalo de nuevo.\n"

98
po/fr.po Normal file
View File

@ -0,0 +1,98 @@
# French translations for pam_panic package.
# Copyright (C) 2018 Bandie <bandie@chaospott.de>
# This file is distributed under the same license as the pam_panic package.
# Dashie <dashie@otter.sh>, 2018.
#
msgid ""
msgstr ""
"Project-Id-Version: pam_panic 0.2.0\n"
"Report-Msgid-Bugs-To: https://github.com/pampanic/pam_panic\n"
"POT-Creation-Date: 2018-09-30 13:04+0200\n"
"PO-Revision-Date: 2018-09-29 18:33+0200\n"
"Last-Translator: Dashie <dashie@otter.sh>\n"
"Language-Team: French\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"X-Generator: Poedit 2.1.1\n"
#: src/pam_panic/pam_panic.c:41
msgid "CRITICAL: Problem with regcomp."
msgstr "CRITICAL: Problème avec regcomp."
#: src/pam_panic/pam_panic.c:122
msgid ""
"ERROR: Arguments invalid. Note that \"allow\" and \"reject\" must have a "
"valid GPT UUID."
msgstr ""
"ERROR: Arguments invalides. Notez que \"allow\" et \"reject\" doivent avoir "
"un GPU UUID valide."
#: src/pam_panic/pam_panic.c:158
msgid "ALERT for argument \"serious\": Device doesn't exist."
msgstr "ALERT pour l'argument \"serious\": Le périphérique n'existe pas."
#: src/pam_panic/pam_panic_authdevice.c:35
msgid "Key? "
msgstr "Clé?"
#: src/pam_panic/pam_panic_authdevice.c:37
msgid "Couldn't identify any key after 3 tries."
msgstr "Impossible d'identifier une clé après 3 essais."
#: src/pam_panic/pam_panic_password.c:29
msgid "ALERT for password option: No password file detected."
msgstr ""
"ALERT pour l'option de mot de passe: Aucun fichier de mot de passe détecté."
#: src/pam_panic/pam_panic_password.c:34
msgid "ERROR: Couldn't open password file."
msgstr "ERROR: Impossible d'ouvrir le fichier de mot de passe."
#: src/pam_panic/pam_panic_password.c:46
msgid "CRITICAL: Password file is corrupt!"
msgstr "CRITICAL: Le fichier de mot de passe est corrompu!"
#: src/pam_panic/pam_panic_password.c:91
msgid "Password: "
msgstr "Mot de passe : "
#: src/pam_panic_pw/pam_panic_pw.c:28
#, c-format
msgid "ERROR opening file!\n"
msgstr "ERROR en ouvrant le fichier.\n"
#: src/pam_panic_pw/pam_panic_pw.c:65
msgid "Key password: "
msgstr "Mot de passe clé : "
#: src/pam_panic_pw/pam_panic_pw.c:66
msgid "Panic password: "
msgstr "Mot de passe panique : "
#: src/pam_panic_pw/pam_panic_pw.c:67
msgid "Confirm key password: "
msgstr "Confirmer le mot de passe de clé :"
#: src/pam_panic_pw/pam_panic_pw.c:68
msgid "Confirm panic password: "
msgstr "Confirmer le mot de passe de panique : "
#: src/pam_panic_pw/pam_panic_pw.c:74
#, c-format
msgid "Please run this program under root. Write access to %s is mandatory.\n"
msgstr ""
"Veuillez exécuter ce programme avec les privilèges root. L'accès en écriture "
"à %s est obligatoire.\n"
#: src/pam_panic_pw/pam_panic_pw.c:97
#, c-format
msgid "Didn't work. Bye.\n"
msgstr "N'a pas fonctionné. Au revoir.\n"
#: src/pam_panic_pw/pam_panic_pw.c:100
#, c-format
msgid "Password didn't match. Try again.\n"
msgstr "Le mot de passe ne correspond pas. Réessayer.\n"

97
po/ja.po Normal file
View File

@ -0,0 +1,97 @@
# Japanese translations for pam_panic package.
# Copyright (C) 2018 Bandie <bandie@chaospott.de>
# This file is distributed under the same license as the pam_panic package.
# Chromium Neptune <chromium@neplanet.com>, 2018.
#
msgid ""
msgstr ""
"Project-Id-Version: pam_panic 0.2.0\n"
"Report-Msgid-Bugs-To: https://github.com/pampanic/pam_panic\n"
"POT-Creation-Date: 2018-09-30 13:04+0200\n"
"PO-Revision-Date: 2018-09-29 18:51+0200\n"
"Last-Translator: Chromium Neptune <chromium@neplanet.com>\n"
"Language-Team: Japanese\n"
"Language: ja\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Poedit 2.1.1\n"
#: src/pam_panic/pam_panic.c:41
msgid "CRITICAL: Problem with regcomp."
msgstr "クリティカル: \"regcomp\"の問題"
#: src/pam_panic/pam_panic.c:122
msgid ""
"ERROR: Arguments invalid. Note that \"allow\" and \"reject\" must have a "
"valid GPT UUID."
msgstr ""
"エラー: 引き数が無効です。 \"allow\"と \"reject\"には有効なGPT UUIDが必要で"
"す。"
#: src/pam_panic/pam_panic.c:158
msgid "ALERT for argument \"serious\": Device doesn't exist."
msgstr "引数 \"serious\"のアラート:デバイスが存在しません。"
#: src/pam_panic/pam_panic_authdevice.c:35
msgid "Key? "
msgstr "キー? "
#: src/pam_panic/pam_panic_authdevice.c:37
msgid "Couldn't identify any key after 3 tries."
msgstr "3回の試行後にキーを特定できませんでした。"
#: src/pam_panic/pam_panic_password.c:29
msgid "ALERT for password option: No password file detected."
msgstr "パスワードオプションの警告:パスワードファイルが検出されませんでした。"
#: src/pam_panic/pam_panic_password.c:34
msgid "ERROR: Couldn't open password file."
msgstr "エラー:パスワードファイルを開くことができませんでした。"
#: src/pam_panic/pam_panic_password.c:46
msgid "CRITICAL: Password file is corrupt!"
msgstr "危険:パスワードファイルが壊れています!"
#: src/pam_panic/pam_panic_password.c:91
msgid "Password: "
msgstr "パスフレーズ: "
#: src/pam_panic_pw/pam_panic_pw.c:28
#, c-format
msgid "ERROR opening file!\n"
msgstr "ファイルを開く際にエラーが発生\n"
#: src/pam_panic_pw/pam_panic_pw.c:65
msgid "Key password: "
msgstr "キーのパスワード: "
#: src/pam_panic_pw/pam_panic_pw.c:66
msgid "Panic password: "
msgstr "パニックパスワード: "
#: src/pam_panic_pw/pam_panic_pw.c:67
msgid "Confirm key password: "
msgstr "キーのパスワードを確認: "
#: src/pam_panic_pw/pam_panic_pw.c:68
msgid "Confirm panic password: "
msgstr "パニックパスワードを確認する: "
#: src/pam_panic_pw/pam_panic_pw.c:74
#, c-format
msgid "Please run this program under root. Write access to %s is mandatory.\n"
msgstr ""
"root権限でこのプログラムを実行してください。 %sへの書き込みアクセスは必須で"
"す。\n"
#: src/pam_panic_pw/pam_panic_pw.c:97
#, c-format
msgid "Didn't work. Bye.\n"
msgstr "うまくいきませんでした。 さようなら。\n"
#: src/pam_panic_pw/pam_panic_pw.c:100
#, c-format
msgid "Password didn't match. Try again.\n"
msgstr "パスワードが一致しませんでした。 再試行する。\n"

92
po/pam_panic.pot Normal file
View File

@ -0,0 +1,92 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR Bandie <bandie@chaospott.de>
# This file is distributed under the same license as the pam_panic package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: pam_panic 0.2.0\n"
"Report-Msgid-Bugs-To: https://github.com/pampanic/pam_panic\n"
"POT-Creation-Date: 2018-09-30 13:04+0200\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"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n"
#: src/pam_panic/pam_panic.c:41
msgid "CRITICAL: Problem with regcomp."
msgstr ""
#: src/pam_panic/pam_panic.c:122
msgid ""
"ERROR: Arguments invalid. Note that \"allow\" and \"reject\" must have a "
"valid GPT UUID."
msgstr ""
#: src/pam_panic/pam_panic.c:158
msgid "ALERT for argument \"serious\": Device doesn't exist."
msgstr ""
#: src/pam_panic/pam_panic_authdevice.c:35
msgid "Key? "
msgstr ""
#: src/pam_panic/pam_panic_authdevice.c:37
msgid "Couldn't identify any key after 3 tries."
msgstr ""
#: src/pam_panic/pam_panic_password.c:29
msgid "ALERT for password option: No password file detected."
msgstr ""
#: src/pam_panic/pam_panic_password.c:34
msgid "ERROR: Couldn't open password file."
msgstr ""
#: src/pam_panic/pam_panic_password.c:46
msgid "CRITICAL: Password file is corrupt!"
msgstr ""
#: src/pam_panic/pam_panic_password.c:91
msgid "Password: "
msgstr ""
#: src/pam_panic_pw/pam_panic_pw.c:28
#, c-format
msgid "ERROR opening file!\n"
msgstr ""
#: src/pam_panic_pw/pam_panic_pw.c:65
msgid "Key password: "
msgstr ""
#: src/pam_panic_pw/pam_panic_pw.c:66
msgid "Panic password: "
msgstr ""
#: src/pam_panic_pw/pam_panic_pw.c:67
msgid "Confirm key password: "
msgstr ""
#: src/pam_panic_pw/pam_panic_pw.c:68
msgid "Confirm panic password: "
msgstr ""
#: src/pam_panic_pw/pam_panic_pw.c:74
#, c-format
msgid "Please run this program under root. Write access to %s is mandatory.\n"
msgstr ""
#: src/pam_panic_pw/pam_panic_pw.c:97
#, c-format
msgid "Didn't work. Bye.\n"
msgstr ""
#: src/pam_panic_pw/pam_panic_pw.c:100
#, c-format
msgid "Password didn't match. Try again.\n"
msgstr ""

3
po4a/Makefile.am Normal file
View File

@ -0,0 +1,3 @@
all:
@printf "Building po4a man page translations...\n"
$(PO4A) ./po4a.cfg

568
po4a/de.po Normal file
View File

@ -0,0 +1,568 @@
# German translations for pam_panic package
# German translation for pam_panic
# Copyright (C) 2018 Bandie <bandie@chaospott.de>
# This file is distributed under the same license as the pam_panic package.
# Bandie <bandie@chaospott.de>, 2018.
#
msgid ""
msgstr ""
"Project-Id-Version: po 4a\n"
"Report-Msgid-Bugs-To: Bandie <bandie@chaospott.de>\n"
"POT-Creation-Date: 2018-09-29 16:00+0200\n"
"PO-Revision-Date: 2018-09-29 16:02+0200\n"
"Last-Translator: Bandie <bandie@chaospott.de>\n"
"Language-Team: German\n"
"Language: de\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Poedit 2.1.1\n"
#. type: TH
#: ../src/pam_panic/man/man8/pam_panic.8:9
#, no-wrap
msgid "PAM_PANIC"
msgstr "PAM_PANIC"
#. type: TH
#: ../src/pam_panic/man/man8/pam_panic.8:9
#, no-wrap
msgid "2018-03-26"
msgstr "2018-09-28"
#. type: TH
#: ../src/pam_panic/man/man8/pam_panic.8:9
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:9
#, no-wrap
msgid "PAM Panic Manual"
msgstr "PAM Panic Handbuch"
#. -----------------------------------------------------------------
#. * MAIN CONTENT STARTS HERE *
#. -----------------------------------------------------------------
#. type: SH
#: ../src/pam_panic/man/man8/pam_panic.8:24
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:23
#, no-wrap
msgid "NAME"
msgstr "NAME"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:26
msgid ""
"pam_panic - PAM module with panic function to protect sensitive data in "
"emergency situations"
msgstr ""
"pam_panic - PAM-Module mit Panik-Funktion zum Schützen von wichtigen Daten "
"in Notsituationen"
#. type: SH
#: ../src/pam_panic/man/man8/pam_panic.8:28
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:27
#, no-wrap
msgid "SYNOPSIS"
msgstr "ÜBERSICHT"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:31
msgid ""
"B<pam_panic.so> [password] [allow=I<UUID(GPT)>] [reject=I<UUID(GPT)>] "
"[reboot] [poweroff] [serious=I<UUID>]"
msgstr ""
"B<pam_panic.so> [password] [allow=I<UUID(GPT)>] [reject=I<UUID(GPT)>] "
"[reboot] [poweroff] [serious=I<UUID>]"
#. type: SH
#: ../src/pam_panic/man/man8/pam_panic.8:33
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:32
#, no-wrap
msgid "DESCRIPTION"
msgstr "BESCHREIBUNG"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:36
msgid ""
"The pam_panic PAM module protects sensitive data and provides a panic "
"function for emergency situations."
msgstr ""
"Das pam_panic PAM-Modul schützt wichtige Daten durch das Anbieten einer "
"Panik-Funktion."
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:38
msgid "There are two possible options in how to use this PAM module:"
msgstr "Es gibt zwei Möglichkeiten der Verwendung:"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:41
msgid "First possible option:"
msgstr "Erste Möglichkeit:"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:44
msgid ""
"There are two removable media which work as keys: the auth key and the panic "
"key. The auth key will let you pass to the password prompt whereas the "
"panic key will call the I<panic function>."
msgstr ""
"Man verwendet zwei Wecheldatenträger, die als Schlüssel dienen. Hierbei "
"funktioniert eines als Authentifizierungsschlüssel und eines als "
"Panikschlüssel. Der Panikschlüssel führt die I<Panikfunktion> aus."
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:47
msgid "See options B<allow> and B<reject>."
msgstr "Sie dazu die Optionen B<allow> und B<reject>."
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:50
msgid "Second possible option:"
msgstr "Zweite Möglichkeit:"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:52
msgid ""
"There are two passwords: the key password and the panic password. The key "
"password will let you pass to the original password prompt whereas the panic "
"password will call the I<panic function>."
msgstr ""
"Man verwendet zwei Passwörter, die als Schlüssel dienen. Dabei wird ein "
"Schlüsselpasswort (Key password) und ein Panikpasswort (Panic password) "
"festgelegt.Das Panikpasswort wird hierbei die I<Panikfunktion> aufrufen."
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:55
msgid "See option B<password>."
msgstr "Siehe dazu die Option B<password>."
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:60
msgid "The panic function:"
msgstr "Die Panikfunktion:"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:62
msgid ""
"The behaviour of this function is defined through the arguments B<reboot>, "
"B<poweroff> and/or B<serious>. See the B<OPTIONS> section for details."
msgstr ""
"Das Verhalten der Panikfunktion wird durch die Argumente B<reboot>, "
"B<poweroff> und/oder B<serious> definiert. Siehe dazu den Abschnitt "
"B<OPTIONEN>."
#. type: SH
#: ../src/pam_panic/man/man8/pam_panic.8:65
#, no-wrap
msgid "OPTIONS"
msgstr "OPTIONEN"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:68
msgid "B<password>"
msgstr "B<password>"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:71
msgid ""
"Activates the password function having a panic and key password. If the "
"options B<allow> and B<reject> are provided this option will be ignored."
msgstr ""
"Aktiviert die Passwortfunktion mit einem Panik- und Schlüsselpasswort. Wenn "
"B<allow> und B<reject> gesetzt sind, wird diese Option ignoriert."
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:74
msgid "These passwords can be set with the B<pam_panic_pw>(1) command."
msgstr ""
"Diese Passwörter können mit dem B<pam_panic_pw>(1) Programm gesetzt werden."
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:79
msgid "B<allow=>I<UUID(GPT)>"
msgstr "B<allow=>I<UUID(GPT)>"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:81
msgid "The UUID of the device to be used for authentication (the auth key)."
msgstr ""
"Diese Geräte-UUID wird zur Authentifizierung benutzt "
"(Authentifierungsschlüssel)."
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:86
#: ../src/pam_panic/man/man8/pam_panic.8:99
msgid ""
"The device must be GPT-formatted and contain at least one partition. The "
"UUID of a GPT-formatted device looks like \"12345678-9ABC-"
"DEF0-1234-56789ABCDEF0\"."
msgstr ""
"Der Wechseldatenträger muss GPT-formatiert sein und mindestens eine "
"Partition enthalten.Die UUID eines GPT-formatierten Gerätes sieht "
"beispielsweise so aus: \"12345678-9ABC-DEF0-1234-56789ABCDEF0\"."
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:88
#: ../src/pam_panic/man/man8/pam_panic.8:101
msgid "See B<HOW TO DETERMINE MY UUIDS> for details."
msgstr "Weitere Informationen im Abschnitt B<WIE BESTIMME ICH MEINE UUIDS>."
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:92
msgid "B<reject=>I<UUID(GPT)>"
msgstr "B<reject=>I<UUID(GPT)>"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:94
msgid ""
"The UUID of the device to be used in emergencies. The presence of this "
"device will trigger B<reboot>, B<poweroff> and/or the panic function, "
"depending on whether B<reboot>, B<poweroff>, and/or B<serious> are specified."
msgstr ""
"Diese Geräte-UUID, welches in Notfällen benutzt wird. Die Verwendung des "
"Gerätes wird B<reboot>, B<poweroff> und/oder die Panikfunktion auslösen, "
"sofern B<reboot> B<poweroff> und/oder B<serious> angegeben wurden."
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:105
msgid "B<reboot> (recommended)"
msgstr "B<reboot> (empfohlen)"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:107
msgid ""
"Indicates that the system should reboot when the I<panic function> is "
"triggered."
msgstr ""
"Sorgt für ein Neustart des Systems, sobald die I<Panikfunktion> ausgelöst "
"wird."
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:110
msgid "This option is recommended."
msgstr "Diese Option ist empfohlen."
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:113
msgid "If B<poweroff> is also specified, B<reboot> will be ignored."
msgstr ""
"Wenn B<poweroff> ebenfalls angegeben worden ist, wird B<reboot> ignoriert."
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:117
msgid "B<poweroff>"
msgstr "B<poweroff>"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:120
msgid ""
"Indicates that the system should shut down when the I<panic function> is "
"triggered. This option is discouraged for security reasons."
msgstr ""
"Sorgt für ein Herunterfahren des Systems, sobald die I<Panikfunktion> "
"ausgeführt wird. Diese Option ist aus Sicherheitsgründen nicht "
"empfehlenswert."
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:124
msgid "B<serious=>I<UUID>"
msgstr "B<serious=>I<UUID>"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:126
msgid ""
"The UUID of the device containing the LUKS header to erase when the I<panic "
"function> is triggered. Erasing the LUKS header will render the data "
"unreadable."
msgstr ""
"Die Geräte-UUID, dessen LUKS-Header zerstört werden soll, sobald die "
"I<Panikfunktion> ausgelöst wurde. Das Zerstören der LUKS-Header hat zu "
"Folge, dass die Daten nicht mehr lesbar sein werden."
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:129
msgid ""
"The internal command which will be executed is \"B<cryptsetup luksErase "
"[UUID]>\"."
msgstr ""
"Der interne Befehl, der ausgeführt werden wird ist \"B<cryptsetup luksErase "
"[UUID]>\"."
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:132
msgid ""
"NOTE: You should make a backup of the LUKS header before using this function."
msgstr ""
"HINWEIS: Ein Backup des LUKS-Headers wäre vor Verwendung dieser Funktion "
"sinnvoll."
#. type: SH
#: ../src/pam_panic/man/man8/pam_panic.8:136
#, no-wrap
msgid "USAGE"
msgstr "ANWENDUNG"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:139
msgid ""
"To activate the module you have to configure PAM. See B<pam.conf(5)> for "
"details."
msgstr ""
"Um dieses Modul zu aktivieren, musst du PAM konfigurieren. Siehe B<pam."
"conf(5)>."
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:141
msgid ""
"In general, you will want to add the following to the top of a PAM "
"configuration file:"
msgstr ""
"In allgemeinen Worten gefasst möchte man folgende Zeilen am Anfang einer PAM-"
"Konfigurationsdatei hinzufügen:"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:144
msgid ""
"auth requisite __PAMPANICSO__ auth=E<lt>UUIDE<gt> reject=E<lt>UUIDE<gt> "
"reboot serious=E<lt>UUIDE<gt>"
msgstr ""
"auth requisite __PAMPANICSO__ auth=E<lt>UUIDE<gt> reject=E<lt>UUIDE<gt> "
"reboot serious=E<lt>UUIDE<gt>"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:146
#: ../src/pam_panic/man/man8/pam_panic.8:152
msgid "account requisite __PAMPANICSO__"
msgstr "account requisite __PAMPANICSO__"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:148
msgid "Or:"
msgstr "Oder auch:"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:150
msgid "auth requisite __PAMPANICSO__ password reboot serious=E<lt>UUIDE<gt>"
msgstr ""
#. type: SH
#: ../src/pam_panic/man/man8/pam_panic.8:156
#, no-wrap
msgid "HOW TO DETERMINE MY UUIDS"
msgstr "WIE BESTIMME ICH MEINE UUIDS"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:160
msgid ""
"You will find your UUIDs in I</dev/disk/by-partuuid>. You might want to "
"execute \"B<ls -l /dev/disk/by-partuuid/>\" in your favourite shell to find "
"out which UUID is which device."
msgstr ""
"Die UUIDs können unter I</dev/disk/by-partuuid> gefunden werden. Um "
"nachvollziehen zu können, welcher Wecheldatenträger welches ist, ist es "
"ratsam \"B<ls -l /dev/disk/by-partuuid/>\" in der Lieblingsshell auszuführen."
#. type: SH
#: ../src/pam_panic/man/man8/pam_panic.8:162
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:41
#, no-wrap
msgid "RETURN VALUES"
msgstr "RÜCKGABEWERTE"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:165
msgid "PAM_SUCCESS"
msgstr "PAM_SUCCESS"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:167
msgid "Access was granted."
msgstr "Zugriff wurde gewährt."
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:170
msgid "PAM_IGNORE"
msgstr "PAM_IGNORE"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:172
msgid "An error has occured. The module will be ignored."
msgstr "Ein Fehler ist aufgetreten. Dieses Modul wird ignoriert."
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:175
msgid "PAM_MAXTRIES"
msgstr "PAM_MAXTRIES"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:177
msgid "The removable media was not detected."
msgstr "Der Wechseldatenträger wurde nicht erkannt."
#. type: SH
#: ../src/pam_panic/man/man8/pam_panic.8:180
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:59
#, no-wrap
msgid "FILES"
msgstr "DATEIEN"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:183
msgid "__PAMPANICSO__"
msgstr "__PAMPANICSO__"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:185
msgid "This PAM module, which does everything of this above."
msgstr "Dieses PAM-Modul, welches für alles zuständig ist."
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:188
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:62
msgid "__PAMPANICPW__"
msgstr "__PAMPANICPW__"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:190
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:64
msgid "Program to set and change the passwords."
msgstr "Programm zum Setzen und Verändern der Passwörter."
#. type: SH
#: ../src/pam_panic/man/man8/pam_panic.8:193
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:72
#, no-wrap
msgid "BUGS"
msgstr "BUGS"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:196
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:75
msgid ""
"Please report bugs and send pull requests to E<lt>https://github.com/"
"pampanic/pam_panicE<gt>."
msgstr ""
"Fehlerberichte (möglichst auf Englisch) und Codeverbesserungen können hier "
"eingereicht werden: E<lt>https://github.com/pampanic/pam_panicE<gt>."
#. type: SH
#: ../src/pam_panic/man/man8/pam_panic.8:198
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:77
#, no-wrap
msgid "SEE ALSO"
msgstr "SIEHE AUCH"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:204
msgid "B<pam_panic_pw>(1), B<cryptsetup>(8), B<pam>(8), B<pam.conf>(5)"
msgstr "B<pam_panic_pw>(1), B<cryptsetup>(8), B<pam>(8), B<pam.conf>(5)"
#. type: SH
#: ../src/pam_panic/man/man8/pam_panic.8:206
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:85
#, no-wrap
msgid "AUTHORS"
msgstr "AUTOREN"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:210
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:90
msgid "pam_panic was written by Bandie E<lt>bandie@chaospott.deE<gt>."
msgstr "pam_panic wurde von Bandie E<lt>bandie@chaospott.deE<gt> entwickelt."
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:211
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:92
msgid ""
"This man page has been revised by Jordy Dickinson E<lt>jordy."
"dickinson@icloud.comE<gt>."
msgstr ""
"Diese man page wurde von Bandie E<lt>bandie@chaospott.deE<gt> ins Deutsche "
"übersetzt."
#. type: TH
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:9
#, no-wrap
msgid "PAM_PANIC_PW"
msgstr "PAM_PANIC_PW"
#. type: TH
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:9
#, no-wrap
msgid "2018-03-31"
msgstr "2018-09-28"
#. type: Plain text
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:25
msgid ""
"pam_panic_pw - Set and change the passwords for the B<pam_panic>(8) PAM "
"module."
msgstr ""
"pam_panic_pw - Setzen der Passwörter für das B<pam_panic>(8) PAM-Modul."
#. type: Plain text
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:30
msgid "B<pam_panic_pw>"
msgstr "B<pam_panic_pw>"
#. type: Plain text
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:35
msgid "B<pam_panic_pw> sets the passwords for the B<pam_panic>(8) PAM module."
msgstr ""
"B<pam_panic_pw> setzt die Passwörter für das B<pam_panic>(8) PAM-Modul."
#. type: Plain text
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:39
msgid ""
"There are two passwords: the \"key password\" and the \"panic password\". "
"The \"key password\" is used for the normal authentication whereas the "
"\"panic password\" will execute the panic function."
msgstr ""
"Man verwendet zwei Passwörter, die als Schlüssel dienen. Dabei wird ein "
"\"Schlüsselpasswort\" und ein \"Panikpasswort\" festgelegt. Das "
"Panikpasswort wird hierbei die I<Panikfunktion> aufrufen."
#. type: Plain text
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:44
msgid "0"
msgstr "0"
#. type: Plain text
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:46
msgid "Passwords set successfully."
msgstr "Passwörter erfolgreich gesetzt."
#. type: Plain text
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:49
msgid "1"
msgstr "1"
#. type: Plain text
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:51
msgid "Access denied."
msgstr "Keine Berechtigungen."
#. type: Plain text
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:54
msgid "2"
msgstr "2"
#. type: Plain text
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:56
msgid "Could not open the password file."
msgstr "Konnte Passwortdatei nicht öffnen."
#. type: Plain text
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:67
msgid "__PPASSFILE__"
msgstr "__PPASSFILE__"
#. type: Plain text
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:69
msgid "The password file."
msgstr "Die Passwortdatei."
#. type: Plain text
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:83
msgid "B<pam_panic>(8), B<cryptsetup>(8), B<pam.conf>(5), B<pam>(8)."
msgstr "B<pam_panic>(8), B<cryptsetup>(8), B<pam.conf>(5), B<pam>(8)."

567
po4a/es.po Normal file
View File

@ -0,0 +1,567 @@
# Spanish translations for pam_panic package
# Traducciones al español para el paquete pam_panic
# Copyright (C) 2018 Bandie <bandie@chaospott.de>
# This file is distributed under the same license as the pam_panic package.
# Dangered wolf <d@angeredwolf.me>, 2018.
#
msgid ""
msgstr ""
"Project-Id-Version: po 4a\n"
"Report-Msgid-Bugs-To: Bandie <bandie@chaospott.de>\n"
"POT-Creation-Date: 2018-09-29 16:00+0200\n"
"PO-Revision-Date: 2018-09-29 16:02+0200\n"
"Last-Translator: d@angeredwolf.me\n"
"Language-Team: Spanish\n"
"Language: es\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Poedit 2.1.1\n"
#. type: TH
#: ../src/pam_panic/man/man8/pam_panic.8:9
#, no-wrap
msgid "PAM_PANIC"
msgstr "PAM_PANIC"
#. type: TH
#: ../src/pam_panic/man/man8/pam_panic.8:9
#, no-wrap
msgid "2018-03-26"
msgstr "2018-03-28"
#. type: TH
#: ../src/pam_panic/man/man8/pam_panic.8:9
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:9
#, no-wrap
msgid "PAM Panic Manual"
msgstr "PAM Panic Manual"
#. -----------------------------------------------------------------
#. * MAIN CONTENT STARTS HERE *
#. -----------------------------------------------------------------
#. type: SH
#: ../src/pam_panic/man/man8/pam_panic.8:24
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:23
#, no-wrap
msgid "NAME"
msgstr "NAME"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:26
msgid ""
"pam_panic - PAM module with panic function to protect sensitive data in "
"emergency situations"
msgstr ""
"pam_panic - un módulo de PAM para controlar acceso usando media removible "
"(con función pánica)"
#. type: SH
#: ../src/pam_panic/man/man8/pam_panic.8:28
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:27
#, no-wrap
msgid "SYNOPSIS"
msgstr "SINOPSIS"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:31
msgid ""
"B<pam_panic.so> [password] [allow=I<UUID(GPT)>] [reject=I<UUID(GPT)>] "
"[reboot] [poweroff] [serious=I<UUID>]"
msgstr ""
"B<pam_panic.so> [password] [allow=I<UUID(GPT)>] [reject=I<UUID(GPT)>] "
"[reboot] [poweroff] [serious=I<UUID>]"
#. type: SH
#: ../src/pam_panic/man/man8/pam_panic.8:33
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:32
#, no-wrap
msgid "DESCRIPTION"
msgstr "DESCRIPCIÓN"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:36
msgid ""
"The pam_panic PAM module protects sensitive data and provides a panic "
"function for emergency situations."
msgstr ""
"El módulo pam_panic protege los datos delicados y proporcióna una función "
"pánica para emergencias."
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:38
msgid "There are two possible options in how to use this PAM module:"
msgstr "Hay dos opciones posibles para utilizar este modulo de PAM:"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:41
msgid "First possible option:"
msgstr "Primera opción posible:"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:44
msgid ""
"There are two removable media which work as keys: the auth key and the panic "
"key. The auth key will let you pass to the password prompt whereas the "
"panic key will call the I<panic function>."
msgstr ""
"Hay dos medias removibles que están usando como claves: La clave de "
"autenticación y la clave de pánico. La clave para autenticación se permite "
"ingresar su contraseña mientras la clave para pánico va a llamar la "
"I<función de pánico>."
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:47
msgid "See options B<allow> and B<reject>."
msgstr "Vea la sección de B<allow> y B<reject>."
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:50
msgid "Second possible option:"
msgstr "Segunda opción posible:"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:52
msgid ""
"There are two passwords: the key password and the panic password. The key "
"password will let you pass to the original password prompt whereas the panic "
"password will call the I<panic function>."
msgstr ""
"Hay dos contraseñas: La contraseña para autenticación y la contraseña de "
"pánico. La contrasenña clave le permitirá pasar al mensaje de contrasenña "
"original, mientras que la contrasenña de pánico llamará a la I<función de "
"pánico>."
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:55
msgid "See option B<password>."
msgstr "Vea la sección de B<password>."
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:60
msgid "The panic function:"
msgstr "La función de pánico:"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:62
msgid ""
"The behaviour of this function is defined through the arguments B<reboot>, "
"B<poweroff> and/or B<serious>. See the B<OPTIONS> section for details."
msgstr ""
"El comportamiento de esta función se define a través de los argumentos "
"B<reboot>, B<poweroff> o B<serious>. Vea la sección de B<OPCIÓNES> para más "
"detalles."
#. type: SH
#: ../src/pam_panic/man/man8/pam_panic.8:65
#, no-wrap
msgid "OPTIONS"
msgstr "OPCIÓNES"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:68
msgid "B<password>"
msgstr "B<password>"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:71
msgid ""
"Activates the password function having a panic and key password. If the "
"options B<allow> and B<reject> are provided this option will be ignored."
msgstr ""
"Activa la función de contraseã con pánico y contraseña clave. Si las "
"opcionesB<allow> y B<reject> son provistas esta opción será ignorada."
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:74
msgid "These passwords can be set with the B<pam_panic_pw>(1) command."
msgstr ""
"Estas contraseñas se pueden configurar con el comando B<pam_panic_pw>(1)."
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:79
msgid "B<allow=>I<UUID(GPT)>"
msgstr "B<allow=>I<UUID(GPT)>"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:81
msgid "The UUID of the device to be used for authentication (the auth key)."
msgstr "Es el UUID del dispositivo para autenticación."
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:86
#: ../src/pam_panic/man/man8/pam_panic.8:99
msgid ""
"The device must be GPT-formatted and contain at least one partition. The "
"UUID of a GPT-formatted device looks like \"12345678-9ABC-"
"DEF0-1234-56789ABCDEF0\"."
msgstr ""
"El dispositivo debe estar formateado por GPT y contener al menos una "
"partición. El UUID de un dispositivo se ve como «12345678-9ABC-"
"DEF0-1234-56789ABCDEF0»."
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:88
#: ../src/pam_panic/man/man8/pam_panic.8:101
msgid "See B<HOW TO DETERMINE MY UUIDS> for details."
msgstr "Vea B<CÓMO DETERMINAR MIS UUIDS> para detalles."
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:92
msgid "B<reject=>I<UUID(GPT)>"
msgstr "B<reject=>I<UUID(GPT)>"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:94
msgid ""
"The UUID of the device to be used in emergencies. The presence of this "
"device will trigger B<reboot>, B<poweroff> and/or the panic function, "
"depending on whether B<reboot>, B<poweroff>, and/or B<serious> are specified."
msgstr ""
"Es el UUID del dispositivo para emergencias. Cuando este dispositivo está "
"presente, se disparará un reinicio, un apagado, y / o la función pánica, "
"según si B<reboot>, B<poweroff>, y / o B<serious> han sido especificados."
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:105
msgid "B<reboot> (recommended)"
msgstr "B<reboot> (recomendado)"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:107
msgid ""
"Indicates that the system should reboot when the I<panic function> is "
"triggered."
msgstr ""
"Indica que la sistema debe reiniciarse cuando se active la I<función de "
"pánico>."
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:110
msgid "This option is recommended."
msgstr "Esta opción es recomendada."
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:113
msgid "If B<poweroff> is also specified, B<reboot> will be ignored."
msgstr "Si B<poweroff> está especificado también, B<reboot> estará ignorado."
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:117
msgid "B<poweroff>"
msgstr "B<poweroff>"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:120
msgid ""
"Indicates that the system should shut down when the I<panic function> is "
"triggered. This option is discouraged for security reasons."
msgstr ""
"Indica que la sistema debe apagarse cuando se active la I<función de pánico>."
"Esta opción no se recomienda por razones de seguridad."
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:124
msgid "B<serious=>I<UUID>"
msgstr "B<serious=>I<UUID>"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:126
msgid ""
"The UUID of the device containing the LUKS header to erase when the I<panic "
"function> is triggered. Erasing the LUKS header will render the data "
"unreadable."
msgstr ""
"Es el UUID del dispositivo que contene el encabezamiento de LUKS que estará "
"borrado cuando se active la I<función de pánico>. Borrar el encabezado LUKS "
"hará que los datos sean ilegibles."
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:129
msgid ""
"The internal command which will be executed is \"B<cryptsetup luksErase "
"[UUID]>\"."
msgstr ""
"El comando interno que se ejecutará es \"B<cryptsetup luksErase [UUID]>\"."
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:132
msgid ""
"NOTE: You should make a backup of the LUKS header before using this function."
msgstr ""
"NOTA: Se deberiá hacer una copia del encabezamiento de LUKS antes de usar "
"esta función."
#. type: SH
#: ../src/pam_panic/man/man8/pam_panic.8:136
#, no-wrap
msgid "USAGE"
msgstr "USAR"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:139
msgid ""
"To activate the module you have to configure PAM. See B<pam.conf(5)> for "
"details."
msgstr ""
"Para activar el módulo se tiene que configurar PAM. Vea B<pam.conf(5)> para "
"detalles."
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:141
msgid ""
"In general, you will want to add the following to the top of a PAM "
"configuration file:"
msgstr ""
"En general, se necesita agregar lo siguiente al comienzo de un archivo de "
"configuración PAM:"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:144
msgid ""
"auth requisite __PAMPANICSO__ auth=E<lt>UUIDE<gt> reject=E<lt>UUIDE<gt> "
"reboot serious=E<lt>UUIDE<gt>"
msgstr ""
"auth requisite __PAMPANICSO__ auth=E<lt>UUIDE<gt> reject=E<lt>UUIDE<gt> "
"reboot serious=E<lt>UUIDE<gt>"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:146
#: ../src/pam_panic/man/man8/pam_panic.8:152
msgid "account requisite __PAMPANICSO__"
msgstr "account requisite __PAMPANICSO__"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:148
msgid "Or:"
msgstr "O:"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:150
msgid "auth requisite __PAMPANICSO__ password reboot serious=E<lt>UUIDE<gt>"
msgstr "auth requisite __PAMPANICSO__ password reboot serious=E<lt>UUIDE<gt>"
#. type: SH
#: ../src/pam_panic/man/man8/pam_panic.8:156
#, no-wrap
msgid "HOW TO DETERMINE MY UUIDS"
msgstr "CÓMO DETERMINAR MIS UUIDS"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:160
msgid ""
"You will find your UUIDs in I</dev/disk/by-partuuid>. You might want to "
"execute \"B<ls -l /dev/disk/by-partuuid/>\" in your favourite shell to find "
"out which UUID is which device."
msgstr ""
"Se puede encontrar sus UUIDs en /dev/disk/by-partuuid. Es posible que desee "
"ejecutar «ls -l /dev/disk/by-partuuid» en su shell favorito para encontrar "
"cuál UUID es su dispositivo."
#. type: SH
#: ../src/pam_panic/man/man8/pam_panic.8:162
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:41
#, no-wrap
msgid "RETURN VALUES"
msgstr "VALORES DE RETORNO"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:165
msgid "PAM_SUCCESS"
msgstr "PAM_SUCCESS"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:167
msgid "Access was granted."
msgstr "Indica que acceso fue permitido."
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:170
msgid "PAM_IGNORE"
msgstr "PAM_IGNORE"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:172
msgid "An error has occured. The module will be ignored."
msgstr "Indica que se ha producido un error. El módulo estará ignorado."
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:175
msgid "PAM_MAXTRIES"
msgstr "PAM_MAXTRIES"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:177
msgid "The removable media was not detected."
msgstr "El media removible no fue detectados."
#. type: SH
#: ../src/pam_panic/man/man8/pam_panic.8:180
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:59
#, no-wrap
msgid "FILES"
msgstr "ARCHIVOS"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:183
msgid "__PAMPANICSO__"
msgstr "__PAMPANICSO__"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:185
msgid "This PAM module, which does everything of this above."
msgstr "Este módulo PAM."
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:188
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:62
msgid "__PAMPANICPW__"
msgstr "__PAMPANICPW__"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:190
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:64
msgid "Program to set and change the passwords."
msgstr "Cambiador de contraseña."
#. type: SH
#: ../src/pam_panic/man/man8/pam_panic.8:193
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:72
#, no-wrap
msgid "BUGS"
msgstr "ERRORES"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:196
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:75
msgid ""
"Please report bugs and send pull requests to E<lt>https://github.com/"
"pampanic/pam_panicE<gt>."
msgstr ""
"Por favor reportar errores y enviar pull requests a E<lt>https://github.com/"
"pampanic/pam_panicE<gt>."
#. type: SH
#: ../src/pam_panic/man/man8/pam_panic.8:198
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:77
#, no-wrap
msgid "SEE ALSO"
msgstr "VER TAMBIÉN"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:204
msgid "B<pam_panic_pw>(1), B<cryptsetup>(8), B<pam>(8), B<pam.conf>(5)"
msgstr "B<pam_panic_pw>(1), B<cryptsetup>(8), B<pam>(8), B<pam.conf>(5)"
#. type: SH
#: ../src/pam_panic/man/man8/pam_panic.8:206
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:85
#, no-wrap
msgid "AUTHORS"
msgstr "AUTORES"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:210
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:90
msgid "pam_panic was written by Bandie E<lt>bandie@chaospott.deE<gt>."
msgstr "pam_panic fue escrito por Bandie E<lt>bandie@chaospott.deE<gt>."
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:211
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:92
msgid ""
"This man page has been revised by Jordy Dickinson E<lt>jordy."
"dickinson@icloud.comE<gt>."
msgstr ""
"Este página man fue traducido al español por Jordy Dickinson E<lt>jordy."
"dickinson@icloud.comE<gt> y dangered wolf E<lt>d@ngeredwolf.meE<gt>."
#. type: TH
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:9
#, no-wrap
msgid "PAM_PANIC_PW"
msgstr "PAM_PANIC_PW"
#. type: TH
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:9
#, no-wrap
msgid "2018-03-31"
msgstr "2018-03-31"
#. type: Plain text
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:25
msgid ""
"pam_panic_pw - Set and change the passwords for the B<pam_panic>(8) PAM "
"module."
msgstr ""
"pam_panic_pw - Establecer y cambiar las contraseñas para el módulo PAM de "
"B<pam_panic>(8)."
#. type: Plain text
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:30
msgid "B<pam_panic_pw>"
msgstr "B<pam_panic_pw>"
#. type: Plain text
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:35
msgid "B<pam_panic_pw> sets the passwords for the B<pam_panic>(8) PAM module."
msgstr ""
"B<pam_panic_pw> establece las contraseñas para el módulo PAM de "
"B<pam_panic>(8)."
#. type: Plain text
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:39
msgid ""
"There are two passwords: the \"key password\" and the \"panic password\". "
"The \"key password\" is used for the normal authentication whereas the "
"\"panic password\" will execute the panic function."
msgstr ""
"Hay dos contraseñas: La \"contraseña clave\" y la \"contraseña de pánico\". "
"La \"contraseña clave\" se usa para autenticación normal mientras la "
"\"contraseña de pánico\" ejecutará la función de pánico."
#. type: Plain text
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:44
msgid "0"
msgstr "0"
#. type: Plain text
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:46
msgid "Passwords set successfully."
msgstr "Contraseñas establecidas con éxito."
#. type: Plain text
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:49
msgid "1"
msgstr "1"
#. type: Plain text
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:51
msgid "Access denied."
msgstr "Acceso denegado."
#. type: Plain text
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:54
msgid "2"
msgstr "2"
#. type: Plain text
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:56
msgid "Could not open the password file."
msgstr "No se pudo abrir el archivo de contraseña."
#. type: Plain text
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:67
msgid "__PPASSFILE__"
msgstr "__PPASSFILE__"
#. type: Plain text
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:69
msgid "The password file."
msgstr "El archivo de contraseña."
#. type: Plain text
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:83
msgid "B<pam_panic>(8), B<cryptsetup>(8), B<pam.conf>(5), B<pam>(8)."
msgstr "B<pam_panic>(8), B<cryptsetup>(8), B<pam.conf>(5), B<pam>(8)."

569
po4a/fr.po Normal file
View File

@ -0,0 +1,569 @@
# French translations for pam_panic package
# Copyright (C) 2018 Bandie <bandie@chaospott.de>
# This file is distributed under the same license as the po package.
# Dashie <dashie@otter.sh>, 2018.
#
msgid ""
msgstr ""
"Project-Id-Version: po 4a\n"
"Report-Msgid-Bugs-To: Bandie <bandie@chaospott.de>\n"
"POT-Creation-Date: 2018-09-29 16:00+0200\n"
"PO-Revision-Date: 2018-09-29 16:01+0200\n"
"Last-Translator: Dashie <dashie@otter.sh>\n"
"Language-Team: French\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"X-Generator: Poedit 2.1.1\n"
#. type: TH
#: ../src/pam_panic/man/man8/pam_panic.8:9
#, no-wrap
msgid "PAM_PANIC"
msgstr "PAM_PANIC"
#. type: TH
#: ../src/pam_panic/man/man8/pam_panic.8:9
#, no-wrap
msgid "2018-03-26"
msgstr "2018-03-26"
#. type: TH
#: ../src/pam_panic/man/man8/pam_panic.8:9
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:9
#, no-wrap
msgid "PAM Panic Manual"
msgstr "Manuel de PAM Panic"
#. -----------------------------------------------------------------
#. * MAIN CONTENT STARTS HERE *
#. -----------------------------------------------------------------
#. type: SH
#: ../src/pam_panic/man/man8/pam_panic.8:24
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:23
#, no-wrap
msgid "NAME"
msgstr "NOM"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:26
msgid ""
"pam_panic - PAM module with panic function to protect sensitive data in "
"emergency situations"
msgstr ""
"pam_panic - Module PAM pour un contrôle d'accès via l'utilisation d'un "
"périphérique amovible (avec une fonction panique)"
#. type: SH
#: ../src/pam_panic/man/man8/pam_panic.8:28
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:27
#, no-wrap
msgid "SYNOPSIS"
msgstr "SYNOPSIS"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:31
msgid ""
"B<pam_panic.so> [password] [allow=I<UUID(GPT)>] [reject=I<UUID(GPT)>] "
"[reboot] [poweroff] [serious=I<UUID>]"
msgstr ""
"B<pam_panic.so> [password] [allow=I<UUID(GPT)>] [reject=I<UUID(GPT)>] "
"[reboot] [poweroff] [serious=I<UUID>]"
#. type: SH
#: ../src/pam_panic/man/man8/pam_panic.8:33
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:32
#, no-wrap
msgid "DESCRIPTION"
msgstr "DESCRIPTION"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:36
msgid ""
"The pam_panic PAM module protects sensitive data and provides a panic "
"function for emergency situations."
msgstr ""
"Le module PAM pam_panic protège les données sensibles et fournit une "
"fonction de panique pour les situations d'urgence."
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:38
msgid "There are two possible options in how to use this PAM module:"
msgstr "Il-y-à deux options possibles pour utiliser ce module PAM:"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:41
msgid "First possible option:"
msgstr "Première option possible:"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:44
msgid ""
"There are two removable media which work as keys: the auth key and the panic "
"key. The auth key will let you pass to the password prompt whereas the "
"panic key will call the I<panic function>."
msgstr ""
"Il y à deux périphériques amovibles qui fonctionnent comme clé : la clé "
"d'authentification et la clé de panique. La clé d'authentification permet de "
"passer à la demande de mot de passe alors que la clé de panique appellera la "
"I<fonction de panique>."
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:47
msgid "See options B<allow> and B<reject>."
msgstr "Voir l'options B<allow> et B<reject>."
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:50
msgid "Second possible option:"
msgstr "Seconde option possible:"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:52
msgid ""
"There are two passwords: the key password and the panic password. The key "
"password will let you pass to the original password prompt whereas the panic "
"password will call the I<panic function>."
msgstr ""
"Il-y-à deux mots de passe: le mot de pass de clé et celui de panique. Le mot "
"de passe de clé permet de passer a la demande de mot de passe alors que "
"celui de panique appellera la I<fonction de panique>."
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:55
msgid "See option B<password>."
msgstr "Voir l'option B<password>."
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:60
msgid "The panic function:"
msgstr "La fonction de panique:"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:62
msgid ""
"The behaviour of this function is defined through the arguments B<reboot>, "
"B<poweroff> and/or B<serious>. See the B<OPTIONS> section for details."
msgstr ""
"Le comportement de cette fonction est défini via les arguments B<reboot>, "
"B<poweroff> et/ou B<serious>. Voir la section B<OPTIONS> pour plus de "
"détails."
#. type: SH
#: ../src/pam_panic/man/man8/pam_panic.8:65
#, no-wrap
msgid "OPTIONS"
msgstr "OPTIONS"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:68
msgid "B<password>"
msgstr "B<password>"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:71
msgid ""
"Activates the password function having a panic and key password. If the "
"options B<allow> and B<reject> are provided this option will be ignored."
msgstr ""
"Active la fonction de mot de passe avec un mot de passe de clé et de "
"panique. Si les options options B<allow> et B<reject> sont fournies, cette "
"option sera ignorée."
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:74
msgid "These passwords can be set with the B<pam_panic_pw>(1) command."
msgstr ""
"Ces mots de passe peuvent être définis via le programme B<pam_panic_pw>(1)."
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:79
msgid "B<allow=>I<UUID(GPT)>"
msgstr "B<allow=>I<UUID(GPT)>"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:81
msgid "The UUID of the device to be used for authentication (the auth key)."
msgstr ""
"L'UUID du péripherique à utiliser pour l'authentification (la clé "
"d'authentification)."
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:86
#: ../src/pam_panic/man/man8/pam_panic.8:99
msgid ""
"The device must be GPT-formatted and contain at least one partition. The "
"UUID of a GPT-formatted device looks like \"12345678-9ABC-"
"DEF0-1234-56789ABCDEF0\"."
msgstr ""
"Le périphérique doit être formatté en GPT avec au moins une partition. "
"L'UUID du périphérique formatté en GPT ressemble à \"12345678-9ABC-"
"DEF0-1234-56789ABCDEF0\"."
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:88
#: ../src/pam_panic/man/man8/pam_panic.8:101
msgid "See B<HOW TO DETERMINE MY UUIDS> for details."
msgstr "Lisez COMMENT DÉTERMINER MES UUIDS pour plus de détails."
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:92
msgid "B<reject=>I<UUID(GPT)>"
msgstr "B<reject=>I<UUID(GPT)>"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:94
msgid ""
"The UUID of the device to be used in emergencies. The presence of this "
"device will trigger B<reboot>, B<poweroff> and/or the panic function, "
"depending on whether B<reboot>, B<poweroff>, and/or B<serious> are specified."
msgstr ""
"L'UUID du périphérique à utiliser en cas d'urgence. La présence de ce "
"périphérique entrainera un B<reboot>, B<poweroff> et/ou la fonction de "
"panique, selon si B<reboot>, B<poweroff>, et/ou B<serious> sont spécifiés."
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:105
msgid "B<reboot> (recommended)"
msgstr "B<reboot> (recommendé)"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:107
msgid ""
"Indicates that the system should reboot when the I<panic function> is "
"triggered."
msgstr ""
"Indique que le système doit redémarrer lorsque la I<fonction panique> est "
"déclenchée."
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:110
msgid "This option is recommended."
msgstr "Cette option est recommandée."
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:113
msgid "If B<poweroff> is also specified, B<reboot> will be ignored."
msgstr "Si B<poweroff> est aussi spécifié, B<reboot> sera ignoré."
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:117
msgid "B<poweroff>"
msgstr "B<poweroff>"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:120
msgid ""
"Indicates that the system should shut down when the I<panic function> is "
"triggered. This option is discouraged for security reasons."
msgstr ""
"Indique que le système doit séteindre lorsque la I<fonction de panique> est "
"déclenchée. Cette option est déconseillée pour des raisons de sécurité."
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:124
msgid "B<serious=>I<UUID>"
msgstr "B<serious=>I<UUID>"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:126
msgid ""
"The UUID of the device containing the LUKS header to erase when the I<panic "
"function> is triggered. Erasing the LUKS header will render the data "
"unreadable."
msgstr ""
"L'UUID du périphérique contenant l'en-tête LUKS à effacer lorsque la "
"I<fonction de panique> est déclenchée. Effacer l'en-tête LUKS rendra les "
"données illisibles."
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:129
msgid ""
"The internal command which will be executed is \"B<cryptsetup luksErase "
"[UUID]>\"."
msgstr ""
"La commande interne qui sera exécutée est la suivante: \"B<cryptsetup "
"luksErase [UUID]>\"."
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:132
msgid ""
"NOTE: You should make a backup of the LUKS header before using this function."
msgstr ""
"NOTE: Vous devriez faire une sauvegarde de l'entête LUKS avant d'utiliser "
"cette fonction."
#. type: SH
#: ../src/pam_panic/man/man8/pam_panic.8:136
#, no-wrap
msgid "USAGE"
msgstr "UTILISATION"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:139
msgid ""
"To activate the module you have to configure PAM. See B<pam.conf(5)> for "
"details."
msgstr ""
"Pour activer ce module vous devez configurer PAM. Lisez B<pam.conf(5)> pour "
"plus de détails."
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:141
msgid ""
"In general, you will want to add the following to the top of a PAM "
"configuration file:"
msgstr ""
"En général, vous voudrez ajouter ce qui suit au début du fichier de "
"configuration PAM:"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:144
msgid ""
"auth requisite __PAMPANICSO__ auth=E<lt>UUIDE<gt> reject=E<lt>UUIDE<gt> "
"reboot serious=E<lt>UUIDE<gt>"
msgstr ""
"auth requisite __PAMPANICSO__ auth=E<lt>UUIDE<gt> reject=E<lt>UUIDE<gt> "
"reboot serious=E<lt>UUIDE<gt>"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:146
#: ../src/pam_panic/man/man8/pam_panic.8:152
msgid "account requisite __PAMPANICSO__"
msgstr "account requisite __PAMPANICSO__"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:148
msgid "Or:"
msgstr "Ou:"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:150
msgid "auth requisite __PAMPANICSO__ password reboot serious=E<lt>UUIDE<gt>"
msgstr "auth requisite __PAMPANICSO__ password reboot serious=E<lt>UUIDE<gt>"
#. type: SH
#: ../src/pam_panic/man/man8/pam_panic.8:156
#, no-wrap
msgid "HOW TO DETERMINE MY UUIDS"
msgstr "COMMENT DÉTERMINER MES UUIDS"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:160
msgid ""
"You will find your UUIDs in I</dev/disk/by-partuuid>. You might want to "
"execute \"B<ls -l /dev/disk/by-partuuid/>\" in your favourite shell to find "
"out which UUID is which device."
msgstr ""
"Vous trouverz vos UUIDs dans /dev/disk/by-partuuid. Vous voudriez peut-être "
"executer \"ls -l /dev/disk/by-partuuid/\" dans votre shell favoris pour "
"trouver quel UUID correspond à quel périphérique."
#. type: SH
#: ../src/pam_panic/man/man8/pam_panic.8:162
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:41
#, no-wrap
msgid "RETURN VALUES"
msgstr "VALEURS DE RETOUR"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:165
msgid "PAM_SUCCESS"
msgstr "PAM_SUCCESS"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:167
msgid "Access was granted."
msgstr "Accès autorisé."
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:170
msgid "PAM_IGNORE"
msgstr "PAM_IGNORE"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:172
msgid "An error has occured. The module will be ignored."
msgstr "Une erreur est survenue. Le module sera ignoré."
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:175
msgid "PAM_MAXTRIES"
msgstr "PAM_MAXTRIES"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:177
msgid "The removable media was not detected."
msgstr "Le péripherique amovible n'a pas été détécté."
#. type: SH
#: ../src/pam_panic/man/man8/pam_panic.8:180
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:59
#, no-wrap
msgid "FILES"
msgstr "FICHIERS"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:183
msgid "__PAMPANICSO__"
msgstr "__PAMPANICSO__"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:185
msgid "This PAM module, which does everything of this above."
msgstr "Ce module PAM."
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:188
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:62
msgid "__PAMPANICPW__"
msgstr "__PAMPANICPW__"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:190
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:64
msgid "Program to set and change the passwords."
msgstr "Programme pour configurer les mots de passe."
#. type: SH
#: ../src/pam_panic/man/man8/pam_panic.8:193
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:72
#, no-wrap
msgid "BUGS"
msgstr "BUGS"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:196
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:75
msgid ""
"Please report bugs and send pull requests to E<lt>https://github.com/"
"pampanic/pam_panicE<gt>."
msgstr ""
"Veuillez reporter les bugs ou envoyer une demande de correction à "
"E<lt>https://github.com/pampanic/pam_panicE<gt>."
#. type: SH
#: ../src/pam_panic/man/man8/pam_panic.8:198
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:77
#, no-wrap
msgid "SEE ALSO"
msgstr "VOIR AUSSI"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:204
msgid "B<pam_panic_pw>(1), B<cryptsetup>(8), B<pam>(8), B<pam.conf>(5)"
msgstr "B<pam_panic_pw>(1), B<cryptsetup>(8), B<pam>(8), B<pam.conf>(5)"
#. type: SH
#: ../src/pam_panic/man/man8/pam_panic.8:206
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:85
#, no-wrap
msgid "AUTHORS"
msgstr "AUTEURS"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:210
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:90
msgid "pam_panic was written by Bandie E<lt>bandie@chaospott.deE<gt>."
msgstr "pam_panic à été écris par Bandie E<lt>bandie@chaospott.deE<gt>."
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:211
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:92
msgid ""
"This man page has been revised by Jordy Dickinson E<lt>jordy."
"dickinson@icloud.comE<gt>."
msgstr ""
"La version Française à été traduite par Dashie E<lt>dashie@otter.shE<gt>."
#. type: TH
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:9
#, no-wrap
msgid "PAM_PANIC_PW"
msgstr "PAM_PANIC_PW"
#. type: TH
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:9
#, no-wrap
msgid "2018-03-31"
msgstr "2018-03-31"
#. type: Plain text
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:25
msgid ""
"pam_panic_pw - Set and change the passwords for the B<pam_panic>(8) PAM "
"module."
msgstr ""
"pam_panic_pw - Configurer et changer les mots de passe pour le module PAM "
"B<pam_panic>(8)."
#. type: Plain text
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:30
msgid "B<pam_panic_pw>"
msgstr "B<pam_panic_pw>"
#. type: Plain text
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:35
msgid "B<pam_panic_pw> sets the passwords for the B<pam_panic>(8) PAM module."
msgstr ""
"B<pam_panic_pw> configure les mots de passe pour le module PAM "
"B<pam_panic>(8)."
#. type: Plain text
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:39
msgid ""
"There are two passwords: the \"key password\" and the \"panic password\". "
"The \"key password\" is used for the normal authentication whereas the "
"\"panic password\" will execute the panic function."
msgstr ""
"Il-y-à deux mots de passe: le \"mot de passe de clé\" et le \"mot de passe "
"de panique\". Le \"mot de passe de clé\" est utilisé pour une "
"authentification normale alors que le \"mot de passe de panique\" executera "
"la fonction de panique."
#. type: Plain text
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:44
msgid "0"
msgstr "0"
#. type: Plain text
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:46
msgid "Passwords set successfully."
msgstr "Mots de passe configurés avec succès."
#. type: Plain text
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:49
msgid "1"
msgstr "1"
#. type: Plain text
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:51
msgid "Access denied."
msgstr "Accès refusé."
#. type: Plain text
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:54
msgid "2"
msgstr "2"
#. type: Plain text
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:56
msgid "Could not open the password file."
msgstr "Impossible d'ouvrir le fichier de mots de passe."
#. type: Plain text
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:67
msgid "__PPASSFILE__"
msgstr "__PASSFILE__"
#. type: Plain text
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:69
msgid "The password file."
msgstr "Le fichier de mots de passe."
#. type: Plain text
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:83
msgid "B<pam_panic>(8), B<cryptsetup>(8), B<pam.conf>(5), B<pam>(8)."
msgstr "B<pam_panic>(8), B<cryptsetup>(8), B<pam.conf>(5), B<pam>(8)."

557
po4a/ja.po Normal file
View File

@ -0,0 +1,557 @@
# SOME DESCRIPTIVE TITLE
# Copyright (C) YEAR Bandie <bandie@chaospott.de>
# This file is distributed under the same license as the pam_panic package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
msgid ""
msgstr ""
"Project-Id-Version: pam_panic 0.2.0\n"
"Report-Msgid-Bugs-To: Bandie <bandie@chaospott.de>\n"
"POT-Creation-Date: 2018-09-29 16:00+0200\n"
"PO-Revision-Date: 2018-09-29 16:41+0200\n"
"Last-Translator: \n"
"Language-Team: \n"
"Language: ja\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 2.1.1\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#. type: TH
#: ../src/pam_panic/man/man8/pam_panic.8:9
#, no-wrap
msgid "PAM_PANIC"
msgstr "PAM_PANIC"
#. type: TH
#: ../src/pam_panic/man/man8/pam_panic.8:9
#, no-wrap
msgid "2018-03-26"
msgstr "2018-05-31"
#. type: TH
#: ../src/pam_panic/man/man8/pam_panic.8:9
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:9
#, no-wrap
msgid "PAM Panic Manual"
msgstr "PAM Panic マニュアル"
#. -----------------------------------------------------------------
#. * MAIN CONTENT STARTS HERE *
#. -----------------------------------------------------------------
#. type: SH
#: ../src/pam_panic/man/man8/pam_panic.8:24
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:23
#, no-wrap
msgid "NAME"
msgstr "名前"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:26
msgid ""
"pam_panic - PAM module with panic function to protect sensitive data in "
"emergency situations"
msgstr "pam_panic - 緊急時に機密データを保護するPAMモジュール"
#. type: SH
#: ../src/pam_panic/man/man8/pam_panic.8:28
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:27
#, no-wrap
msgid "SYNOPSIS"
msgstr "概要"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:31
msgid ""
"B<pam_panic.so> [password] [allow=I<UUID(GPT)>] [reject=I<UUID(GPT)>] "
"[reboot] [poweroff] [serious=I<UUID>]"
msgstr ""
"B<pam_panic.so> [password] [allow=I<UUID(GPT)>] [reject=I<UUID(GPT)>] "
"[reboot] [poweroff] [serious=I<UUID>]"
#. type: SH
#: ../src/pam_panic/man/man8/pam_panic.8:33
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:32
#, no-wrap
msgid "DESCRIPTION"
msgstr "説明"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:36
msgid ""
"The pam_panic PAM module protects sensitive data and provides a panic "
"function for emergency situations."
msgstr ""
"pam_panic PAMモジュールは、緊急時にデータを保護するためのパニック機能を実装し"
"ます。"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:38
msgid "There are two possible options in how to use this PAM module:"
msgstr "このPAMモジュールを使用するには、次の2つの方法があります。"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:41
msgid "First possible option:"
msgstr "方法1:"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:44
msgid ""
"There are two removable media which work as keys: the auth key and the panic "
"key. The auth key will let you pass to the password prompt whereas the "
"panic key will call the I<panic function>."
msgstr ""
"認証キーとパニックキーの2つのデバイスをキーとして使用します。\n"
"認証キーではパスワード認証をスキップし、パニックキーではパニック機能が起動し"
"ます。"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:47
msgid "See options B<allow> and B<reject>."
msgstr "オプションB<allow>とB<reject>を参照してください。"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:50
msgid "Second possible option:"
msgstr "方法2:"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:52
msgid ""
"There are two passwords: the key password and the panic password. The key "
"password will let you pass to the original password prompt whereas the panic "
"password will call the I<panic function>."
msgstr ""
"パスワードを2つ用意します。認証パスワードとパニックパスワードです。認証パス"
"ワードでは通常通り認証が行われ、パニックパスワードではパニック機能が起動しま"
"す。"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:55
msgid "See option B<password>."
msgstr "オプションB<password>を参照してください。"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:60
msgid "The panic function:"
msgstr "パニック機能:"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:62
msgid ""
"The behaviour of this function is defined through the arguments B<reboot>, "
"B<poweroff> and/or B<serious>. See the B<OPTIONS> section for details."
msgstr ""
"この機能の動作は次の引数によって指定されます: B<reboot>, B<poweroff> または "
"B<serious> 。詳細については、 B<オプション> セクションを確認してください。"
#. type: SH
#: ../src/pam_panic/man/man8/pam_panic.8:65
#, no-wrap
msgid "OPTIONS"
msgstr "オプション"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:68
msgid "B<password>"
msgstr "B<password>"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:71
msgid ""
"Activates the password function having a panic and key password. If the "
"options B<allow> and B<reject> are provided this option will be ignored."
msgstr ""
"パスワードを認証に使用します。 引数に B<allow> と B<reject> が指定されている"
"場合、このオプションは無視されます。"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:74
msgid "These passwords can be set with the B<pam_panic_pw>(1) command."
msgstr "パスワードは B<pam_panic_pw>(1) コマンドによって指定できます。"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:79
msgid "B<allow=>I<UUID(GPT)>"
msgstr "B<allow=>I<UUID(GPT)>"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:81
msgid "The UUID of the device to be used for authentication (the auth key)."
msgstr "デバイスのUUIDを認証に使用します。"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:86
#: ../src/pam_panic/man/man8/pam_panic.8:99
msgid ""
"The device must be GPT-formatted and contain at least one partition. The "
"UUID of a GPT-formatted device looks like \"12345678-9ABC-"
"DEF0-1234-56789ABCDEF0\"."
msgstr ""
"デバイスはGPTでフォーマットされている必要があり、最低1つのパーティションを含"
"んでいる\n"
"必要があります。GPTでフォーマットされたデバイスのUUIDは次のようになります: "
"\"12345678-9ABC-DEF0-1234-56789ABCDEF0\"。"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:88
#: ../src/pam_panic/man/man8/pam_panic.8:101
msgid "See B<HOW TO DETERMINE MY UUIDS> for details."
msgstr "詳細については B<UUIDを調べる方法> を確認してください。"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:92
msgid "B<reject=>I<UUID(GPT)>"
msgstr "B<reject=>I<UUID(GPT)>"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:94
msgid ""
"The UUID of the device to be used in emergencies. The presence of this "
"device will trigger B<reboot>, B<poweroff> and/or the panic function, "
"depending on whether B<reboot>, B<poweroff>, and/or B<serious> are specified."
msgstr ""
"緊急時に使用するデバイスのUUIDを指定します。このデバイスが存在する場合、"
"B<reboot>, B<poweroff> またはパニック機能が発動します。 パニック機能は "
"B<reboot>, B<poweroff>, B<serious> のうち、いずれか1つ以上で指定されます。"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:105
msgid "B<reboot> (recommended)"
msgstr "B<reboot> (推奨)"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:107
msgid ""
"Indicates that the system should reboot when the I<panic function> is "
"triggered."
msgstr "I<パニック機能>が起動したときにシステムが再起動することを示します。"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:110
msgid "This option is recommended."
msgstr "このオプションが推奨されます。"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:113
msgid "If B<poweroff> is also specified, B<reboot> will be ignored."
msgstr "B<poweroff> が同時に指定されている場合、 B<reboot> は無視されます。"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:117
msgid "B<poweroff>"
msgstr "B<poweroff>"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:120
msgid ""
"Indicates that the system should shut down when the I<panic function> is "
"triggered. This option is discouraged for security reasons."
msgstr ""
"I<パニック機能>が起動したときにシステムがシャットダウンすることを示します。 "
"セキュリティ上の理由から、このオプションはお勧めできません。"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:124
msgid "B<serious=>I<UUID>"
msgstr "B<serious=>I<UUID>"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:126
msgid ""
"The UUID of the device containing the LUKS header to erase when the I<panic "
"function> is triggered. Erasing the LUKS header will render the data "
"unreadable."
msgstr ""
"LUKSヘッダーを消去するための鍵となるデバイスのUUIDを指定しますLUKSヘッダーを"
"消去した場合、データは復元できなくなります。"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:129
msgid ""
"The internal command which will be executed is \"B<cryptsetup luksErase "
"[UUID]>\"."
msgstr "実行される内部コマンドは \"B<cryptsetup luksErase [UUID]>\"です。"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:132
msgid ""
"NOTE: You should make a backup of the LUKS header before using this function."
msgstr ""
"注意: この機能を使用する前に、LUKSヘッダーをバックアップしておくことをおすす"
"めします。"
#. type: SH
#: ../src/pam_panic/man/man8/pam_panic.8:136
#, no-wrap
msgid "USAGE"
msgstr "使用法"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:139
msgid ""
"To activate the module you have to configure PAM. See B<pam.conf(5)> for "
"details."
msgstr ""
"ジュールを使用するためには、PAMを設定する必要があります。詳細については、\n"
"B<pam.conf(5)> を参照してください。"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:141
msgid ""
"In general, you will want to add the following to the top of a PAM "
"configuration file:"
msgstr "多くの場合、PAM設定ファイルの先頭に次の内容を設定するばあいです。"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:144
msgid ""
"auth requisite __PAMPANICSO__ auth=E<lt>UUIDE<gt> reject=E<lt>UUIDE<gt> "
"reboot serious=E<lt>UUIDE<gt>"
msgstr ""
"auth requisite __PAMPANICSO__ auth=E<lt>UUIDE<gt> reject=E<lt>UUIDE<gt> "
"reboot serious=E<lt>UUIDE<gt>"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:146
#: ../src/pam_panic/man/man8/pam_panic.8:152
msgid "account requisite __PAMPANICSO__"
msgstr "account requisite __PAMPANICSO__"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:148
msgid "Or:"
msgstr "または:"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:150
msgid "auth requisite __PAMPANICSO__ password reboot serious=E<lt>UUIDE<gt>"
msgstr "auth requisite __PAMPANICSO__ password reboot serious=E<lt>UUIDE<gt>"
#. type: SH
#: ../src/pam_panic/man/man8/pam_panic.8:156
#, no-wrap
msgid "HOW TO DETERMINE MY UUIDS"
msgstr "UUIDを調べる方法"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:160
msgid ""
"You will find your UUIDs in I</dev/disk/by-partuuid>. You might want to "
"execute \"B<ls -l /dev/disk/by-partuuid/>\" in your favourite shell to find "
"out which UUID is which device."
msgstr ""
"/dev/disk/by-partuuid でUUIDを調べることができます。 \"ls -l /dev/disk/by-"
"partuuid/\"\n"
"を任意のシェルで実行して、どのデバイスがどのUUIDかを調べる必要があるかもしれ"
"ません。"
#. type: SH
#: ../src/pam_panic/man/man8/pam_panic.8:162
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:41
#, no-wrap
msgid "RETURN VALUES"
msgstr "返り値"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:165
msgid "PAM_SUCCESS"
msgstr "PAM_SUCCESS"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:167
msgid "Access was granted."
msgstr "アクセスは許可されました。"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:170
msgid "PAM_IGNORE"
msgstr "PAM_IGNORE"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:172
msgid "An error has occured. The module will be ignored."
msgstr "エラーが発生しました。モジュールは無視されます。"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:175
msgid "PAM_MAXTRIES"
msgstr "PAM_MAXTRIES"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:177
msgid "The removable media was not detected."
msgstr "リムーバブルメディアが検知されませんでした。"
#. type: SH
#: ../src/pam_panic/man/man8/pam_panic.8:180
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:59
#, no-wrap
msgid "FILES"
msgstr "ファイル"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:183
msgid "__PAMPANICSO__"
msgstr "__PAMPANICSO__"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:185
msgid "This PAM module, which does everything of this above."
msgstr "このPAMモジュールです。"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:188
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:62
msgid "__PAMPANICPW__"
msgstr "__PAMPANICPW__"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:190
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:64
msgid "Program to set and change the passwords."
msgstr "パスワードの設定および変更を行うためのプログラムです。"
#. type: SH
#: ../src/pam_panic/man/man8/pam_panic.8:193
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:72
#, no-wrap
msgid "BUGS"
msgstr "バグ報告"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:196
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:75
msgid ""
"Please report bugs and send pull requests to E<lt>https://github.com/"
"pampanic/pam_panicE<gt>."
msgstr ""
"E<lt>https://github.com/pampanic/pam_panicE<gt> で、バグの報告やプルリクエス"
"トを行ってください。"
#. type: SH
#: ../src/pam_panic/man/man8/pam_panic.8:198
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:77
#, no-wrap
msgid "SEE ALSO"
msgstr "関連項目"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:204
msgid "B<pam_panic_pw>(1), B<cryptsetup>(8), B<pam>(8), B<pam.conf>(5)"
msgstr "B<pam_panic_pw>(1), B<cryptsetup>(8), B<pam>(8), B<pam.conf>(5)"
#. type: SH
#: ../src/pam_panic/man/man8/pam_panic.8:206
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:85
#, no-wrap
msgid "AUTHORS"
msgstr "著者"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:210
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:90
msgid "pam_panic was written by Bandie E<lt>bandie@chaospott.deE<gt>."
msgstr ""
"pam_panic は Bandie E<lt>bandie@chaospott.deE<gt> によって作成されました。"
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:211
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:92
msgid ""
"This man page has been revised by Jordy Dickinson E<lt>jordy."
"dickinson@icloud.comE<gt>."
msgstr ""
"この翻訳は Chromium Neptune E<lt>chromium@neplanet.comE<gt> によって作成され"
"ています。"
#. type: TH
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:9
#, no-wrap
msgid "PAM_PANIC_PW"
msgstr "PAM_PANIC_PW"
#. type: TH
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:9
#, no-wrap
msgid "2018-03-31"
msgstr "2018-05-31"
#. type: Plain text
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:25
msgid ""
"pam_panic_pw - Set and change the passwords for the B<pam_panic>(8) PAM "
"module."
msgstr ""
"pam_panic_pw - B<pam_panic>(8) PAM モジュールで使用するパスワードの設定と変更"
"を行う。"
#. type: Plain text
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:30
msgid "B<pam_panic_pw>"
msgstr "B<pam_panic_pw>"
#. type: Plain text
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:35
msgid "B<pam_panic_pw> sets the passwords for the B<pam_panic>(8) PAM module."
msgstr ""
"B<pam_panic_pw> は B<pam_panic>(8) PAM\n"
" モジュールで使用するパスワードの設定および変更を行います。"
#. type: Plain text
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:39
msgid ""
"There are two passwords: the \"key password\" and the \"panic password\". "
"The \"key password\" is used for the normal authentication whereas the "
"\"panic password\" will execute the panic function."
msgstr ""
"認証パスワードとパニックパスワードの2つのパスワードを用意します。\n"
"認証パスワードは、通常の認証に使用します。\n"
"パニックパスワードは、パニック機能の発動に使用します。"
#. type: Plain text
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:44
msgid "0"
msgstr "0"
#. type: Plain text
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:46
msgid "Passwords set successfully."
msgstr "パスワードは正しく設定されました。"
#. type: Plain text
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:49
msgid "1"
msgstr "1"
#. type: Plain text
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:51
msgid "Access denied."
msgstr "アクセスが拒否されました。"
#. type: Plain text
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:54
msgid "2"
msgstr "2"
#. type: Plain text
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:56
msgid "Could not open the password file."
msgstr "パスワードファイルを開けません。"
#. type: Plain text
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:67
msgid "__PPASSFILE__"
msgstr "__PPASSFILE__"
#. type: Plain text
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:69
msgid "The password file."
msgstr "パスワードファイルです。"
#. type: Plain text
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:83
msgid "B<pam_panic>(8), B<cryptsetup>(8), B<pam.conf>(5), B<pam>(8)."
msgstr "B<pam_panic>(8), B<cryptsetup>(8), B<pam.conf>(5), B<pam>(8)."

494
po4a/pam_panic.pot Normal file
View File

@ -0,0 +1,494 @@
# SOME DESCRIPTIVE TITLE
# Copyright (C) YEAR Bandie <bandie@chaospott.de>
# This file is distributed under the same license as the pam_panic package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: pam_panic 0.2.0\n"
"Report-Msgid-Bugs-To: Bandie <bandie@chaospott.de>\n"
"POT-Creation-Date: 2018-09-29 16:00+0200\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"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n"
#. type: TH
#: ../src/pam_panic/man/man8/pam_panic.8:9
#, no-wrap
msgid "PAM_PANIC"
msgstr ""
#. type: TH
#: ../src/pam_panic/man/man8/pam_panic.8:9
#, no-wrap
msgid "2018-03-26"
msgstr ""
#. type: TH
#: ../src/pam_panic/man/man8/pam_panic.8:9 ../src/pam_panic_pw/man/man1/pam_panic_pw.1:9
#, no-wrap
msgid "PAM Panic Manual"
msgstr ""
#. -----------------------------------------------------------------
#. * MAIN CONTENT STARTS HERE *
#. -----------------------------------------------------------------
#. type: SH
#: ../src/pam_panic/man/man8/pam_panic.8:24 ../src/pam_panic_pw/man/man1/pam_panic_pw.1:23
#, no-wrap
msgid "NAME"
msgstr ""
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:26
msgid ""
"pam_panic - PAM module with panic function to protect sensitive data in "
"emergency situations"
msgstr ""
#. type: SH
#: ../src/pam_panic/man/man8/pam_panic.8:28 ../src/pam_panic_pw/man/man1/pam_panic_pw.1:27
#, no-wrap
msgid "SYNOPSIS"
msgstr ""
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:31
msgid ""
"B<pam_panic.so> [password] [allow=I<UUID(GPT)>] [reject=I<UUID(GPT)>] "
"[reboot] [poweroff] [serious=I<UUID>]"
msgstr ""
#. type: SH
#: ../src/pam_panic/man/man8/pam_panic.8:33 ../src/pam_panic_pw/man/man1/pam_panic_pw.1:32
#, no-wrap
msgid "DESCRIPTION"
msgstr ""
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:36
msgid ""
"The pam_panic PAM module protects sensitive data and provides a panic "
"function for emergency situations."
msgstr ""
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:38
msgid "There are two possible options in how to use this PAM module:"
msgstr ""
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:41
msgid "First possible option:"
msgstr ""
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:44
msgid ""
"There are two removable media which work as keys: the auth key and the panic "
"key. The auth key will let you pass to the password prompt whereas the "
"panic key will call the I<panic function>."
msgstr ""
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:47
msgid "See options B<allow> and B<reject>."
msgstr ""
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:50
msgid "Second possible option:"
msgstr ""
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:52
msgid ""
"There are two passwords: the key password and the panic password. The key "
"password will let you pass to the original password prompt whereas the panic "
"password will call the I<panic function>."
msgstr ""
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:55
msgid "See option B<password>."
msgstr ""
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:60
msgid "The panic function:"
msgstr ""
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:62
msgid ""
"The behaviour of this function is defined through the arguments B<reboot>, "
"B<poweroff> and/or B<serious>. See the B<OPTIONS> section for details."
msgstr ""
#. type: SH
#: ../src/pam_panic/man/man8/pam_panic.8:65
#, no-wrap
msgid "OPTIONS"
msgstr ""
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:68
msgid "B<password>"
msgstr ""
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:71
msgid ""
"Activates the password function having a panic and key password. If the "
"options B<allow> and B<reject> are provided this option will be ignored."
msgstr ""
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:74
msgid "These passwords can be set with the B<pam_panic_pw>(1) command."
msgstr ""
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:79
msgid "B<allow=>I<UUID(GPT)>"
msgstr ""
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:81
msgid "The UUID of the device to be used for authentication (the auth key)."
msgstr ""
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:86 ../src/pam_panic/man/man8/pam_panic.8:99
msgid ""
"The device must be GPT-formatted and contain at least one partition. The "
"UUID of a GPT-formatted device looks like "
"\"12345678-9ABC-DEF0-1234-56789ABCDEF0\"."
msgstr ""
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:88 ../src/pam_panic/man/man8/pam_panic.8:101
msgid "See B<HOW TO DETERMINE MY UUIDS> for details."
msgstr ""
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:92
msgid "B<reject=>I<UUID(GPT)>"
msgstr ""
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:94
msgid ""
"The UUID of the device to be used in emergencies. The presence of this "
"device will trigger B<reboot>, B<poweroff> and/or the panic function, "
"depending on whether B<reboot>, B<poweroff>, and/or B<serious> are "
"specified."
msgstr ""
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:105
msgid "B<reboot> (recommended)"
msgstr ""
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:107
msgid ""
"Indicates that the system should reboot when the I<panic function> is "
"triggered."
msgstr ""
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:110
msgid "This option is recommended."
msgstr ""
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:113
msgid "If B<poweroff> is also specified, B<reboot> will be ignored."
msgstr ""
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:117
msgid "B<poweroff>"
msgstr ""
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:120
msgid ""
"Indicates that the system should shut down when the I<panic function> is "
"triggered. This option is discouraged for security reasons."
msgstr ""
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:124
msgid "B<serious=>I<UUID>"
msgstr ""
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:126
msgid ""
"The UUID of the device containing the LUKS header to erase when the I<panic "
"function> is triggered. Erasing the LUKS header will render the data "
"unreadable."
msgstr ""
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:129
msgid ""
"The internal command which will be executed is \"B<cryptsetup luksErase "
"[UUID]>\"."
msgstr ""
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:132
msgid ""
"NOTE: You should make a backup of the LUKS header before using this "
"function."
msgstr ""
#. type: SH
#: ../src/pam_panic/man/man8/pam_panic.8:136
#, no-wrap
msgid "USAGE"
msgstr ""
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:139
msgid ""
"To activate the module you have to configure PAM. See B<pam.conf(5)> for "
"details."
msgstr ""
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:141
msgid ""
"In general, you will want to add the following to the top of a PAM "
"configuration file:"
msgstr ""
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:144
msgid ""
"auth requisite __PAMPANICSO__ auth=E<lt>UUIDE<gt> reject=E<lt>UUIDE<gt> "
"reboot serious=E<lt>UUIDE<gt>"
msgstr ""
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:146 ../src/pam_panic/man/man8/pam_panic.8:152
msgid "account requisite __PAMPANICSO__"
msgstr ""
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:148
msgid "Or:"
msgstr ""
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:150
msgid "auth requisite __PAMPANICSO__ password reboot serious=E<lt>UUIDE<gt>"
msgstr ""
#. type: SH
#: ../src/pam_panic/man/man8/pam_panic.8:156
#, no-wrap
msgid "HOW TO DETERMINE MY UUIDS"
msgstr ""
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:160
msgid ""
"You will find your UUIDs in I</dev/disk/by-partuuid>. You might want to "
"execute \"B<ls -l /dev/disk/by-partuuid/>\" in your favourite shell to find "
"out which UUID is which device."
msgstr ""
#. type: SH
#: ../src/pam_panic/man/man8/pam_panic.8:162 ../src/pam_panic_pw/man/man1/pam_panic_pw.1:41
#, no-wrap
msgid "RETURN VALUES"
msgstr ""
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:165
msgid "PAM_SUCCESS"
msgstr ""
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:167
msgid "Access was granted."
msgstr ""
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:170
msgid "PAM_IGNORE"
msgstr ""
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:172
msgid "An error has occured. The module will be ignored."
msgstr ""
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:175
msgid "PAM_MAXTRIES"
msgstr ""
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:177
msgid "The removable media was not detected."
msgstr ""
#. type: SH
#: ../src/pam_panic/man/man8/pam_panic.8:180 ../src/pam_panic_pw/man/man1/pam_panic_pw.1:59
#, no-wrap
msgid "FILES"
msgstr ""
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:183
msgid "__PAMPANICSO__"
msgstr ""
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:185
msgid "This PAM module, which does everything of this above."
msgstr ""
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:188 ../src/pam_panic_pw/man/man1/pam_panic_pw.1:62
msgid "__PAMPANICPW__"
msgstr ""
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:190 ../src/pam_panic_pw/man/man1/pam_panic_pw.1:64
msgid "Program to set and change the passwords."
msgstr ""
#. type: SH
#: ../src/pam_panic/man/man8/pam_panic.8:193 ../src/pam_panic_pw/man/man1/pam_panic_pw.1:72
#, no-wrap
msgid "BUGS"
msgstr ""
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:196 ../src/pam_panic_pw/man/man1/pam_panic_pw.1:75
msgid ""
"Please report bugs and send pull requests to "
"E<lt>https://github.com/pampanic/pam_panicE<gt>."
msgstr ""
#. type: SH
#: ../src/pam_panic/man/man8/pam_panic.8:198 ../src/pam_panic_pw/man/man1/pam_panic_pw.1:77
#, no-wrap
msgid "SEE ALSO"
msgstr ""
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:204
msgid "B<pam_panic_pw>(1), B<cryptsetup>(8), B<pam>(8), B<pam.conf>(5)"
msgstr ""
#. type: SH
#: ../src/pam_panic/man/man8/pam_panic.8:206 ../src/pam_panic_pw/man/man1/pam_panic_pw.1:85
#, no-wrap
msgid "AUTHORS"
msgstr ""
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:210 ../src/pam_panic_pw/man/man1/pam_panic_pw.1:90
msgid "pam_panic was written by Bandie E<lt>bandie@chaospott.deE<gt>."
msgstr ""
#. type: Plain text
#: ../src/pam_panic/man/man8/pam_panic.8:211 ../src/pam_panic_pw/man/man1/pam_panic_pw.1:92
msgid ""
"This man page has been revised by Jordy Dickinson "
"E<lt>jordy.dickinson@icloud.comE<gt>."
msgstr ""
#. type: TH
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:9
#, no-wrap
msgid "PAM_PANIC_PW"
msgstr ""
#. type: TH
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:9
#, no-wrap
msgid "2018-03-31"
msgstr ""
#. type: Plain text
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:25
msgid ""
"pam_panic_pw - Set and change the passwords for the B<pam_panic>(8) PAM "
"module."
msgstr ""
#. type: Plain text
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:30
msgid "B<pam_panic_pw>"
msgstr ""
#. type: Plain text
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:35
msgid "B<pam_panic_pw> sets the passwords for the B<pam_panic>(8) PAM module."
msgstr ""
#. type: Plain text
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:39
msgid ""
"There are two passwords: the \"key password\" and the \"panic password\". "
"The \"key password\" is used for the normal authentication whereas the "
"\"panic password\" will execute the panic function."
msgstr ""
#. type: Plain text
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:44
msgid "0"
msgstr ""
#. type: Plain text
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:46
msgid "Passwords set successfully."
msgstr ""
#. type: Plain text
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:49
msgid "1"
msgstr ""
#. type: Plain text
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:51
msgid "Access denied."
msgstr ""
#. type: Plain text
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:54
msgid "2"
msgstr ""
#. type: Plain text
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:56
msgid "Could not open the password file."
msgstr ""
#. type: Plain text
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:67
msgid "__PPASSFILE__"
msgstr ""
#. type: Plain text
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:69
msgid "The password file."
msgstr ""
#. type: Plain text
#: ../src/pam_panic_pw/man/man1/pam_panic_pw.1:83
msgid "B<pam_panic>(8), B<cryptsetup>(8), B<pam.conf>(5), B<pam>(8)."
msgstr ""

8
po4a/po4a.cfg Normal file
View File

@ -0,0 +1,8 @@
[options] opt:"--copyright-holder 'Bandie <bandie@chaospott.de>' --package-name 'pam_panic' --msgid-bugs-address 'Bandie <bandie@chaospott.de>' --package-version '0.2.0'"
[po_directory] .
[type: man] ../src/pam_panic/man/man8/pam_panic.8 $lang:../src/pam_panic/man/$lang/man8/pam_panic.8
[type: man] ../src/pam_panic_pw/man/man1/pam_panic_pw.1 $lang:../src/pam_panic_pw/man/$lang/man1/pam_panic_pw.1

View File

@ -3,6 +3,8 @@ SUBDIRS = man
securelibdir = $(SECUREDIR) securelibdir = $(SECUREDIR)
securelibexecdir = $(securelibdir) securelibexecdir = $(securelibdir)
AM_CFLAGS = -DLOCALEDIR='"$(localedir)"'
securelibexec_LTLIBRARIES = pam_panic.la securelibexec_LTLIBRARIES = pam_panic.la
pam_panic_la_SOURCES = \ pam_panic_la_SOURCES = \
pam_panic.c \ pam_panic.c \

View File

@ -10,7 +10,9 @@ nobase_dist_cant_believe_its_not_man_DATA = \
%.gz: % %.gz: %
{ sldr=$$(echo "$(securelibdir)" | $(SED) 's/\//\\\//g') ; bdr=$$(echo "$(bindir)" | $(SED) 's/\//\\\//g') ; $(SED) "s/__PAMPANICSO__/$$sldr\/pam_panic\\\\\&.so/; s/__PAMPANICPW__/$$bdr\/pam_panic_pw/" $< >$<.tmp ; } { sldr=$$(echo "$(securelibdir)" | $(SED) 's/\//\\\//g') ; bdr=$$(echo "$(bindir)" | $(SED) 's/\//\\\//g') ; $(SED) "s/__PAMPANICSO__/$$sldr\/pam_panic\\\\\&.so/; s/__PAMPANICPW__/$$bdr\/pam_panic_pw/" $< >$<.tmp ; }
gzip -c $<.tmp >$@ gzip -c $<.tmp >$@
rm $<.tmp
clean-local: clean-local:
rm ./*/*.tmp ./*/*.gz ./*/*/*.tmp ./*/*/*.gz $(RM) ./*/*.gz
$(FIND) . -type d -not -name man8 -not -path . -exec rm -rf {} +

View File

@ -1,209 +0,0 @@
'\" t
.\" Title: pam_panic
.\" Author: [see the "AUTHORS" section]
.\" Date: 2018-03-31
.\" Manual: PAM Panic Manual
.\" Source: PAM Panic Manual
.\" Language: German
.\"
.TH "PAM_PANIC" "8" "2018-03-31" "PAM Panic Handbuch" "PAM Panic Handbuch"
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.\" -----------------------------------------------------------------
.\" * set default formatting
.\" -----------------------------------------------------------------
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
.ad l
.\" -----------------------------------------------------------------
.\" * MAIN CONTENT STARTS HERE *
.\" -----------------------------------------------------------------
.SH "NAME"
pam_panic \- PAM-Modul mit Panik-Funktion zum Sch\(:utzen von wichtigen Daten in Notsituationen
.SH "\(:UBERSICHT"
.HP \w'\fBpam_panic\&.so\fR\ 'u
\fBpam_panic\&.so\fR [password] [allow=\fIUUID(GPT)\fR] [reject=\fIUUID(GPT)\fR] [reboot] [poweroff] [serious=\fIUUID\fR]
.SH "BESCHREIBUNG"
.PP
Das pam_panic PAM Modul wurde mit dem Hintergedanken entwickelt, Personen mit wichtigen Daten zu sch\(:utzen\&. Es bietet eine Panik-Funktion\&.
.PP
Es gibt zwei M\(:oglichkeiten der Verwendung:
.PD 0
.PP
Erste M\(:oglichkeit:
.RS 2
Man verwendet zwei Wecheldatentr\(:ager, die als Schl\(:ussel dienen\&.
Hierbei funktioniert eines als Authentifizierungsschl\(:ussel und eines als Panikschl\(:ussel\&.
Der Panikschl\(:ussel f\(:uhrt die \fIPanikfunktion\fR aus\&.
.PD 0
.PP
Siehe dazu die Optionen \fBallow\fR und \fBreject\fR\&.
.RE
.PP
Zweite M\(:oglichkeit:
.RS 2
Man verwendet zwei Passw\(:orter, die als Schl\(:ussel dienen\&.
Dabei wird ein Schl\(:usselpasswort (Key password) und ein Panikpasswort (Panic password) festgelegt\&.
Das Panikpasswort wird hierbei die \fIPanikfunktion\fR aufrufen\&.
.PD 0
.PP
Siehe dazu die Option \fBpassword\fR\&.
.RE
.PD 1
.PP
Die Panikfunktion:
.RS 2
Das Verhalten der Panikfunktion wird durch die Argumente \fBreboot\fR, \fBpoweroff\fR und/oder \fBserious\fR definiert\&.
.RE
.SH "OPTIONEN"
.PP
\fBpassword\fR
.RS 4
Diese Option aktiviert die Passwortfunktion mit einem Panikpasswort und einem Schl\(:usselpasswort. Wenn \fBallow\fR und \fBreject\fR gesetzt sind, wird diese Option ignoriert.
.PD 0
.PP
.PD 1
Um die Passw\(:orter zu setzen steht das Programm \fBpam_panic_pw\fR(1) zur Verf\(:ugung.
.RE
.PP
\fBallow=\fR\fB\fIUUID(GPT)\fR\fR
.RS 4
Diese Ger\(:ate-UUID wird zur Authentifizierung benutzt (Authentifierungsschl\(:ussel)\&.
.PD 0
.PP
.PD 1
Es ist notwendig, dass ein GPT-formatierter Wecheldatentr\(:ager mit mindestens einer Partition benutzt wird\&.
Die UUID eines GPT-formatierten Ger\(:ates sieht beispielsweise so aus: "12345678-9ABC-DEF0-1234-56789ABCDEF0"\&.
.PP
Weitere Informationen im Abschnitt \fBWIE BESTIMME ICH MEINE UUIDS\fR\&.
.RE
.PP
\fBreject=\fR\fB\fIUUID(GPT)\fR\fR
.RS 4
Diese Ger\(:ate-UUID wird \fBreboot\fR, \fBpoweroff\fR und/oder die Panik-Funktion \fBserious\fR, sofern als Argument angegeben, aufrufen\& (Panikschl\(:ussel).
.PD 0
.PP
.PD 1
Es ist notwendig, dass ein GPT-formatierter Wecheldatentr\(:ager mit mindestens einer Partition benutzt wird\&.
Die UUID eines GPT-formatierten Ger\(:ates sieht beispielsweise so aus: "12345678-9ABC-DEF0-1234-56789ABCDEF0"\&.
.PP
Weitere Informationen im Abschnitt \fBWIE BESTIMME ICH MEINE UUIDS\fR\&.
.RE
.PP
\fBreboot\fR (empfohlen)
.RS 4
Wenn dieses Argument angegeben wird, wird das System neu gestartet, sobald der Wecheldatentr\(:ager mit der UUID des Arguments \fBreject=UUID(GPT)\fR eingelegt wurde\&.
Diese Option wird empfohlen\&.
.PP
Wenn \fBpoweroff\fR ebenfalls als Argument angegeben wird, wird \fBreboot\fR ignoriert\&.
.RE
.PP
\fBpoweroff\fR
.RS 4
Wenn dieses Argument angegeben wird, wird das System heruntergefahren, sobald der Wecheldatentr\(:ager mit der UUID des Arguments \fBreject=UUID(GPT)\fR eingelegt wurde\&.
Aus Sicherheitsgr\(:unden wird von dieser Option abgeraten\&.
.RE
.PP
\fBserious=\fR\fB\fIUUID\fR\fR
.RS 4
Die Ger\(:ate-UUID, dessen luksHeaders zerst\(:ort werden w\(:urde, sobald der Wecheldatentr\(:ager mit der UUID des Arguments \fBreject=UUID(GPT)\fR eingelegt wurde\&.
Das hei\(sst, dass die Daten auf den in den Optionen angegebenen Datentr\(:ager f\(:ur niemanden mehr lesbar sein werden\&.
.PD 0
.PP
Intern wird das Programm "\fBcryptsetup luksErase [UUID]\fR" ausgef\(:uhrt\&.
.PD 1
.PP
(Eine Erinnerung daran, ein luksHeader-Backup zu machen bevor diese Funktion benutzt wird.\&.)
.RE
.PP
.SH "ANWENDUNG"
.PP
Um das Modul zu aktivieren, muss PAM konfiguriert werden\&. Siehe dazu \fBpam\&.conf(5)\fR\&.
.PP
Man f\(:uge folgende beispielhafte Zeilen am Anfang einer Konfigurationsdatei hinzu:
.PD 0
.RS 4
auth requisite __PAMPANICSO__ auth=<UUID> reject=<UUID> reboot serious=<UUID>
.PP
account requisite __PAMPANICSO__
.RE
Oder auch:
.RS 4
auth requisite __PAMPANICSO__ password reboot serious=<UUID>
.PP
account requisite __PAMPANICSO__
.RE
.PD 1
.SH "WIE BESTIMME ICH MEINE UUIDS"
.PP
Die UUIDs k\(:onnen unter \fI/dev/disk/by-partuuid\fR gefunden werden\&.
Um nachvollziehen zu k\(:onnen, welcher Wecheldatentr\(:ager welches ist, ist es ratsam "\fBls -l /dev/disk/by-partuuid/\fR" in der Lieblingsshell auszuf\(:uhren\&.
.SH "R\(:UCKGABEWERTE"
.PP
PAM_SUCCESS
.RS 4
Zugriff wurde gew\(:ahrt\&.
.RE
.PP
PAM_IGNORE
.RS 4
Ein Fehler ist aufgetreten\&. Dieses Modul wird ignoriert\&.
.RE
.PP
PAM_MAXTRIES
.RS 4
Der Wecheldatentr\(:ager wurde nicht erkannt\&.
.RE
.SH "DATEIEN"
.PP
__PAMPANICSO__
.RS 4
Shared object-Datei, die f\(:ur alles zust\(:andig ist\&.
.RE
.PP
__PAMPANICPW__
.RS 4
Programm zum Setzen und Ver\(:andern der Passw\(:orter\&.
.RE
.SH "BUGS"
.PP
Fehlerberichte (m\(:oglichst auf Englisch) und Codeverbesserungen k\(:onnen hier eingereicht werden: <https://github\&.com/pampanic/pam_panic>
.SH "SIEHE AUCH"
.PP
\fBpam_panic_pw\fR(1),
\fBcryptsetup\fR(8),
\fBpam\&.conf\fR(5),
\fBpam\fR(8)\&.
.SH "AUTOREN"
.PD 0
.PP
Dieses pam_panic PAM Modul wurde durch Bandie <bandie@chaospott\&.de> entwickelt\&.

View File

@ -1,187 +0,0 @@
'\" t
.\" Title: pam_panic
.\" Author: [vea la secci\('on "AUTORES"]
.\" Date: 2018-03-28
.\" Manual: Linux-PAM Panic Manual
.\" Source: Linux-PAM Panic Manual
.\" Language: Spanish
.\"
.TH "PAM_PANIC" "8" "2018-03-28" "PAM Panic Manual" "PAM Panic Manual"
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.\" -----------------------------------------------------------------
.\" * set default formatting
.\" -----------------------------------------------------------------
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
.ad l
.\" -----------------------------------------------------------------
.\" * MAIN CONTENT STARTS HERE *
.\" -----------------------------------------------------------------
.SH "NOMBRE"
pam_panic \- un m\('odulo de PAM para controlar acceso usando media removible (con funci\('on p\('anica)
.SH "SINOPSIS"
.HP \w'\fBpam_panic\&.so\fR\ 'u
\fBpam_panic\&.so\fR [allow=\fIUUID(GPT)\fR] [reject=\fIUUID(GPT)\fR] [reboot] [poweroff] [serious=\fIUUID\fR]
.SH "DESCRIPCI\('ON"
.PP
El m\('odulo pam_panic protege los datos delicados y proporci\('ona una funci\('on p\('anica para emergencias\&.
.PP
Hay dos opciones posibles para utilizar este modulo de PAM:
.PD 0
.PP
Primera opci\('on posible:
.RS 2
Hay dos medias removibles que est\('an usando como claves: La clave de autenticaci\('on y la clave de p\('anico\&.
La clave para autenticaci\('on se permite ingresar su contrase\(~na mientras la clave para p\('anico va a llamar la funci\('on de p\('anico.
.RE
Segunda opci\('on posible:
.RS 2
Hay dos contrase\(~nas: La contrase\(~na para autenticaci\('on y la contrase\(~na de p\('anico. La contrasen\(~na clave le permitir\('a pasar al mensaje de contrasen\(~na original, mientras que la contrasen\(~na de p\('anico llamar\('a a la funci\('on de p\('anico.
.RE
.PD 1
.PP
La funci\('on de p\('anico:
.RS 2
El comportamiento de esta función se define a través de los argumentos \fBreboot\fR, \fBpoweroff\fR o \fBserious\fR\&. Vea la secci\('on de \fBOPCI\('ONES\fR para m\('as detalles\&.
.RE
.SH "OPCI\('ONES"
.PP
\fBpassword\fR
.RS 4
Activa la funci\('on de contrase\(~a con p\('anico y contrase\(~na clave\&.
Si las opciones \fBpermitir\fR y \fBrechazar\fR son provistas esta opci\('on ser\('a ignorada\&.
.PD 0
.PP
Estas contraseñas se pueden configurar con el comando \fBpam_panic_pw\fR(1)\&.
.RE
.PD 1
.PP
\fBallow=\fR\fB\fIUUID(GPT)\fR\fR (necesario)
.RS 4
Es el UUID del dispositivo para autenticaci\('on.
.PD 0
.PP
.PD 1
El dispositivo debe estar formateado por GPT y contener al menos una partici\('on\&.
El UUID de un dispositivo se ve como \[Fo]12345678-9ABC-DEF0-1234-56789ABCDEF0\[Fc]\&.
.PP
Vea \fBC\('OMO DETERMINAR MIS UUIDS\fR para detalles\&.
.RE
.PP
\fBreject=\fR\fB\fIUUID(GPT)\fR\fR (necesario)
.RS 4
Es el UUID del dispositivo para emergencias. Cuando este dispositivo est\('a presente, se disparar\('a un reinicio, un apagado, y / o la funci\('on p\('anica, seg\('un si \fBreboot\fR, \fBpoweroff\fR, y / o \fBserious\fR han sido especificados.
.PD 0
.PP
.PD 1
El dispositivo debe estar formateado por GPT y contener al menos una partici\('on\&.
El UUID de un dispositivo se ve como \[Fo]12345678-9ABC-DEF0-1234-56789ABCDEF0\[Fc]\&.
.PP
Vea \fBC\('OMO DETERMINAR MIS UUIDS\fR para detalles\&.
.RE
.PP
\fBreboot\fR (recomendado)
.RS 4
Indica que la sistema debe reiniciarse cuando se encontra el dispositivo especificado por \fBreject\fR\&.
.PP
Si \fBpoweroff\fR est\('a especificado tambi\('en, \fBreboot\fR estar\('a ignorado\&.
.RE
.PP
\fBpoweroff\fR
.RS 4
Indica que la sistema debe apagarse cuando se encontra el dispositivo especificado por \fBreject\fR\&.
Esta opci\('on no se recomienda por razones de seguridad\&.
.RE
.PP
\fBserious=\fR\fB\fIUUID\fR\fR
.RS 4
Es el UUID del dispositivo que contene el encabezamiento de LUKS que estar\('a borrado cuando encuentra el dispositivo especificado por \fBreject\fR\&.
.PP
NOTA: Se deberi\('a hacer una copia del encabezamiento de LUKS antes de usar esta funci\('on.
.RE
.PP
.SH "USAR"
.PP
Para activar el m\('odulo se tiene que configurar PAM\&. Vea \fBpam\&.conf(5)\fR para detalles\&.
.PP
En general, se necesita agregar lo siguiente al comienzo de un archivo de configuraci\('on PAM:
.PD 0
.RS 4
auth requisite __PAMPANICSO__ auth=<UUID> reject=<UUID> reboot serious=<UUID>
.PP
account requisite __PAMPANICSO__
.RE
Or:
.RS 4
auth requisite __PAMPANICSO__ password reboot serious=<UUID>
.PP
account requisite __PAMPANICSO__
.RE
.PD 1
.SH "C\('OMO DETERMINAR MIS UUIDS"
.PP
Se puede encontrar sus UUIDs en \fI/dev/disk/by-partuuid\fR\&.
Es posible que desee ejecutar \[Fo]\fBls -l /dev/disk/by-partuuid\fR\[Fc] en su shell favorito para encontrar cu\('al UUID es su dispositivo\&.
.SH "VALORES DE RETORNO"
.PP
PAM_SUCCESS
.RS 4
Indica que acceso fue permitido\&.
.RE
.PP
PAM_IGNORE
.RS 4
Indica que se ha producido un error\&. El m\('odulo estar\('a ignorado.
.RE
.PP
PAM_MAXTRIES
.RS 4
El media removible no fue detectados\&.
.RE
.SH "ARCHIVOS"
.PP
__PAMPANICSO__
.RS 4
Este m\('odulo PAM\&.
.RE
.PP
__PAMPANICPW__
.RS 4
Cambiador de contraseña
.RE
.SH "ERRORES"
.PP
Por favor reportar errores y enviar pull requests a <https://github\&.com/pampanic/pam_panic>\&.
.SH "VER TAMBI\('EN"
.PP
\fBcryptsetup\fR(8), \fBpam\fR(8), \fBpam\&.conf\fR(5)
.SH "AUTORES"
.PD 0
.PP
pam_panic fue escrito por Bandie <bandie@chaospott\&.de>\&.
.PP
Este p\('agina man fue traducido al espa\(~nol por Jordy Dickinson <jordy\&.dickinson@icloud\&.com> y dangered wolf <d@ngeredwolf\&.me>\&.

View File

@ -1,198 +0,0 @@
'\" t
.\" Title: pam_panic
.\" Author: [see the "AUTEURS" section]
.\" Date: 2018-03-28
.\" Manual: Linux-PAM Panic Manual
.\" Source: Linux-PAM Panic Manual
.\" Language: French
.\"
.TH "PAM_PANIC" "8" "2018-03-26" "Manuel de PAM Panic" "Manuel de PAM Panic"
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.\" -----------------------------------------------------------------
.\" * set default formatting
.\" -----------------------------------------------------------------
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
.ad l
.\" -----------------------------------------------------------------
.\" * MAIN CONTENT STARTS HERE *
.\" -----------------------------------------------------------------
.SH "NOM"
pam_panic \- Module PAM pour un contrôle d'accès via l'utilisation d'un périphérique amovible (avec une fonction panique)
.SH "SYNOPSIS"
.HP \w'\fBpam_panic\&.so\fR\ 'u
\fBpam_panic\&.so\fR [password] [allow=\fIUUID(GPT)\fR] [reject=\fIUUID(GPT)\fR] [reboot] [poweroff] [serious=\fIUUID\fR]
.SH "DESCRIPTION"
.PP
Le module PAM pam_panic protège les données sensibles et fournit une fonction de panique pour les situations d'urgence\&.
.PP
Il-y-à deux options possibles pour utiliser ce module PAM:
.PD 0
.PP
Première option possible:
.RS 2
Il y à deux périphériques amovibles qui fonctionnent comme clé : la clé d'authentification et la clé de panique\&.
La clé d'authentification permet de passer à la demande de mot de passe alors que la clé de panique appellera la fonction de panique\&.
.RE
Seconde option possible:
.RS 2
Il-y-à deux mots de passe: le mot de pass de clé et celui de panique\&. Le mot de passe de clé permet de passer a la demande de mot de passe alors que celui de panique appellera la fonction de panique\&.
.RE
.PD 1
.PP
La fonction de panique:
.RS 2
Le comportement de cette fonction est défini via les arguments \fBreboot\fR, \fBpoweroff\fR et/ou \fBserious\fR\&. Voir la section \fBOPTIONS\fR pour plus de détails\&.
.RE
.SH "OPTIONS"
.PP
\fBpassword\fR
.RS 4
Active la fonction de mot de passe avec un mot de passe de clé et de panique.\&
Si les options options \fBallow\fR et \fBreject\fR sont fournies, cette option sera ignorée\&.
.PD 0
.PP
Ces mots de passe peuvent être définis via le programme \fBpam_panic_pw\fR(1)\&.
.RE
.PD 1
.PP
.PP
\fBallow=\fR\fB\fIUUID(GPT)\fR\fR (requis)
.RS 4
L'UUID du péripherique à utiliser pour l'authentification (la clé d'authentification)\&.
.PD 0
.PP
.PD 1
Le périphérique doit être formatté en GPT avec au moins une partition\&.
L'UUID du périphérique formatté en GPT ressemble à "12345678-9ABC-DEF0-1234-56789ABCDEF0"\&.
.PP
Lisez \fBCOMMENT DÉTERMINER MES UUIDS\fR pour plus de détails\&.
.RE
.PP
\fBreject=\fR\fB\fIUUID(GPT)\fR\fR (requis)
.RS 4
L'UUID du périphérique à utiliser en cas d'urgence. La présence de ce périphérique entrainera un \fBreboot\fR, \fBpoweroff\fR et/ou la fonction de panique, selon si \fBreboot\fR, \fBpoweroff\fR, et/ou \fBserious\fR sont spécifiés.
.PD 0
.PP
.PD 1
Le périphérique doit être formatté en GPT avec au moins une partition\&.
L'UUID du périphérique formatté en GPT ressemble à "12345678-9ABC-DEF0-1234-56789ABCDEF0"\&.
.PP
Lisez \fBCOMMENT DÉTERMINER MES UUIDS\fR pour plus de détails\&.
.RE
.PP
\fBreboot\fR (recommendé)
.RS 4
Indique que le système doit redémarrer lorsqu'il détecte le périphérique spécifié avec \fBreject\fR\&.
.PP
Si \fBpoweroff\fR est aussi spécifié, \fBreboot\fR sera ignoré\&.
.RE
.PP
\fBpoweroff\fR
.RS 4
Indique que le système doit s'éteindre lorsqu'il détecte le périphérique spécifié avec \fBreject\fR\&.
Cette option est déconseillée pour des raisons de sécurité\&.
.RE
.PP
\fBserious=\fR\fB\fIUUID\fR\fR
.RS 4
L'UUID du périphérique contenant l'entête LUKS à éffacer lors de la détéction du périphérique spécifié avec \fBreject\fR\&.
.PP
NOTE: Vous devriez faire une sauvegarde de l'entête LUKS avant d'utiliser cette fonction\&.
.RE
.PP
.SH "UTILISATION"
.PP
Pour activer ce module vous devez configurer PAM\&. Lisez \fBpam\&.conf(5)\fR pour plus de détails\&.
.PP
En général, vous voudrez ajouter ce qui suit au début du fichier de configuration PAM:
.PD 0
.RS 4
auth requisite __PAMPANICSO__ auth=<UUID> reject=<UUID> reboot serious=<UUID>
.PP
account requisite __PAMPANICSO__
.RE
Ou:
.RS 4
auth requisite __PAMPANICSO__ password reboot serious=<UUID>
.PP
account requisite __PAMPANICSO__
.RE
.PD 1
.SH "COMMENT DÉTERMINER MES UUIDS"
.PP
Vous trouverz vos UUIDs dans \fI/dev/disk/by-partuuid\fR\&.
Vous voudriez peut-être executer "\fBls -l /dev/disk/by-partuuid/\fR" dans votre shell favoris pour trouver quel UUID correspond à quel périphérique\&.
.SH "VALEURS DE RETOUR"
.PP
PAM_SUCCESS
.RS 4
Accès autorisé\&.
.RE
.PP
PAM_IGNORE
.RS 4
Une erreur est survenue\&. Le module sera ignoré\&.
.RE
.PP
PAM_MAXTRIES
.RS 4
Le péripherique amovible n'a pas été détécté\&.
.RE
.SH "FICHIERS"
.PP
__PAMPANICSO__
.RS 4
Ce module PAM\&.
.RE
.PP
__PAMPANICPW__
.RS 4
Programme pour configurer les mots de passe\&.
.RE
.SH "BUGS"
.PP
Veuillez reporter les bugs ou envoyer une demande de correction à <https://github\&.com/pampanic/pam_panic>\&.
.SH "VOIR AUSSI"
.PP
\fBpam_panic_pw\fR(1),
\fBcryptsetup\fR(8),
\fBpam\fR(8),
\fBpam\&.conf\fR(5)
.SH "AUTEURS"
.PD 0
.PP
pam_panic à été écris par Bandie <bandie@chaospott\&.de>\&.
.PP
La page de manuel Anglaise à été révisée par Jordy Dickinson <jordy\&.dickinson@icloud\&.com>\&.
.PP
La version Française à été traduite par Dashie <dashie@otter\&.sh>\&.

View File

@ -1,196 +0,0 @@
'\" t
.\" Title: pam_panic
.\" Author: [see the "AUTHORS" section]
.\" Date: 2018-05-31
.\" Manual: Linux-PAM Panic Manual
.\" Source: Linux-PAM Panic Manual
.\" Language: Japanese
.\"
.TH "PAM_PANIC" "8" "2018-05-31" "PAM Panic マニュアル" "PAM Panic マニュアル"
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.\" -----------------------------------------------------------------
.\" * set default formatting
.\" -----------------------------------------------------------------
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
.ad l
.\" -----------------------------------------------------------------
.\" * MAIN CONTENT STARTS HERE *
.\" -----------------------------------------------------------------
.SH "名前"
pam_panic \- 緊急時に機密データを保護するPAMモジュール
.SH "概要"
.HP \w'\fBpam_panic\&.so\fR\ 'u
\fBpam_panic\&.so\fR [password] [allow=\fIUUID(GPT)\fR] [reject=\fIUUID(GPT)\fR] [reboot] [poweroff] [serious=\fIUUID\fR]
.SH "説明"
.PP
pam_panic PAMモジュールは、緊急時にデータを保護するためのパニック機能を実装します。
.PP
このPAMモジュールを使用するには、次の2つの方法があります。
.PD 0
.PP
方法1:
.RS 2
認証キーとパニックキーの2つのデバイスをキーとして使用します。
認証キーではパスワード認証をスキップし、パニックキーではパニック機能が起動します。
.RE
方法2:
.RS 2
パスワードを2つ用意します。認証パスワードとパニックパスワードです。認証パスワードでは通常通り認証が行われ、パニックパスワードではパニック機能が起動します。
.RE
.PD 1
.PP
パニック機能:
.RS 2
この機能の動作は次の引数によって指定されます: \fBreboot\fR, \fBpoweroff\fR または \fBserious\fR\ 。詳細については、 \fBOPTIONS\fR セクションを確認してください。
.RE
.SH "オプション"
.PP
\fBpassword\fR
.RS 4
パスワードを認証に使用します。
引数に \fBallow\fR\fBreject\fR が指定されている場合、このオプションは無視されます。
.PD 0
.PP
パスワードは \fBpam_panic_pw\fR(1) コマンドによって指定できます。
.RE
.PD 1
.PP
\fBallow=\fR\fB\fIUUID(GPT)\fR\fR
.RS 4
デバイスのUUIDを認証に使用します。
.PD 0
.PP
.PD 1
デバイスはGPTでフォーマットされている必要があり、最低1つのパーティションを含んでいる必要があります。
GPTでフォーマットされたデバイスのUUIDは次のようになります: "12345678-9ABC-DEF0-1234-56789ABCDEF0"。
.PP
詳細については \fBUUIDを調べる方法\fR を確認してください。
.RE
.PP
\fBreject=\fR\fB\fIUUID(GPT)\fR\fR
.RS 4
緊急時に使用するデバイスのUUIDを指定します。このデバイスが存在する場合、\fBreboot\fR, \fBpoweroff\fR またはパニック機能が発動します。 パニック機能は \fBreboot\fR, \fBpoweroff\fR, \fBserious\fR のうち、いずれか1つ以上で指定されます。
.PD 0
.PP
.PD 1
デバイスはGPTでフォーマットされている必要があり、最低1つのパーティションを含んでいる必要があります。
GPTでフォーマットされたデバイスのUUIDは次のようになります: "12345678-9ABC-DEF0-1234-56789ABCDEF0"。
.PP
詳細については \fBUUIDを調べる方法\fR を確認してください。
.RE
.PP
\fBreboot\fR (推奨)
.RS 4
\fBreject\fR で指定されたデバイスが検知された場合、再起動します。
.PP
\fBpoweroff\fR が同時に指定されている場合、 \fBreboot\fR は無視されます。
.RE
.PP
\fBpoweroff\fR
.RS 4
\fBreject\fR で指定されたデバイスが検知された場合、シャットダウンします。
セキュリティ上の理由から、このオプションは推奨されません。
.RE
.PP
\fBserious=\fR\fB\fIUUID\fR\fR
.RS 4
LUKSヘッダーを消去するための鍵となるデバイスのUUIDを指定します。
LUKSヘッダーを消去した場合、データは復元できなくなります。
.PP
注意: この機能を使用する前に、LUKSヘッダーをバックアップしておくことをおすすめします。
.RE
.PP
.SH "USAGE"
.PP
モジュールを使用するためには、PAMを設定する必要があります。詳細については、 \fBpam\&.conf(5)\fR を参照してください。
.PP
多くの場合、PAM設定ファイルの先頭に次の内容を設定すればよいでしょう。
.PD 0
.RS 4
auth requisite __PAMPANICSO__ auth=<UUID> reject=<UUID> reboot serious=<UUID>
.PP
account requisite __PAMPANICSO__
.RE
Or:
.RS 4
auth requisite __PAMPANICSO__ password reboot serious=<UUID>
.PP
account requisite __PAMPANICSO__
.RE
.PD 1
.SH "UUIDを調べる方法"
.PP
\fI/dev/disk/by-partuuid\fR でUUIDを調べることができます。
"\fBls -l /dev/disk/by-partuuid/\fR" を任意のシェルで実行して、どのデバイスがどのUUIDかを調べる必要があるかもしれません。
.SH "返り値"
.PP
PAM_SUCCESS
.RS 4
アクセスは許可されました。
.RE
.PP
PAM_IGNORE
.RS 4
エラーが発生しました。モジュールは無視されます。
.RE
.PP
PAM_MAXTRIES
.RS 4
リムーバブルメディアが検知されませんでした。
.RE
.SH "ファイル"
.PP
__PAMPANICSO__
.RS 4
このPAMモジュールです。
.RE
.PP
__PAMPANICPW__
.RS 4
パスワードの設定および変更を行うためのプログラムです。
.RE
.SH "バグ報告"
.PP
<https://github\&.com/pampanic/pam_panic> で、バグの報告やプルリクエストを行ってください。
.SH "関連項目"
.PP
\fBpam_panic_pw\fR(1),
\fBcryptsetup\fR(8),
\fBpam\fR(8),
\fBpam\&.conf\fR(5)
.SH "著者"
.PD 0
.PP
pam_panic は Bandie <bandie@chaospott\&.de> によって作成されました。
.PP
この翻訳は Chromium Neptune <chromium@neplanet\&.com> によって作成されています。

View File

@ -7,8 +7,8 @@
.\" Language: English .\" Language: English
.\" .\"
.TH "PAM_PANIC" "8" "2018-03-26" "PAM Panic Manual" "PAM Panic Manual" .TH "PAM_PANIC" "8" "2018-03-26" "PAM Panic Manual" "PAM Panic Manual"
.ie \n(.g .ds Aq \(aq .\".ie \n(.g .ds Aq \(aq
.el .ds Aq ' .\".el .ds Aq '
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------
.\" * set default formatting .\" * set default formatting
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------
@ -26,32 +26,39 @@ pam_panic \- PAM module with panic function to protect sensitive data in emergen
.SH "SYNOPSIS" .SH "SYNOPSIS"
.HP \w'\fBpam_panic\&.so\fR\ 'u .HP \w'\fBpam_panic.so\fR\ 'u
\fBpam_panic\&.so\fR [password] [allow=\fIUUID(GPT)\fR] [reject=\fIUUID(GPT)\fR] [reboot] [poweroff] [serious=\fIUUID\fR] \fBpam_panic.so\fR [password] [allow=\fIUUID(GPT)\fR] [reject=\fIUUID(GPT)\fR] [reboot] [poweroff] [serious=\fIUUID\fR]
.SH "DESCRIPTION" .SH "DESCRIPTION"
.PP .PP
The pam_panic PAM module protects sensitive data and provides a panic function for emergency situations\&. The pam_panic PAM module protects sensitive data and provides a panic function for emergency situations.
.PP .PP
There are two possible options in how to use this PAM module: There are two possible options in how to use this PAM module:
.PD 0 .PD 0
.PP .PP
First possible option: First possible option:
.RS 2 .RS 2
There are two removable media which work as keys: the auth key and the panic key\&. There are two removable media which work as keys: the auth key and the panic key.
The auth key will let you pass to the password prompt whereas the panic key will call the panic function\&. The auth key will let you pass to the password prompt whereas the panic key will call the \fIpanic function\fR.
.PD 0
.PP
See options \fBallow\fR and \fBreject\fR.
.RE .RE
.PP
Second possible option: Second possible option:
.RS 2 .RS 2
There are two passwords: the key password and the panic password\&. The key password will let you pass to the original password prompt whereas the panic password will call the panic function\&. There are two passwords: the key password and the panic password. The key password will let you pass to the original password prompt whereas the panic password will call the \fIpanic function\fR.
.PD 0
.PP
See option \fBpassword\fR.
.RE .RE
.PD 1 .PD 1
.PP .PP
The panic function: The panic function:
.RS 2 .RS 2
The behaviour of this function is defined through the arguments \fBreboot\fR, \fBpoweroff\fR and/or \fBserious\fR\&. See the \fBOPTIONS\fR section for details\&. The behaviour of this function is defined through the arguments \fBreboot\fR, \fBpoweroff\fR and/or \fBserious\fR. See the \fBOPTIONS\fR section for details.
.RE .RE
@ -59,25 +66,25 @@ The behaviour of this function is defined through the arguments \fBreboot\fR, \f
.PP .PP
\fBpassword\fR \fBpassword\fR
.RS 4 .RS 4
Activates the password function having a panic and key password\&. Activates the password function having a panic and key password.
If the options \fBallow\fR and \fBreject\fR are provided this option will be ignored\&. If the options \fBallow\fR and \fBreject\fR are provided this option will be ignored.
.PD 0 .PD 0
.PP .PP
These passwords can be set with the \fBpam_panic_pw\fR(1) command\&. These passwords can be set with the \fBpam_panic_pw\fR(1) command.
.RE .RE
.PD 1 .PD 1
.PP .PP
\fBallow=\fR\fB\fIUUID(GPT)\fR\fR \fBallow=\fR\fB\fIUUID(GPT)\fR\fR
.RS 4 .RS 4
The UUID of the device to be used for authentication (the auth key)\&. The UUID of the device to be used for authentication (the auth key).
.PD 0 .PD 0
.PP .PP
.PD 1 .PD 1
The device must be GPT-formatted and contain at least one partition\&. The device must be GPT-formatted and contain at least one partition.
The UUID of a GPT-formatted device looks like "12345678-9ABC-DEF0-1234-56789ABCDEF0"\&. The UUID of a GPT-formatted device looks like "12345678-9ABC-DEF0-1234-56789ABCDEF0".
.PP .PP
See \fBHOW TO DETERMINE MY UUIDS\fR for details\&. See \fBHOW TO DETERMINE MY UUIDS\fR for details.
.RE .RE
.PP .PP
@ -87,41 +94,48 @@ The UUID of the device to be used in emergencies. The presence of this device wi
.PD 0 .PD 0
.PP .PP
.PD 1 .PD 1
The device must be GPT-formatted and contain at least one partition\&. The device must be GPT-formatted and contain at least one partition.
The UUID of a GPT-formatted device looks like "12345678-9ABC-DEF0-1234-56789ABCDEF0"\&. The UUID of a GPT-formatted device looks like "12345678-9ABC-DEF0-1234-56789ABCDEF0".
.PP .PP
See \fBHOW TO DETERMINE MY UUIDS\fR for details\&. See \fBHOW TO DETERMINE MY UUIDS\fR for details.
.RE .RE
.PP .PP
\fBreboot\fR (recommended) \fBreboot\fR (recommended)
.RS 4 .RS 4
Indicates that the system should reboot upon encountering the device specified with \fBreject\fR\&. Indicates that the system should reboot when the \fIpanic function\fR is triggered.
.PD 0
.PP .PP
If \fBpoweroff\fR is also specified, \fBreboot\fR will be ignored\&. This option is recommended.
.PD 1
.PP
If \fBpoweroff\fR is also specified, \fBreboot\fR will be ignored.
.RE .RE
.PP .PP
\fBpoweroff\fR \fBpoweroff\fR
.RS 4 .RS 4
Indicates that the system should shut down upon encountering the device specified with \fBreject\fR\&. Indicates that the system should shut down when the \fIpanic function\fR is triggered.
This option is discouraged for security reasons\&. This option is discouraged for security reasons.
.RE .RE
.PP .PP
\fBserious=\fR\fB\fIUUID\fR\fR \fBserious=\fR\fB\fIUUID\fR\fR
.RS 4 .RS 4
The UUID of the device containing the LUKS header to erase upon encountering the device specified with \fBreject\fR\&. The UUID of the device containing the LUKS header to erase when the \fIpanic function\fR is triggered. Erasing the LUKS header will render the data unreadable.
Erasing the LUKS header will render the data unreadable\&. .PD 0
.PP .PP
NOTE: You should make a backup of the LUKS header before using this function\&. The internal command which will be executed is "\fBcryptsetup luksErase [UUID]\fR".
.PD 1
.PP
NOTE: You should make a backup of the LUKS header before using this function.
.RE .RE
.PP .PP
.SH "USAGE" .SH "USAGE"
.PP .PP
To activate the module you have to configure PAM\&. See \fBpam\&.conf(5)\fR for details\&. To activate the module you have to configure PAM. See \fBpam.conf(5)\fR for details.
.PP .PP
In general, you will want to add the following to the top of a PAM configuration file: In general, you will want to add the following to the top of a PAM configuration file:
.PD 0 .PD 0
@ -141,25 +155,25 @@ account requisite __PAMPANICSO__
.SH "HOW TO DETERMINE MY UUIDS" .SH "HOW TO DETERMINE MY UUIDS"
.PP .PP
You will find your UUIDs in \fI/dev/disk/by-partuuid\fR\&. You will find your UUIDs in \fI/dev/disk/by-partuuid\fR.
You might want to execute "\fBls -l /dev/disk/by-partuuid/\fR" in your favourite shell to find out which UUID is which device\&. You might want to execute "\fBls -l /dev/disk/by-partuuid/\fR" in your favourite shell to find out which UUID is which device.
.SH "RETURN VALUES" .SH "RETURN VALUES"
.PP .PP
PAM_SUCCESS PAM_SUCCESS
.RS 4 .RS 4
Access was granted\&. Access was granted.
.RE .RE
.PP .PP
PAM_IGNORE PAM_IGNORE
.RS 4 .RS 4
An error has occured\&. The module will be ignored.\&. An error has occured. The module will be ignored.
.RE .RE
.PP .PP
PAM_MAXTRIES PAM_MAXTRIES
.RS 4 .RS 4
The removable media was not detected\&. The removable media was not detected.
.RE .RE
@ -167,18 +181,18 @@ The removable media was not detected\&.
.PP .PP
__PAMPANICSO__ __PAMPANICSO__
.RS 4 .RS 4
This PAM module\&. This PAM module, which does everything of this above.
.RE .RE
.PP .PP
__PAMPANICPW__ __PAMPANICPW__
.RS 4 .RS 4
Program to set and change the passwords\&. Program to set and change the passwords.
.RE .RE
.SH "BUGS" .SH "BUGS"
.PP .PP
Please report bugs and send pull requests to <https://github\&.com/pampanic/pam_panic>\&. Please report bugs and send pull requests to <https://github.com/pampanic/pam_panic>.
.SH "SEE ALSO" .SH "SEE ALSO"
@ -186,12 +200,12 @@ Please report bugs and send pull requests to <https://github\&.com/pampanic/pam_
\fBpam_panic_pw\fR(1), \fBpam_panic_pw\fR(1),
\fBcryptsetup\fR(8), \fBcryptsetup\fR(8),
\fBpam\fR(8), \fBpam\fR(8),
\fBpam\&.conf\fR(5) \fBpam.conf\fR(5)
.SH "AUTHORS" .SH "AUTHORS"
.PD 0 .PD 0
.PP .PP
pam_panic was written by Bandie <bandie@chaospott\&.de>\&. pam_panic was written by Bandie <bandie@chaospott.de>.
.PP .PP
This man page has been revised by Jordy Dickinson <jordy\&.dickinson@icloud\&.com> This man page has been revised by Jordy Dickinson <jordy.dickinson@icloud.com>.

View File

@ -6,6 +6,8 @@ DATE : 2018-03-27T02:34:08+02:00
LICENSE : GNU-GPLv3 LICENSE : GNU-GPLv3
*/ */
#include "pam_panic.h"
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include <unistd.h> #include <unistd.h>
@ -16,12 +18,18 @@ LICENSE : GNU-GPLv3
#include <security/pam_modules.h> #include <security/pam_modules.h>
#include <security/pam_ext.h> #include <security/pam_ext.h>
#include <syslog.h> #include <syslog.h>
#include "config.h"
#include "pam_panic_reject.h" #include "pam_panic_reject.h"
#include "../../lib/gettext.h"
#define _(String) gettext(String)
#include "pam_panic_authdevice.h" #include "pam_panic_authdevice.h"
#include "pam_panic_password.h" #include "pam_panic_password.h"
#ifdef PACKAGE
#ifdef LOCALEDIR
#ifdef REBOOT #ifdef REBOOT
#ifdef POWEROFF #ifdef POWEROFF
#ifdef CRYPTSETUP #ifdef CRYPTSETUP
@ -30,7 +38,7 @@ int makeRegex(pam_handle_t *pamh, regex_t *regex){
char *pattern = "^[A-Fa-f0-9]\\{8\\}\\-[A-Fa-f0-9]\\{4\\}\\-[A-Fa-f0-9]\\{4\\}\\-[A-Fa-f0-9]\\{4\\}\\-[A-Fa-f0-9]\\{12\\}$"; char *pattern = "^[A-Fa-f0-9]\\{8\\}\\-[A-Fa-f0-9]\\{4\\}\\-[A-Fa-f0-9]\\{4\\}\\-[A-Fa-f0-9]\\{4\\}\\-[A-Fa-f0-9]\\{12\\}$";
if(regcomp(regex, pattern, 0)){ if(regcomp(regex, pattern, 0)){
pam_syslog(pamh, LOG_CRIT, "ERROR: Problem with regcomp."); pam_syslog(pamh, LOG_CRIT, _("CRITICAL: Problem with regcomp."));
return 1; return 1;
} }
@ -67,6 +75,10 @@ PAM_EXTERN int pam_sm_authenticate(pam_handle_t *pamh, int flags, int argc, cons
int8_t bPoweroff = 0; int8_t bPoweroff = 0;
int8_t bPassword = 0; int8_t bPassword = 0;
// gettext
setlocale(LC_ALL, "");
bindtextdomain(PACKAGE, LOCALEDIR);
textdomain(PACKAGE);
// Regex for checking arguments // Regex for checking arguments
regex_t regex; regex_t regex;
@ -107,7 +119,7 @@ PAM_EXTERN int pam_sm_authenticate(pam_handle_t *pamh, int flags, int argc, cons
|| (rejected_temp != NULL && regexec(&regex, rejected_temp, 0, NULL, 0) == REG_NOMATCH) || (rejected_temp != NULL && regexec(&regex, rejected_temp, 0, NULL, 0) == REG_NOMATCH)
|| (bSerious && serious_temp == NULL) || (bSerious && serious_temp == NULL)
) { ) {
pam_syslog(pamh, LOG_ERR, "Arguments invalid. Note that allow and reject must have a valid GPT UUID."); pam_syslog(pamh, LOG_ERR, _("ERROR: Arguments invalid. Note that \"allow\" and \"reject\" must have a valid GPT UUID."));
return (PAM_ABORT); return (PAM_ABORT);
} }
@ -143,7 +155,7 @@ PAM_EXTERN int pam_sm_authenticate(pam_handle_t *pamh, int flags, int argc, cons
// Check if panic key exist // Check if panic key exist
if(bSerious && access(serious_dev, F_OK) == -1){ if(bSerious && access(serious_dev, F_OK) == -1){
pam_syslog(pamh, LOG_ALERT, "ALERT for argument \"serious\": Device doesn't exist."); pam_syslog(pamh, LOG_ALERT, _("ALERT for argument \"serious\": Device doesn't exist."));
return (PAM_ABORT); return (PAM_ABORT);
} }
@ -201,3 +213,5 @@ PAM_EXTERN int pam_sm_chauthtok(pam_handle_t *pamh, int flags, int argc, const c
#endif #endif
#endif #endif
#endif #endif
#endif
#endif

View File

@ -1,25 +1,15 @@
/* /*
FILENAME : pam_panic.c FILENAME : pam_panic.h
DESCRIPTION : Header is made for testing purposes. DESCRIPTION : Header.
AUTHOR : Bandie AUTHOR : Bandie
DATE : 2018-03-27T02:34:08+02:00 DATE : 2018-03-27T02:34:08+02:00
LICENSE : GNU-GPLv3 LICENSE : GNU-GPLv3
*/ */
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <fcntl.h>
#include <sys/wait.h>
#include <regex.h>
#include <string.h>
#include <security/pam_modules.h> #include <security/pam_modules.h>
#include <security/pam_ext.h> #include <security/pam_ext.h>
#include <syslog.h> #include <syslog.h>
#include "pam_panic_reject.h"
#include "pam_panic_authdevice.h"
#include "pam_panic_password.h"
void argSplit(char **some_arg, char **some_temp, const char *arg); void argSplit(char **some_arg, char **some_temp, const char *arg);

View File

@ -6,23 +6,35 @@ DATE : 2018-03-27T02:34:08+02:00
LICENSE : GNU-GPLv3 LICENSE : GNU-GPLv3
*/ */
#include <stdint.h> #include "pam_panic_authdevice.h"
#include <unistd.h> #include <unistd.h>
#include "../../lib/gettext.h"
#include <security/pam_modules.h> #include <security/pam_modules.h>
#include <security/pam_ext.h> #include <security/pam_ext.h>
#include <syslog.h> #include <syslog.h>
#include "pam_panic_reject.h"
#include "pam_panic_reject.h"
#include "pam_panic_authdevice.h" #include "pam_panic_authdevice.h"
#define _(String) gettext(String)
int authDevice(pam_handle_t *pamh, char *allowed, char *rejected, char *serious_dev, int8_t bSerious, int8_t bReboot, int8_t bPoweroff){ int authDevice(pam_handle_t *pamh, char *allowed, char *rejected, char *serious_dev, int8_t bSerious, int8_t bReboot, int8_t bPoweroff){
#ifndef TEST #ifndef TEST
// gettext
setlocale(LC_ALL, "");
bindtextdomain(PACKAGE, LOCALEDIR);
textdomain(PACKAGE);
int8_t counter = 0; int8_t counter = 0;
while(access(allowed, F_OK) == -1 && access(rejected, F_OK) == -1){ while(access(allowed, F_OK) == -1 && access(rejected, F_OK) == -1){
pam_prompt(pamh, PAM_PROMPT_ECHO_OFF, NULL, ASK); pam_prompt(pamh, PAM_PROMPT_ECHO_OFF, NULL, _("Key? "));
if(++counter >= 3){ if(++counter >= 3){
pam_syslog(pamh, LOG_NOTICE, "Couldn't identify any keys. 3 tries."); pam_syslog(pamh, LOG_NOTICE, _("Couldn't identify any key after 3 tries."));
return (PAM_MAXTRIES); return (PAM_MAXTRIES);
} }
} }

View File

@ -5,7 +5,8 @@ DATE : 2018-03-27T02:34:08+02:00
LICENSE : GNU-GPLv3 LICENSE : GNU-GPLv3
*/ */
#include "../config.h"
#define ASK "Key? " #include <stdint.h>
#include <security/pam_modules.h>
int authDevice(pam_handle_t *pamh, char *allowed, char *rejected, char *serious_dev, int8_t bSerious, int8_t bReboot, int8_t bPoweroff); int authDevice(pam_handle_t *pamh, char *allowed, char *rejected, char *serious_dev, int8_t bSerious, int8_t bReboot, int8_t bPoweroff);

View File

@ -6,33 +6,32 @@ DATE : 2018-03-27T02:34:08+02:00
LICENSE : GNU-GPLv3 LICENSE : GNU-GPLv3
*/ */
#include "pam_panic_password.h"
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include <string.h> #include <string.h>
#include <unistd.h> #include <unistd.h>
#include <fcntl.h> #include <fcntl.h>
#include <security/pam_modules.h>
#include <security/pam_ext.h> #include "../../lib/gettext.h"
#include <syslog.h> #include <syslog.h>
#include <crypt.h> #include <crypt.h>
#include "pam_panic_password.h"
#include "pam_panic_reject.h" #include "pam_panic_reject.h"
#define MSG_NOFILE "ALERT for password option: No password file detected." #define _(String) gettext(String)
#define MSG_ERROPEN "ERROR: Couldn't open password file."
#define MSG_CORRUPT "CRITICAL: Password file is corrupt!"
int readPassword(pam_handle_t *pamh, char pw[2][99]){ int readPassword(pam_handle_t *pamh, char pw[2][99]){
// Open file // Open file
if(access(PPASSFILE, F_OK) == -1){ if(access(PPASSFILE, F_OK) == -1){
pam_syslog(pamh, LOG_ALERT, MSG_NOFILE); pam_syslog(pamh, LOG_ALERT, _("ALERT for password option: No password file detected."));
return 2; return 2;
} }
FILE *f = fopen(PPASSFILE, "r"); FILE *f = fopen(PPASSFILE, "r");
if(f == NULL){ if(f == NULL){
pam_syslog(pamh, LOG_ALERT, MSG_ERROPEN); pam_syslog(pamh, LOG_ALERT, _("ERROR: Couldn't open password file."));
return 1; return 1;
} }
@ -44,7 +43,7 @@ int readPassword(pam_handle_t *pamh, char pw[2][99]){
fclose(f); fclose(f);
if(nread != 198){ if(nread != 198){
pam_syslog(pamh, LOG_CRIT, MSG_CORRUPT); pam_syslog(pamh, LOG_CRIT, _("CRITICAL: Password file is corrupt!"));
return 3; return 3;
} }
@ -65,6 +64,11 @@ int readPassword(pam_handle_t *pamh, char pw[2][99]){
int authPassword(pam_handle_t *pamh, char *serious_dev, int8_t bSerious, int8_t bReboot, int8_t bPoweroff){ int authPassword(pam_handle_t *pamh, char *serious_dev, int8_t bSerious, int8_t bReboot, int8_t bPoweroff){
// gettext
setlocale (LC_ALL, "");
bindtextdomain(PACKAGE, LOCALEDIR);
textdomain(PACKAGE);
// PAM password response // PAM password response
char resp[256]; char resp[256];
char *response = NULL; char *response = NULL;
@ -84,7 +88,7 @@ int authPassword(pam_handle_t *pamh, char *serious_dev, int8_t bSerious, int8_t
pam_prompt(pamh, PAM_PROMPT_ECHO_OFF, &response, PWPROMPT); pam_prompt(pamh, PAM_PROMPT_ECHO_OFF, &response, _("Password: "));
// Is response null? // Is response null?
if(!response) if(!response)

View File

@ -5,12 +5,14 @@ DATE : 2018-03-27T02:34:08+02:00
LICENSE : GNU-GPLv3 LICENSE : GNU-GPLv3
*/ */
#include "config.h" #include "../config.h"
#include <stdint.h>
#include <security/pam_modules.h>
#include <security/pam_ext.h>
#ifndef PPASSFILE #ifndef PPASSFILE
#error PPASSFILE must be declared! #error PPASSFILE must be declared!
#endif #endif
#define PWPROMPT "Password::"
int authPassword(pam_handle_t *pamh, char *serious_dev, int8_t bSerious, int8_t bReboot, int8_t bPoweroff); int authPassword(pam_handle_t *pamh, char *serious_dev, int8_t bSerious, int8_t bReboot, int8_t bPoweroff);

View File

@ -6,7 +6,7 @@ DATE : 2018-03-27T02:34:08+02:00
LICENSE : GNU-GPLv3 LICENSE : GNU-GPLv3
*/ */
#include <stdint.h> #include "pam_panic_reject.h"
#include <unistd.h> #include <unistd.h>
#ifdef TEST #ifdef TEST
#include <stdio.h> #include <stdio.h>
@ -14,8 +14,6 @@ LICENSE : GNU-GPLv3
#include <security/pam_ext.h> #include <security/pam_ext.h>
#endif #endif
#include <sys/wait.h> #include <sys/wait.h>
#include "config.h"
#include "pam_panic_reject.h"
int reject(char *serious_dev, int8_t bSerious, int8_t bReboot, int8_t bPoweroff){ int reject(char *serious_dev, int8_t bSerious, int8_t bReboot, int8_t bPoweroff){
if(bSerious){ if(bSerious){

View File

@ -5,4 +5,7 @@ DATE : 2018-03-27T02:34:08+02:00
LICENSE : GNU-GPLv3 LICENSE : GNU-GPLv3
*/ */
#include "../config.h"
#include <stdint.h>
int reject(char *serious_dev, int8_t bSerious, int8_t bReboot, int8_t bPoweroff); int reject(char *serious_dev, int8_t bSerious, int8_t bReboot, int8_t bPoweroff);

View File

@ -1,5 +1,7 @@
SUBDIRS = man SUBDIRS = man
AM_CFLAGS = -DLOCALEDIR='"$(localedir)"'
bin_PROGRAMS = pam_panic_pw bin_PROGRAMS = pam_panic_pw
pam_panic_pw_SOURCES = pam_panic_pw.c pam_panic_pw.h pam_panic_pw_SOURCES = pam_panic_pw.c pam_panic_pw.h
pam_panic_pw_LDFLAGS = -lcrypt pam_panic_pw_LDFLAGS = -lcrypt

View File

@ -9,7 +9,9 @@ nobase_dist_cant_believe_its_not_man_DATA = \
%.gz: % %.gz: %
{ ppf=$$(echo "$(PPASSFILE)" | $(SED) 's/\//\\\//g') ; bdr=$$(echo "$(bindir)" | $(SED) 's/\//\\\//g') ; $(SED) "s/__PPASSFILE__/$$ppf/; s/__PAMPANICPW__/$$bdr\/pam_panic\\\\\&.so/" $< >$<.tmp ; } { ppf=$$(echo "$(PPASSFILE)" | $(SED) 's/\//\\\//g') ; bdr=$$(echo "$(bindir)" | $(SED) 's/\//\\\//g') ; $(SED) "s/__PPASSFILE__/$$ppf/; s/__PAMPANICPW__/$$bdr\/pam_panic\\\\\&.so/" $< >$<.tmp ; }
gzip -c $<.tmp >$@ gzip -c $<.tmp >$@
rm $<.tmp
clean-local: clean-local:
rm ./*/*.tmp ./*/*.gz ./*/*/*.tmp ./*/*/*.g $(RM) -f ./*/*.gz
$(FIND) . -type d -not -name man1 -not -path . -exec rm -rf {} +

View File

@ -1,89 +0,0 @@
'\" t
.\" Title: pam_panic_pw
.\" Author: [see the "AUTHORS" section]
.\" Date: 2018-03-31
.\" Manual: PAM Panic Manual
.\" Source: PAM Panic Manual
.\" Language: German
.\"
.TH "PAM_PANIC_PW" "8" "2018-03-31" "PAM Panic Handbuch" "PAM Panic Handbuch"
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.\" -----------------------------------------------------------------
.\" * set default formatting
.\" -----------------------------------------------------------------
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
.ad l
.\" -----------------------------------------------------------------
.\" * MAIN CONTENT STARTS HERE *
.\" -----------------------------------------------------------------
.SH "NAME"
pam_panic_pw \- Setzen der Passw\(:orter f\(:ur das \fBpam_panic\fR(8) PAM Modul\&.
.SH "\(:UBERSICHT"
.HP \w'\fBpam_panic_pw\fR\ 'u
\fBpam_panic_pw\fR
.SH "BESCHREIBUNG"
.PP
Es setzt die Passw\(:orter f\(:ur das \fBpam_panic\fR(8) PAM Modul\&.
.PP
Dabei gibt es das "Key password" und das "Panic password"\&.
Das "Key password" dient zur normalen Authentifizierung
w\(:ahrend das "Panic password" die Panikfunktion ausf\(:uhrt\&.
.SH "R\(:UCKGABEWERTE"
.PP
0
.RS 4
Passw\(:orter erfolgreich gesetzt\&.
.RE
.PP
1
.RS 4
Keine Berechtigung\&.
.RE
.PP
2
.RS 4
Die Passwortdatei konnte nicht ge\(:offnet werden\&.
.RE
.SH "DATEIEN"
.PP
__PAMPANICPW__
.RS 4
Programm zum Setzen und Ver\(:andern der Passw\(:orter\&.
.RE
.PP
__PPASSFILE__
.RS 4
Die Passwortdatei\&.
.RE
.SH "BUGS"
.PP
Fehlerberichte (m\(:oglichst auf Englisch) und Codeverbesserungen k\(:onnen hier eingereicht werden: <https://github\&.com/pampanic/pam_panic>
.SH "SIEHE AUCH"
.PP
\fBpam_panic\fR(8),
\fBcryptsetup\fR(8),
\fBpam\&.conf\fR(5),
\fBpam\fR(8)\&.
.SH "AUTOREN"
.PD 0
.PP
Dieses pam_panic PAM Modul wurde durch Bandie <bandie@chaospott\&.de> entwickelt\&.

View File

@ -1,93 +0,0 @@
'\" t
.\" Title: pam_panic_pw
.\" Author: [see the "AUTHORS" section]
.\" Date: 2018-03-31
.\" Manual: PAM Panic Manual
.\" Source: PAM Panic Manual
.\" Language: Spanish
.\"
.TH "PAM_PANIC_PW" "8" "2018-03-31" "Manual de PAM Panic" "Manual de PAM Panic"
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.\" -----------------------------------------------------------------
.\" * set default formatting
.\" -----------------------------------------------------------------
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
.ad l
.\" -----------------------------------------------------------------
.\" * MAIN CONTENT STARTS HERE *
.\" -----------------------------------------------------------------
.SH "NOMBRE"
pam_panic_pw \- Establecer y cambiar las contrase\(~nas para el m\('odulo PAM de \fBpam_panic\fR(8)\&.
.SH "SINOPSIS"
.HP \w'\fBpam_panic_pw\fR\ 'u
\fBpam_panic_pw\fR
.SH "DESCRIPCI\('ON"
.PP
\fBpam_panic_pw\fR establece las contrase\(~nas para el m\('odulo PAM de \fBpam_panic\fR(8)\&.
.PP
Hay dos contrase\(~nas: La "contrase\(~na clave" y la "contraseña de p\('anico"\&.
La "contrase\(~na clave" se usa para autenticaci\('on normal
mientras la "contrase\(~na de p\('anico" ejecutar\('a la funci\('on de p\('anico\&.
.SH "VALORES DEVUELTOS"
.PP
0
.RS 4
Contrase\(~nas establecidas con \('exito\&.
.RE
.PP
1
.RS 4
Acceso denegado\&.
.RE
.PP
2
.RS 4
No se pudo abrir el archivo de contrase\(~na\&.
.RE
.SH "ARCHIVOS"
.PP
__PAMPANICPW__
.RS 4
Programa para establecer y cambiar las contrase\(~nas\&.
.RE
.PP
__PPASSFILE__
.RS 4
El archivo de contrase\(~na\&.
.RE
.SH "PROBLEMAS"
.PP
Por favor repuerta errores y enviar pull requests a <https://github\&.com/pampanic/pam_panic>\&.
.SH "VER TAMBI\('EN"
.PP
\fBpam_panic\fR(8),
\fBcryptsetup\fR(8),
\fBpam\&.conf\fR(5),
\fBpam\fR(8)\&.
.SH "AUTORES"
.PD 0
.PP
pam_panic fue escrito por Bandie <bandie@chaospott\&.de>\&.
.PP
Esta p\('agina de man ha sido revisada por Jordy Dickinson <jordy\&.dickinson@icloud\&.com>
.PP
Este p\('agina man fue traducido al español por dangered wolf <d@ngeredwolf\&.me>

View File

@ -1,93 +0,0 @@
'\" t
.\" Title: pam_panic_pw
.\" Author: [see the "AUTEURS" section]
.\" Date: 2018-03-31
.\" Manual: PAM Panic Manual
.\" Source: PAM Panic Manual
.\" Language: French
.\"
.TH "PAM_PANIC_PW" "8" "2018-03-31" "Manuel de PAM Panic" "Manuel de PAM Panic"
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.\" -----------------------------------------------------------------
.\" * set default formatting
.\" -----------------------------------------------------------------
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
.ad l
.\" -----------------------------------------------------------------
.\" * MAIN CONTENT STARTS HERE *
.\" -----------------------------------------------------------------
.SH "NAME"
pam_panic_pw \- Configurer et changer les mots de passe pour le module PAM \fBpam_panic\fR(8)\&.
.SH "SYNOPSIS"
.HP \w'\fBpam_panic_pw\fR\ 'u
\fBpam_panic_pw\fR
.SH "DESCRIPTION"
.PP
\fBpam_panic_pw\fR configure les mots de passe pour le module PAM \fBpam_panic\fR(8)\&.
.PP
Il-y-à deux mots de passe: le "Key password" (mot de passe de clé) et le "Panic password" (mot de passe de panique)\&.
Le "Key password" (mot de passe de clé) est utilisé pour une authentification normale alors que le "Panic password" (mot de passe de panique) executera la fonction de panique\&.
.SH "VALEURS DE RETOUR"
.PP
0
.RS 4
Mots de passe configurés avec succès\&.
.RE
.PP
1
.RS 4
Accès refusé\&.
.RE
.PP
2
.RS 4
Impossible d'ouvrir le fichier de mots de passe\&.
.RE
.SH "FICHIERS"
.PP
__PAMPANICPW__
.RS 4
Programme pour changer les mots de passe\&.
.RE
.PP
__PPASSFILE__
.RS 4
Le fichier de mots de passe\&.
.RE
.SH "BUGS"
.PP
Veuillez reporter les bugs ou envoyer une demande de correction à <https://github\&.com/pampanic/pam_panic>\&.
.SH "VOIR AUSSI"
.PP
\fBpam_panic\fR(8),
\fBcryptsetup\fR(8),
\fBpam\&.conf\fR(5),
\fBpam\fR(8)\&.
.SH "AUTEURS"
.PD 0
.PP
pam_panic à été écris par Bandie <bandie@chaospott\&.de>\&.
.PP
La page de manuel Anglaise à été révisée par Jordy Dickinson <jordy\&.dickinson@icloud\&.com>\&.
.PP
La version Française à été traduite par Dashie <dashie@otter\&.sh>\&.

View File

@ -1,91 +0,0 @@
'\" t
.\" Title: pam_panic_pw
.\" Author: [see the "AUTHORS" section]
.\" Date: 2018-05-31
.\" Manual: PAM Panic Manual
.\" Source: PAM Panic Manual
.\" Language: Japanese
.\"
.TH "PAM_PANIC_PW" "8" "2018-05-31" "PAM Panic マニュアル" "PAM Panic マニュアル"
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.\" -----------------------------------------------------------------
.\" * set default formatting
.\" -----------------------------------------------------------------
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
.ad l
.\" -----------------------------------------------------------------
.\" * MAIN CONTENT STARTS HERE *
.\" -----------------------------------------------------------------
.SH "名前"
pam_panic_pw \- \fBpam_panic\fR(8) PAM モジュールで使用するパスワードの設定と変更を行う
.SH "概要"
.HP \w'\fBpam_panic_pw\fR\ 'u
\fBpam_panic_pw\fR
.SH "説明"
.PP
\fBpam_panic_pw\fR\fBpam_panic\fR(8) PAM モジュールで使用するパスワードの設定および変更を行います。
.PP
認証パスワードとパニックパスワードの2つのパスワードを用意します。
認証パスワードは、通常の認証に使用します。
パニックパスワードは、パニック機能の発動に使用します。
.SH "返り値"
.PP
0
.RS 4
パスワードは正しく設定されました。
.RE
.PP
1
.RS 4
アクセスが拒否されました。
.RE
.PP
2
.RS 4
パスワードファイルを開けません。
.RE
.SH "ファイル"
.PP
__PAMPANICPW__
.RS 4
パスワードの設定および変更を行うためのプログラムです。
.RE
.PP
__PPASSFILE__
.RS 4
パスワードファイルです。
.RE
.SH "バグ報告"
.PP
<https://github\&.com/pampanic/pam_panic> で、バグの報告やプルリクエストを行ってください。
.SH "関連項目"
.PP
\fBpam_panic\fR(8),
\fBcryptsetup\fR(8),
\fBpam\&.conf\fR(5),
\fBpam\fR(8)\&.
.SH "著者"
.PD 0
.PP
pam_panic は Bandie <bandie@chaospott\&.de> によって作成されました。
.PP
この翻訳は Chromium Neptune <chromium@neplanet\&.com> によって作成されています。

View File

@ -7,8 +7,8 @@
.\" Language: English .\" Language: English
.\" .\"
.TH "PAM_PANIC_PW" "8" "2018-03-31" "PAM Panic Manual" "PAM Panic Manual" .TH "PAM_PANIC_PW" "8" "2018-03-31" "PAM Panic Manual" "PAM Panic Manual"
.ie \n(.g .ds Aq \(aq .\".ie \n(.g .ds Aq \(aq
.el .ds Aq ' .\".el .ds Aq '
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------
.\" * set default formatting .\" * set default formatting
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------
@ -21,7 +21,7 @@
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------
.SH "NAME" .SH "NAME"
pam_panic_pw \- Set and change the passwords for the \fBpam_panic\fR(8) PAM module\&. pam_panic_pw \- Set and change the passwords for the \fBpam_panic\fR(8) PAM module.
.SH "SYNOPSIS" .SH "SYNOPSIS"
@ -31,28 +31,28 @@ pam_panic_pw \- Set and change the passwords for the \fBpam_panic\fR(8) PAM modu
.SH "DESCRIPTION" .SH "DESCRIPTION"
.PP .PP
\fBpam_panic_pw\fR sets the passwords for the \fBpam_panic\fR(8) PAM module\&. \fBpam_panic_pw\fR sets the passwords for the \fBpam_panic\fR(8) PAM module.
.PP .PP
There are two passwords: the "key password" and the "panic password"\&. There are two passwords: the "key password" and the "panic password".
The "key password" is used for the normal authentication The "key password" is used for the normal authentication
whereas the "panic password" will execute the panic function\&. whereas the "panic password" will execute the panic function.
.SH "RETURN VALUES" .SH "RETURN VALUES"
.PP .PP
0 0
.RS 4 .RS 4
Passwords set successfully\&. Passwords set successfully.
.RE .RE
.PP .PP
1 1
.RS 4 .RS 4
Access denied\&. Access denied.
.RE .RE
.PP .PP
2 2
.RS 4 .RS 4
Could not open the password file\&. Could not open the password file.
.RE .RE
@ -60,33 +60,33 @@ Could not open the password file\&.
.PP .PP
__PAMPANICPW__ __PAMPANICPW__
.RS 4 .RS 4
Program to set and change the passwords\&. Program to set and change the passwords.
.RE .RE
.PP .PP
__PPASSFILE__ __PPASSFILE__
.RS 4 .RS 4
The password file\&. The password file.
.RE .RE
.SH "BUGS" .SH "BUGS"
.PP .PP
Please report bugs and send pull requests to <https://github\&.com/pampanic/pam_panic>\&. Please report bugs and send pull requests to <https://github.com/pampanic/pam_panic>.
.SH "SEE ALSO" .SH "SEE ALSO"
.PP .PP
\fBpam_panic\fR(8), \fBpam_panic\fR(8),
\fBcryptsetup\fR(8), \fBcryptsetup\fR(8),
\fBpam\&.conf\fR(5), \fBpam.conf\fR(5),
\fBpam\fR(8)\&. \fBpam\fR(8).
.SH "AUTHORS" .SH "AUTHORS"
.PD 0 .PD 0
.PP .PP
pam_panic was written by Bandie <bandie@chaospott\&.de>\&. pam_panic was written by Bandie <bandie@chaospott.de>.
.PP .PP
This man page has been revised by Jordy Dickinson <jordy\&.dickinson@icloud\&.com> This man page has been revised by Jordy Dickinson <jordy.dickinson@icloud.com>.

View File

@ -7,7 +7,7 @@ LICENSE : GNU-GPLv3
*/ */
#include "pam_panic_pw.h"
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
@ -17,13 +17,15 @@ LICENSE : GNU-GPLv3
#include <sys/stat.h> #include <sys/stat.h>
#include <crypt.h> #include <crypt.h>
#include "config.h" #include "config.h"
#include "../../lib/gettext.h"
#define _(String) gettext(String)
int writePasswords(char pw[][99]){ int writePasswords(char pw[][256], char* pwfile){
FILE *f = fopen(PPASSFILE, "w"); FILE *f = fopen(pwfile, "w");
if(f == NULL){ if(f == NULL){
fprintf(stderr, "ERROR opening file!\n"); fprintf(stderr, _("ERROR opening file!\n"));
return 2; return 2;
} }
@ -31,14 +33,21 @@ int writePasswords(char pw[][99]){
fclose(f); fclose(f);
chmod(PPASSFILE, 0644); chmod(pwfile, 0644);
return 0; return 0;
} }
#ifndef TEST
int main(void){ int main(void){
// gettext
setlocale(LC_ALL, "");
bindtextdomain(PACKAGE, LOCALEDIR);
textdomain(PACKAGE);
// init
time_t t; time_t t;
srand((unsigned) time(&t)); srand((unsigned) time(&t));
unsigned long seed[2]; unsigned long seed[2];
@ -49,15 +58,20 @@ int main(void){
char *password[2]; char *password[2];
char *pwvrf[2]; char *pwvrf[2];
char pw[2][99]; char pw[2][256];
char pwv[2][99]; char pwv[2][256];
char *prompt[4] = {"Key password: ", "Panic password: ", "Retype key password: ","Retype panic password: "}; char *prompt[4] = {
_("Key password: "),
_("Panic password: "),
_("Confirm key password: "),
_("Confirm panic password: ")
};
int i; int i;
if(getuid() != 0){ if(getuid() != 0){
printf("Please run this program under root. Write access to %s is mandatory.\n", PPASSFILE); return 1; printf(_("Please run this program under root. Write access to %s is mandatory.\n"), PPASSFILE); return 1;
} }
for(int j=0; j<2; j++){ for(int j=0; j<2; j++){
@ -80,10 +94,10 @@ int main(void){
int ok = strcmp(pw[j], pwv[j]) == 0; int ok = strcmp(pw[j], pwv[j]) == 0;
if(!ok){ if(!ok){
if(k==2){ if(k==2){
printf("Didn't work. Bye.\n"); printf(_("Didn't work. Bye.\n"));
return 1; return 1;
}else }else
printf("Password didn't match. Try again.\n"); printf(_("Password didn't match. Try again.\n"));
}else }else
break; break;
} }
@ -92,5 +106,6 @@ int main(void){
/* Save the results. */ /* Save the results. */
return writePasswords(pw); return writePasswords(pw, PPASSFILE);
} }
#endif

View File

@ -5,4 +5,4 @@ DATE : 2018-03-27T02:34:08+02:00
LICENSE : GNU-GPLv3 LICENSE : GNU-GPLv3
*/ */
int writePassword(char pw[][99]); int writePasswords(char pw[][256], char* pwfile);

View File

@ -1,8 +1,11 @@
CFLAGS += -DTEST AM_CFLAGS = -DTEST
bin_PROGRAMS = test bin_PROGRAMS = test
test_SOURCES = ../src/pam_panic/pam_panic_authdevice.c ../src/pam_panic/pam_panic_reject.c test.c test_SOURCES = ../src/pam_panic/pam_panic_authdevice.c ../src/pam_panic/pam_panic_reject.c ../src/pam_panic_pw/pam_panic_pw.c test.c
test_LDFLAGS = -lpam -lcunit test_LDFLAGS = -lpam -lcrypt -lcunit
all: all:
@printf "Running test...\n" @printf "Running test...\n"
./test ./test
@printf "Cleaning up...\n"
$(RM) ./pwfile

View File

@ -6,12 +6,14 @@ DATE : 2018-05-11T04:13:51+02:00
LICENSE : GNU-GPLv3 LICENSE : GNU-GPLv3
*/ */
#include <stdint.h> #include <stdint.h>
#include <unistd.h> #include <unistd.h>
#include <security/pam_modules.h> #include <security/pam_modules.h>
#include "../lib/gettext.h"
#include "../src/pam_panic/pam_panic_authdevice.h" #include "../src/pam_panic/pam_panic_authdevice.h"
#include "../src/pam_panic/pam_panic_reject.h" #include "../src/pam_panic/pam_panic_reject.h"
#include "../src/pam_panic_pw/pam_panic_pw.h"
#include <CUnit/Basic.h> #include <CUnit/Basic.h>
#define STATE_GOOD 0 #define STATE_GOOD 0
@ -23,9 +25,15 @@ LICENSE : GNU-GPLv3
#define STATE_REJ_POW 2 #define STATE_REJ_POW 2
#define STATE_REJ_NA 3 #define STATE_REJ_NA 3
#define STATE_PPP_WRITEPASSWORDS 0
#define GOODUUID "./good" #define GOODUUID "./good"
#define BADUUID "./bad" #define BADUUID "./bad"
#define PASSWORDFILE "./pwfile"
#define GOODPASSWORD "yip"
#define BADPASSWORD "69"
char* gU = GOODUUID; char* gU = GOODUUID;
char* bU = BADUUID; char* bU = BADUUID;
@ -85,6 +93,78 @@ void test_rejectNA(void) {
} }
// pam_panic_pw tests
void test_writePassword(void) {
char encpw[2][256];
strcpy(encpw[0], crypt(GOODPASSWORD, "$6$somesalt"));
strcpy(encpw[1], crypt(BADPASSWORD, "$6$somesalt"));
int ret = writePasswords(encpw, PASSWORDFILE);
CU_ASSERT_EQUAL(ret, STATE_PPP_WRITEPASSWORDS);
}
void test_passwordCheckFromFile(void) {
int ret;
char buf[2][256];
char* line = NULL;
FILE *f = fopen(PASSWORDFILE, "r");
size_t len = 0;
if(f){
int i = 0;
while(getline(&line, &len, f)){
strncpy(buf[i], line, len);
if(++i > 1)
break;
}
if(ferror(f))
CU_FAIL("Some error occured with the password file.");
fclose(f);
}
ret = strcmp(strtok(buf[0], "\n"), crypt(GOODPASSWORD, buf[0])) == 0;
CU_ASSERT_TRUE(ret);
ret = strcmp(strtok(buf[1], "\n"), crypt(BADPASSWORD, buf[1])) == 0;
CU_ASSERT_TRUE(ret);
}
void test_badPasswordCheckFromFile(void) {
int ret;
char buf[2][256];
char* line = NULL;
FILE *f = fopen(PASSWORDFILE, "r");
size_t len = 0;
if(f){
int i = 0;
while(getline(&line, &len, f)){
strncpy(buf[i], line, len);
if(++i > 1)
break;
}
if(ferror(f))
CU_FAIL("Some error occured with the password file.");
fclose(f);
}
ret = strcmp(strtok(buf[0], "\n"), crypt(BADPASSWORD, buf[0])) == 0;
CU_ASSERT_FALSE(ret);
ret = strcmp(strtok(buf[1], "\n"), crypt(GOODPASSWORD, buf[1])) == 0;
CU_ASSERT_FALSE(ret);
}
int main(void) { int main(void) {
@ -94,14 +174,16 @@ int main(void) {
// init CUnit test registry // init CUnit test registry
CU_pSuite pSuiteDevice = NULL; CU_pSuite pSuiteDevice = NULL;
CU_pSuite pSuiteReject = NULL; CU_pSuite pSuiteReject = NULL;
CU_pSuite pSuitePasswordWrite = NULL;
if (CUE_SUCCESS != CU_initialize_registry()) if (CUE_SUCCESS != CU_initialize_registry())
return CU_get_error(); return CU_get_error();
// Make suits // Make suits
pSuiteDevice = CU_add_suite("Suite pam_panic_authdevice", init_suite, clean_suite); pSuiteDevice = CU_add_suite("Suite pam_panic_authdevice", init_suite, clean_suite);
pSuiteReject = CU_add_suite("Suite pam_panic_reject", init_suite, clean_suite); pSuiteReject = CU_add_suite("Suite pam_panic_reject", init_suite, clean_suite);
pSuitePasswordWrite = CU_add_suite("Suite pam_panic_pw", init_suite, clean_suite);
if (pSuiteDevice == NULL if (pSuiteDevice == NULL
|| pSuiteReject == NULL) { || pSuiteReject == NULL || pSuitePasswordWrite == NULL) {
CU_cleanup_registry(); CU_cleanup_registry();
return CU_get_error(); return CU_get_error();
} }
@ -111,10 +193,13 @@ int main(void) {
if ( (NULL == CU_add_test(pSuiteDevice, "Authenticate with good device?", test_authDeviceGood)) if ( (NULL == CU_add_test(pSuiteDevice, "Authenticate with good device?", test_authDeviceGood))
|| (NULL == CU_add_test(pSuiteDevice, "Authenticate with bad device?", test_authDeviceBad)) || (NULL == CU_add_test(pSuiteDevice, "Authenticate with bad device?", test_authDeviceBad))
|| (NULL == CU_add_test(pSuiteDevice, "Authenticate with no device?", test_authDeviceNA)) || (NULL == CU_add_test(pSuiteDevice, "Authenticate with no device?", test_authDeviceNA))
|| (NULL == CU_add_test(pSuiteReject, "Reject: Serious?", test_rejectSerious)) || (NULL == CU_add_test(pSuiteReject, "Serious function?", test_rejectSerious))
|| (NULL == CU_add_test(pSuiteReject, "Reject: Reboot?", test_rejectReboot)) || (NULL == CU_add_test(pSuiteReject, "Reboot function?", test_rejectReboot))
|| (NULL == CU_add_test(pSuiteReject, "Reject: Poweroff?", test_rejectPoweroff)) || (NULL == CU_add_test(pSuiteReject, " Poweroff function?", test_rejectPoweroff))
|| (NULL == CU_add_test(pSuiteReject, "Reject: Nothing?", test_rejectNA)) || (NULL == CU_add_test(pSuiteReject, " Nothing at all function?", test_rejectNA))
|| (NULL == CU_add_test(pSuitePasswordWrite, "Write a password into a file?", test_writePassword))
|| (NULL == CU_add_test(pSuitePasswordWrite, "Check password file with right passwords?", test_passwordCheckFromFile))
|| (NULL == CU_add_test(pSuitePasswordWrite, "Check password file with wrong passwords?", test_badPasswordCheckFromFile))
) { ) {
CU_cleanup_registry(); CU_cleanup_registry();
return CU_get_error(); return CU_get_error();