]> git.pld-linux.org Git - packages/coreutils.git/blob - coreutils-pam.patch
- updated pl.po encoding (iso8859-2 -> utf8)
[packages/coreutils.git] / coreutils-pam.patch
1 --- coreutils-6.7/src/Makefile.am.pam   2006-11-24 21:28:10.000000000 +0000
2 +++ coreutils-6.7/src/Makefile.am       2007-01-09 17:00:01.000000000 +0000
3 @@ -103,7 +103,7 @@
4  # If necessary, add -lm to resolve use of pow in lib/strtod.c.
5  uptime_LDADD = $(LDADD) $(POW_LIB) $(GETLOADAVG_LIBS)
6  
7 -su_LDADD = $(LDADD) $(LIB_CRYPT)
8 +su_LDADD = $(LDADD) $(LIB_CRYPT) $(LIB_PAM)
9  
10  dir_LDADD += $(LIB_ACL)
11  ls_LDADD += $(LIB_ACL)
12 --- coreutils-6.10/src/su.c.orig        2007-11-25 14:23:31.000000000 +0100
13 +++ coreutils-6.10/src/su.c     2008-03-02 02:07:13.568059486 +0100
14 @@ -37,6 +37,16 @@
15     restricts who can su to UID 0 accounts.  RMS considers that to
16     be fascist.
17  
18 +#ifdef USE_PAM
19 +
20 +   Actually, with PAM, su has nothing to do with whether or not a
21 +   wheel group is enforced by su.  RMS tries to restrict your access
22 +   to a su which implements the wheel group, but PAM considers that
23 +   to be fascist, and gives the user/sysadmin the opportunity to
24 +   enforce a wheel group by proper editing of /etc/pam.conf
25 +
26 +#endif
27 +
28     Compile-time options:
29     -DSYSLOG_SUCCESS    Log successful su's (by default, to root) with syslog.
30     -DSYSLOG_FAILURE    Log failed su's (by default, to root) with syslog.
31 @@ -58,6 +68,15 @@
32     prototype (returning `int') in <unistd.h>.  */
33  #define getusershell _getusershell_sys_proto_
34  
35 +#ifdef USE_PAM
36 +# include <signal.h>
37 +# include <sys/wait.h>
38 +# include <sys/fsuid.h>
39 +# include <unistd.h>
40 +# include <security/pam_appl.h>
41 +# include <security/pam_misc.h>
42 +#endif /* USE_PAM */
43 +
44  #include "system.h"
45  #include "getpass.h"
46  
47 @@ -118,15 +137,22 @@
48  /* The user to become if none is specified.  */
49  #define DEFAULT_USER "root"
50  
51 +#ifndef USE_PAM
52  char *crypt ();
53 +#endif
54  char *getusershell ();
55  void endusershell ();
56  void setusershell ();
57  
58  extern char **environ;
59  
60 -static void run_shell (char const *, char const *, char **, size_t)
61 +static void run_shell (char const *, char const *, char **, size_t,
62 +       const struct passwd *)
63 +#ifdef USE_PAM
64 +       ;
65 +#else
66       ATTRIBUTE_NORETURN;
67 +#endif
68  
69  /* The name this program was run with.  */
70  char *program_name;
71 @@ -215,7 +241,26 @@
72  }
73  #endif
74  
75 +#ifdef USE_PAM
76 +static pam_handle_t *pamh = NULL;
77 +static int retval;
78 +static struct pam_conv conv = {
79 +  misc_conv,
80 +  NULL
81 +};
82 +
83 +#define PAM_BAIL_P if (retval) { \
84 +  pam_end(pamh, PAM_SUCCESS); \
85 +  return 0; \
86 +}
87 +#define PAM_BAIL_P_VOID if (retval) {          \
88 +  pam_end(pamh, PAM_SUCCESS);                  \
89 +return;                                                \
90 +}
91 +#endif
92 +
93  /* Ask the user for a password.
94 +   If PAM is in use, let PAM ask for the password if necessary.
95     Return true if the user gives the correct password for entry PW,
96     false if not.  Return true without asking for a password if run by UID 0
97     or if PW has an empty password.  */
98 @@ -223,6 +268,44 @@
99  static bool
100  correct_password (const struct passwd *pw)
101  {
102 +#ifdef USE_PAM
103 +  struct passwd *caller;
104 +  char *tty_name, *ttyn;
105 +  retval = pam_start(PROGRAM_NAME, pw->pw_name, &conv, &pamh);
106 +  PAM_BAIL_P;
107 +
108 +  if (getuid() != 0 && !isatty(0)) {
109 +       fprintf(stderr, _("standard in must be a tty\n"));
110 +       exit(1);
111 +  }
112 +
113 +  caller = getpwuid(getuid());
114 +  if(caller != NULL && caller->pw_name != NULL) {
115 +         retval = pam_set_item(pamh, PAM_RUSER, caller->pw_name);
116 +         PAM_BAIL_P;
117 +  }
118 +
119 +  ttyn = ttyname(0);
120 +  if (ttyn) {
121 +    if (strncmp(ttyn, "/dev/", 5) == 0)
122 +       tty_name = ttyn+5;
123 +    else
124 +       tty_name = ttyn;
125 +    retval = pam_set_item(pamh, PAM_TTY, tty_name);
126 +    PAM_BAIL_P;
127 +  }
128 +  retval = pam_authenticate(pamh, 0);
129 +  PAM_BAIL_P;
130 +  retval = pam_acct_mgmt(pamh, 0);
131 +  if (retval == PAM_NEW_AUTHTOK_REQD && getuid()) {
132 +    /* password has expired.  Offer option to change it. */
133 +    retval = pam_chauthtok(pamh, PAM_CHANGE_EXPIRED_AUTHTOK);
134 +    PAM_BAIL_P;
135 +  }
136 +  PAM_BAIL_P;
137 +  /* must be authenticated if this point was reached */
138 +  return 1;
139 +#else /* !USE_PAM */
140    char *unencrypted, *encrypted, *correct;
141  #if HAVE_GETSPNAM && HAVE_STRUCT_SPWD_SP_PWDP
142    /* Shadow passwd stuff for SVR3 and maybe other systems.  */
143 @@ -247,6 +330,7 @@
144    encrypted = crypt (unencrypted, correct);
145    memset (unencrypted, 0, strlen (unencrypted));
146    return STREQ (encrypted, correct);
147 +#endif /* !USE_PAM */
148  }
149  
150  /* Update `environ' for the new shell based on PW, with SHELL being
151 @@ -260,12 +344,18 @@
152        /* Leave TERM unchanged.  Set HOME, SHELL, USER, LOGNAME, PATH.
153           Unset all other environment variables.  */
154        char const *term = getenv ("TERM");
155 +      char const *display = getenv ("DISPLAY");
156 +      char const *xauthority = getenv ("XAUTHORITY");
157        if (term)
158         term = xstrdup (term);
159        environ = xmalloc ((6 + !!term) * sizeof (char *));
160        environ[0] = NULL;
161        if (term)
162         xsetenv ("TERM", term);
163 +      if (display)
164 +       xsetenv ("DISPLAY", display);
165 +      if (xauthority)
166 +       xsetenv ("XAUTHORITY", xauthority);
167        xsetenv ("HOME", pw->pw_dir);
168        xsetenv ("SHELL", shell);
169        xsetenv ("USER", pw->pw_name);
170 @@ -298,8 +388,13 @@
171  {
172  #ifdef HAVE_INITGROUPS
173    errno = 0;
174 -  if (initgroups (pw->pw_name, pw->pw_gid) == -1)
175 +  if (initgroups (pw->pw_name, pw->pw_gid) == -1) {
176 +#ifdef USE_PAM
177 +    pam_close_session(pamh, 0);
178 +    pam_end(pamh, PAM_ABORT);
179 +#endif
180      error (EXIT_FAILURE, errno, _("cannot set groups"));
181 +  }
182    endgrent ();
183  #endif
184    if (setgid (pw->pw_gid))
185 @@ -308,6 +403,31 @@
186      error (EXIT_FAILURE, errno, _("cannot set user id"));
187  }
188  
189 +#ifdef USE_PAM
190 +static int caught=0;
191 +/* Signal handler for parent process later */
192 +static void su_catch_sig(int sig)
193 +{
194 +  ++caught;
195 +}
196 +
197 +int
198 +pam_copyenv (pam_handle_t *pamh)
199 +{
200 +  char **env;
201 +
202 +  env = pam_getenvlist(pamh);
203 +  if(env) {
204 +    while(*env) {
205 +       if (putenv (*env))
206 +         xalloc_die ();
207 +       env++;
208 +    }
209 +  }
210 +  return(0);
211 +}
212 +#endif
213 +
214  /* Run SHELL, or DEFAULT_SHELL if SHELL is empty.
215     If COMMAND is nonzero, pass it to the shell with the -c option.
216     Pass ADDITIONAL_ARGS to the shell as more arguments; there
217 @@ -315,17 +435,49 @@
218  
219  static void
220  run_shell (char const *shell, char const *command, char **additional_args,
221 -          size_t n_additional_args)
222 +          size_t n_additional_args, const struct passwd *pw)
223  {
224    size_t n_args = 1 + fast_startup + 2 * !!command + n_additional_args + 1;
225    char const **args = xnmalloc (n_args, sizeof *args);
226    size_t argno = 1;
227 +#ifdef USE_PAM
228 +  int child;
229 +  sigset_t ourset;
230 +  int status;
231 +
232 +  retval = pam_open_session(pamh,0);
233 +  if (retval != PAM_SUCCESS) {
234 +    fprintf (stderr, _("could not open session\n"));
235 +    exit (1);
236 +  }
237 +
238 +/* do this at the last possible moment, because environment variables may
239 +   be passed even in the session phase
240 +*/
241 +  if(pam_copyenv(pamh) != PAM_SUCCESS)
242 +     fprintf (stderr, _("error copying PAM environment\n"));
243 +  
244 +  /* Credentials should be set in the parent */ 
245 +  if (pam_setcred(pamh, PAM_ESTABLISH_CRED) != PAM_SUCCESS) {
246 +    pam_close_session(pamh, 0);
247 +    fprintf(stderr, _("could not set PAM credentials\n"));
248 +    exit(1);
249 +  }
250 +
251 +  child = fork();
252 +  if (child == 0) {  /* child shell */
253 +  change_identity (pw);
254 +  pam_end(pamh, 0);
255 +#endif
256  
257    if (simulate_login)
258      {
259        char *arg0;
260        char *shell_basename;
261  
262 +      if(chdir(pw->pw_dir))
263 +             error(0, errno, _("warning: cannot change directory to %s"), pw->pw_dir);
264 +
265        shell_basename = last_component (shell);
266        arg0 = xmalloc (strlen (shell_basename) + 2);
267        arg0[0] = '-';
268 @@ -350,6 +502,66 @@
269      error (0, errno, "%s", shell);
270      exit (exit_status);
271    }
272 +#ifdef USE_PAM
273 +  } else if (child == -1) {
274 +      fprintf(stderr, _("can not fork user shell: %s"), strerror(errno));
275 +      pam_setcred(pamh, PAM_DELETE_CRED | PAM_SILENT);
276 +      pam_close_session(pamh, 0);
277 +      pam_end(pamh, PAM_ABORT);
278 +      exit(1);
279 +  }
280 +  /* parent only */
281 +  sigfillset(&ourset);
282 +  if (sigprocmask(SIG_BLOCK, &ourset, NULL)) {
283 +    fprintf(stderr, _("%s: signal malfunction\n"), PROGRAM_NAME);
284 +    caught = 1;
285 +  }
286 +  if (!caught) {
287 +    struct sigaction action;
288 +    action.sa_handler = su_catch_sig;
289 +    sigemptyset(&action.sa_mask);
290 +    action.sa_flags = 0;
291 +    sigemptyset(&ourset);
292 +    if (sigaddset(&ourset, SIGTERM)
293 +        || sigaddset(&ourset, SIGALRM)
294 +        || sigaction(SIGTERM, &action, NULL)
295 +        || sigprocmask(SIG_UNBLOCK, &ourset, NULL)) {
296 +      fprintf(stderr, _("%s: signal masking malfunction\n"), PROGRAM_NAME);
297 +      caught = 1;
298 +    }
299 +  }
300 +  if (!caught) {
301 +    do {
302 +      int pid;
303 +
304 +      pid = waitpid(-1, &status, WUNTRACED);
305 +
306 +      if (WIFSTOPPED(status)) {
307 +          kill(getpid(), SIGSTOP);
308 +          /* once we get here, we must have resumed */
309 +          kill(pid, SIGCONT);
310 +      }
311 +    } while (WIFSTOPPED(status));
312 +  }
313 +
314 +  if (caught) {
315 +    fprintf(stderr, _("\nSession terminated, killing shell..."));
316 +    kill (child, SIGTERM);
317 +  }
318 +  /* Not checking retval on this because we need to call close session */
319 +  pam_setcred(pamh, PAM_DELETE_CRED | PAM_SILENT);
320 +  retval = pam_close_session(pamh, 0);
321 +  PAM_BAIL_P_VOID;
322 +  retval = pam_end(pamh, PAM_SUCCESS);
323 +  PAM_BAIL_P_VOID;
324 +  if (caught) {
325 +    sleep(2);
326 +    kill(child, SIGKILL);
327 +    fprintf(stderr, _(" ...killed.\n"));
328 +    exit(-1);
329 +  }
330 +  exit (WEXITSTATUS(status));
331 +#endif /* USE_PAM */
332  }
333  
334  /* Return true if SHELL is a restricted shell (one not returned by
335 @@ -517,9 +729,9 @@
336    shell = xstrdup (shell ? shell : pw->pw_shell);
337    modify_environment (pw, shell);
338  
339 +#ifndef USE_PAM
340    change_identity (pw);
341 -  if (simulate_login && chdir (pw->pw_dir) != 0)
342 -    error (0, errno, _("warning: cannot change directory to %s"), pw->pw_dir);
343 +#endif
344  
345 -  run_shell (shell, command, argv + optind, MAX (0, argc - optind));
346 +  run_shell (shell, command, argv + optind, MAX (0, argc - optind), pw);
347  }
348 --- coreutils-6.7/doc/coreutils.texi.pam        2006-10-27 15:30:48.000000000 +0100
349 +++ coreutils-6.7/doc/coreutils.texi    2007-01-09 17:00:01.000000000 +0000
350 @@ -13395,8 +13395,11 @@
351  @findex syslog
352  @command{su} can optionally be compiled to use @code{syslog} to report
353  failed, and optionally successful, @command{su} attempts.  (If the system
354 -supports @code{syslog}.)  However, GNU @command{su} does not check if the
355 -user is a member of the @code{wheel} group; see below.
356 +supports @code{syslog}.)
357 +
358 +This version of @command{su} has support for using PAM for
359 +authentication.  You can edit @file{/etc/pam.d/su} to customize its
360 +behaviour.
361  
362  The program accepts the following options.  Also see @ref{Common options}.
363  
364 @@ -11892,32 +11892,6 @@
365  the exit status of the subshell otherwise
366  @end display
367  
368 -@cindex wheel group, not supported
369 -@cindex group wheel, not supported
370 -@cindex fascism
371 -@subsection Why GNU @command{su} does not support the @samp{wheel} group
372 -
373 -(This section is by Richard Stallman.)
374 -
375 -@cindex Twenex
376 -@cindex MIT AI lab
377 -Sometimes a few of the users try to hold total power over all the
378 -rest.  For example, in 1984, a few users at the MIT AI lab decided to
379 -seize power by changing the operator password on the Twenex system and
380 -keeping it secret from everyone else.  (I was able to thwart this coup
381 -and give power back to the users by patching the kernel, but I
382 -wouldn't know how to do that in Unix.)
383 -
384 -However, occasionally the rulers do tell someone.  Under the usual
385 -@command{su} mechanism, once someone learns the root password who
386 -sympathizes with the ordinary users, he or she can tell the rest.  The
387 -``wheel group'' feature would make this impossible, and thus cement the
388 -power of the rulers.
389 -
390 -I'm on the side of the masses, not that of the rulers.  If you are
391 -used to supporting the bosses and sysadmins in whatever they do, you
392 -might find this idea strange at first.
393 -
394  
395  @node Delaying
396  @chapter Delaying
397 --- coreutils-6.10/configure.ac.orig    2008-01-13 09:14:23.000000000 +0100
398 +++ coreutils-6.10/configure.ac 2008-03-02 02:08:10.027276914 +0100
399 @@ -44,6 +44,13 @@
400  gl_INIT
401  coreutils_MACROS
402  
403 +dnl Give the chance to enable PAM
404 +AC_ARG_ENABLE(pam, dnl
405 +[  --enable-pam              Enable use of the PAM libraries],
406 +AC_DEFINE(USE_PAM, 1, [Define if you want to use PAM])
407 +LIB_PAM="-ldl -lpam -lpam_misc"
408 +)
409 +
410  AC_FUNC_FORK
411  
412  optional_bin_progs=
413 @@ -332,6 +339,13 @@
414  AM_GNU_GETTEXT([external], [need-formatstring-macros])
415  AM_GNU_GETTEXT_VERSION([0.15])
416  
417 +# just in case we want PAM
418 +AC_SUBST(LIB_PAM)
419 +# with PAM su doesn't need libcrypt
420 +if test -n "$LIB_PAM" ; then
421 +  LIB_CRYPT=
422 +fi
423 +
424  AC_CONFIG_FILES(
425    Makefile
426    doc/Makefile
427 --- coreutils-6.10/po/pl.po.orig        2008-01-16 21:22:08.000000000 +0100
428 +++ coreutils-6.10/po/pl.po     2008-03-02 02:09:23.671473657 +0100
429 @@ -8875,6 +8875,49 @@
430  msgid "Usage: %s [OPTION]... [-] [USER [ARG]...]\n"
431  msgstr "Składnia: %s [OPCJA]... [-] [UŻYTKOWNIK [ARGUMENT]...]\n"
432  
433 +#: src/su.c:300
434 +msgid "standard in must be a tty\n\n"
435 +msgstr "standardowe wejście musi być terminalem\n"
436 +
437 +#: src/su.c:425
438 +msgid "could not open session\n"
439 +msgstr "nie można otworzyć sesji\n"
440 +
441 +#: src/su.c:433
442 +msgid "error copying PAM environment\n"
443 +msgstr "błąd podczas kopiowania środowiska PAM\n"
444 +
445 +#: src/su.c:450
446 +msgid "could not set PAM credentials\n"
447 +msgstr "błąd podczas ustawiania uwierzytelnienia PAM\n"
448 +
449 +#: src/su.c:471
450 +#, c-format
451 +msgid "cannot fork user shell: %s"
452 +msgstr "nie można utworzyć procesu powłoki użytkownika: %s"
453 +
454 +#: src/su.c:477
455 +#, c-format
456 +msgid "%s: signal malfunction\n"
457 +msgstr "%s: błędne działanie sygnałów\n"
458 +
459 +#: src/su.c:490
460 +#, c-format
461 +msgid "%s: signal masking malfunction\n"
462 +msgstr "%s: błędne działanie maskowania sygnałów\n"
463 +
464 +#: src/su.c:509
465 +msgid ""
466 +"\n"
467 +"Session terminated, killing shell..."
468 +msgstr ""
469 +"\n"
470 +"Sesja zakończona, zabijanie powłoki..."
471 +
472 +#: src/su.c:519
473 +msgid " killed.\n"
474 +msgstr " zabito.\n"
475 +
476  #: src/su.c:385
477  msgid ""
478  "Change the effective user id and group id to that of USER.\n"
479 diff -Nur coreutils-5.2.1.orig/man/es/su.1 coreutils-5.2.1/man/es/su.1
480 --- coreutils-5.2.1.orig/man/es/su.1    Mon Apr 12 14:26:19 1999
481 +++ coreutils-5.2.1/man/es/su.1 Thu Mar 18 17:05:55 2004
482 @@ -47,13 +47,6 @@
483  puede ser compilado para reportar fallo, y opcionalmente éxito en syslog.
484  .B su
485  intentará utilizar syslog.
486 -.PP
487 -Este programa no soporta el grupo "wheel", el cual restringe quien podrá
488 -ejecutar
489 -.B su
490 -hacia la cuenta de root (el superusuario) ya que esta política podría
491 -ayudar a los administradores de máquinas a facilitar un uso inadecuado a otros
492 -usuarios.
493  .SS OPCIONES
494  .TP
495  .I "\-c COMANDO, \-\-command=COMANDO"
496 @@ -118,22 +111,3 @@
497  .I "\-\-version"
498  Escribe información sobre la versión en  la  salida estándar y acaba sin
499  provocar error.
500 -
501 -.SH Por que GNU no soporta el grupo "wheel" (por Richard Stallman)
502 -A veces, algunos listillos intentan hacerse con el poder total
503 -sobre el resto de usuarios. Por ejemplo, en 1984, un grupo de usuarios del
504 -laboratorio de Inteligencia Artificial del MIT decidieron tomar el poder
505 -cambiando el password de operador del sistema Twenex y manteniendolo secreto
506 -para el resto de usuarios. (De todas maneras, hubiera sido posible desbaratar
507 -la situación y devolver el control a los usuarios legítimos parcheando el
508 -kernel, pero no sabría como realizar esta operación en un sistema Unix.)
509 -.PP
510 -Sin embargo, casualmente alguien contó el secreto. Mediante el uso habitual de
511 -.B su
512 -una vez que alguien conoce el password de root puede contarselo al resto de 
513 -usuarios. El grupo "wheel" hará que esto sea imposible, protegiendo así el poder
514 -de los superusuarios.
515 -.PP
516 -Yo estoy del lado de las masas, no de los superusuarios. Si eres de los que
517 -estan de acuerdo con los jefes y los administradores de sistemas en cualquier
518 -cosa que hagan, al principio encontrarás esta idea algo extraña.
519 diff -Nur coreutils-5.2.1.orig/man/fr/su.1 coreutils-5.2.1/man/fr/su.1
520 --- coreutils-5.2.1.orig/man/fr/su.1    Sun Aug 10 12:00:00 2003
521 +++ coreutils-5.2.1/man/fr/su.1 Thu Mar 18 17:05:55 2004
522 @@ -54,13 +54,6 @@
523  peut être compilé afin de fournir des rapports d'échec, et éventuellement
524  de réussite des tentatives d'utilisation de
525  .BR su .
526 -.PP
527 -Ce programme ne gère pas le "groupe wheel" utilisé pour restreindre
528 -l'accès par 
529 -.B su
530 -au compte Super-Utilisateur, car il pourrait aider des administrateurs
531 -système fascistes à disposer d'un pouvoir incontrôlé
532 -sur les autres utilisateurs.
533  .SS OPTIONS
534  .TP
535  .I "\-c COMMANDE, \-\-command=COMMANDE"
536 @@ -119,25 +112,5 @@
537  .I "\-\-version"
538  Afficher un numéro de version sur la sortie standard et se terminer normalement.
539  
540 -.SH Pourquoi GNU SU ne gère-t-il pas le groupe `wheel' (par Richard Stallman)
541 -Il peut arriver qu'un petit groupe d'utilisateurs essayent de s'approprier
542 -l'ensemble du système. Par exemple, en 1984, quelques utilisateurs du
543 -laboratoire d'I.A du MIT ont tentés de prendre le pouvoir en modifiant
544 -le mot de passe de l'opérateur sur le système Twenex, et en
545 -gardant ce mot de passe secret. (J'ai pu les en empêcher en modifiant le noyau, et
546 -restaurer ainsi les autres accès, mais je ne saurais pas en faire autant
547 -sous Unix).
548 -.PP
549 -Néanmoins, il arrive parfois que les chefs fournissent le mot
550 -de passe de root à un utilisateur ordinaire.
551 -Avec le mécanisme habituel de \fBsu\fP,
552 -une fois que quelqu'un connaît ce mot de passe, il peut le transmettre
553 -à ses amis. Le principe du "groupe wheel" rend ce partage impossible,
554 -ce qui renforce la puissance des chefs.
555 -.PP
556 -Je me situe du cote du peuple, pas du côté des chefs. Si vous avez l'habitude
557 -de soutenir les patrons et les administrateurs systèmes quoi qu'ils fassent,
558 -cette idée peut vous paraître étrange au premier abord.
559 -
560  .SH TRADUCTION
561  Christophe Blaess, 1997-2003.
562 diff -Nur coreutils-5.2.1.orig/man/hu/su.1 coreutils-5.2.1/man/hu/su.1
563 --- coreutils-5.2.1.orig/man/hu/su.1    Sun Jul  9 14:19:12 2000
564 +++ coreutils-5.2.1/man/hu/su.1 Thu Mar 18 17:05:55 2004
565 @@ -151,33 +151,6 @@
566  .B "\-\-version"
567  A program verziójáról ír ki információt a standard kimenetre, majd 
568  sikeres visszatérési értékkel kilép.
569 -.SH Miért nem támogatja a GNU su a wheel csoportot? (Richard Stallman)
570 -
571 -Néha a rendszer fölötti teljes ellenõrzést egy néhány emberbõl 
572 -álló csoport akarja kézbe venni. Például 1984-ben pár user a MIT AI
573 -laborban úgy döntött, hogy átveszik az irányítást a Twenex rendszer
574 -operátori jelszavának megváltoztatásával, és annak titokban tartásával. 
575 -(A puccsot sikerült leverni, és a felhasználókat jogaikba visszahelyezni 
576 -egy kernel patch segítségével, de Unix alatt ezt nem tudtam volna megcsinálni.)
577 -(A fordító megj.: a wheel csoportot ezzel a módszerrel könnyen
578 -önkényesen is leszûkíthetik a csoporttagok , így tulajdonképpen nincs sok értelme.)
579 -.PP
580 -Néha az uralmon levõk elárulják a root jelszót. A szokásos su 
581 -mechanizmus szerint, ha valaki megtudja a root jelszót, és 
582 -szimpatizál a többi közönséges felhasználóval, elárulhatja nekik 
583 -is. A wheel csoport ezt lehetetlenné tenné, és így bebetonozná az 
584 -uralmon levõ hatalmát.
585 -.PP
586 -Én a tömegek oldalán állok, nem az uralkodókén. Ha te mindig a 
587 -fõnökök és a rendszergazdák oldalán állsz, bármit is tesznek, akkor 
588 -valószínûleg furcsálni fogod ezt a hozzáállást.
589 -.PP
590 -A fordító megjegyzése: 
591 -Valami jó azért mégis lenne a wheel csoportban: az, hogy ha a root 
592 -jelszó kitudódna azzal nem tudna bármelyik felhasználó közvetlenül 
593 -visszaélni. A wheel csoporthoz hasonló dolgot lehet elérni a
594 -.B sudo
595 -csomaggal.
596  .SH MEGJEGYZÉS
597  A hibákat a bug-sh-utils@gnu.org címen lehet jelenteni.
598  Az oldalt Ragnar Hojland Espinosa <ragnar@macula.net> frissítette.
599 diff -Nur coreutils-5.2.1.orig/man/it/su.1 coreutils-5.2.1/man/it/su.1
600 --- coreutils-5.2.1.orig/man/it/su.1    Mon Jul  1 23:09:38 2002
601 +++ coreutils-5.2.1/man/it/su.1 Thu Mar 18 17:05:55 2004
602 @@ -52,11 +52,6 @@
603  .B su
604  può essere compilato per riportare tramite syslog gli errori, ed
605  eventualmente anche i successi che ottiene.
606 -.PP
607 -Questo programma non supporta un "gruppo wheel" che limita chi può fare
608 -.B su
609 -agli account del superuser, poiché ciò può aiutare amministratori di
610 -sistema "fascisti" a tenere un potere inautorizzato sugli altri utenti.
611  .SS OPZIONI
612  .TP
613  .I "\-c COMANDO, \-\-command=COMANDO"
614 @@ -117,21 +112,3 @@
615  .I "\-\-version"
616  Stampa in standard output informazioni sulla versione e esce (con
617  successo). 
618 -.SH Perché GNU su non supporta il gruppo wheel (di Richard Stallman)
619 -Qualche volta pochi utenti provano a tenere il potere assoluto sul
620 -resto degli utenti. Per esempio, nel 1984, alcuni utenti nel
621 -laboratorio di AI del MIT decisero impossessarsi del potere cambiando
622 -la password dell'operatore su un sistema Twenex e tenendola segreta a
623 -tutti gli altri (fui in grado di contrastare questo colpaccio e
624 -restituire il potere agli utenti ``patch-ando'' il kernel, ma non
625 -saprei come fare ciò in Unix).
626 -.PP
627 -Comunque, occasionalmente i sovrani lo fanno. Tramite l'usuale
628 -meccanismo  su, una volta che qualcuno che simpatizzi con gli
629 -utenti normali, abbia imparato la password di root può dirla anche
630 -agli altri. La caratteristica del "gruppo wheel" renderebbe ciò
631 -impossibile, consolidando quindi il potere dei sovrani.
632 -.PP
633 -Io sono dalla parte delle masse, non da quella dei sovrani. Se tu sei
634 -abituato a sostenere i capi e gli amministratori di sistema in tutto
635 -quello che fanno, potresti trovare questa idea strana all'inizio.
636 diff -Nur coreutils-5.2.1.orig/man/ja/su.1 coreutils-5.2.1/man/ja/su.1
637 --- coreutils-5.2.1.orig/man/ja/su.1    Sun Dec 14 16:06:54 2003
638 +++ coreutils-5.2.1/man/ja/su.1 Thu Mar 18 17:05:55 2004
639 @@ -83,12 +83,6 @@
640  .B su
641  ¤¬¼ºÇÔ¤·¤¿¤È¤­ syslog ¤Ë¥ì¥Ý¡¼¥È¤¹¤ë¤è¤¦¤Ë¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤³¤È
642  ¤¬¤Ç¤­¤ë¡ÊÀ®¸ù¤ò¥ì¥Ý¡¼¥È¤¹¤ë¤è¤¦¤Ë¤â¤Ç¤­¤ë¡Ë¡£
643 -.PP
644 -¤³¤Î¥×¥í¥°¥é¥à¤Ï "wheel group" ¤Îµ¡Ç½¡Ê
645 -.B su
646 -¤Ë¤è¤Ã¤Æ¥¹¡¼¥Ñ¡¼¥æ¡¼¥¶¡¼¥¢¥«¥¦¥ó¥È¤Ë¤Ê¤ì¤ë¥æ¡¼¥¶¤òÀ©¸Â¤¹¤ëµ¡Ç½¡Ë¤ò¥µ¥Ý¡¼
647 -¥È¤·¤Ê¤¤¡£¤³¤ì¤ÏÀìÀ©Åª¤Ê¥·¥¹¥Æ¥à´ÉÍý¼Ô¤¬Â¾¤Î¥æ¡¼¥¶¡¼¤ËÉÔÅö¤Ê¸¢ÎϤò¿¶¤ë
648 -¤¨¤Ê¤¤¤è¤¦¤Ë¤¹¤ë¤¿¤á¤Ç¤¢¤ë¡£
649  .SS OPTIONS
650  .TP
651  .I "\-c COMMAND, \-\-command=COMMAND"
652 @@ -151,19 +145,3 @@
653  .TP
654  .I "\-\-version"
655  ¥Ð¡¼¥¸¥ç¥ó¾ðÊó¤òɸ½à½ÐÎϤËɽ¼¨¤·¡¢¼Â¹ÔÀ®¸ù¤òÊÖ¤·¤Æ½ªÎ»¤¹¤ë¡£
656 -.SH GNU su ¤Ç wheel ¥°¥ë¡¼¥×¤ò¥µ¥Ý¡¼¥È¤·¤Ê¤¤¤ï¤±¡ÊRichard Stallman¡Ë
657 -¤È¤­¤ª¤ê¡¢¾¯¿ô¤Î¥æ¡¼¥¶¡¼¤Ë¤è¤Ã¤Æ¡¢Â¾¤Î¥æ¡¼¥¶¡¼¤ËÂФ¹¤ëÁ´¸¢¤ò¾¸°®¤·¤è¤¦
658 -¤È¤¹¤ë»î¤ß¤¬¤Ê¤µ¤ì¤ë¤³¤È¤¬¤¢¤ë¡£Î㤨¤Ð 1984 Ç¯¡¢ MIT AI ¥é¥Ü¤Î¾¯¿ô¤Î¥æ¡¼
659 -¥¶¡¼¤Ï Twenex ¥·¥¹¥Æ¥à¤Î¥ª¥Ú¥ì¡¼¥¿¡¼¥Ñ¥¹¥ï¡¼¥É¤ÎÊѹ¹¸¢¸Â¤ò¶¯Ã¥¤·¡¢¤³¤ì
660 -¤ò¾¤Î¥æ¡¼¥¶¡¼¤«¤éÈëÆ¿¤¹¤ë¤³¤È¤Ë·èÄꤷ¤¿¡Ê¤³¤ÎºÝ¤Ë¤Ï»ä¤Ï¤³¤Î¥¯¡¼¥Ç¥¿¡¼
661 -¤Î΢¤ò¤«¤­¡¢¥«¡¼¥Í¥ë¤Ë¥Ñ¥Ã¥Á¤òÅö¤Æ¤Æ¸¢¸Â¤ò¼è¤êÊÖ¤¹¤³¤È¤ËÀ®¸ù¤·¤¿¡£¤·¤«
662 -¤·¤³¤ì¤¬ Unix ¤Ç¤¢¤Ã¤¿¤é¡¢»ä¤Ë¤Ï¤É¤¦¤¹¤ì¤Ð¤è¤¤¤«¤ï¤«¤é¤Ê¤«¤Ã¤¿¤À¤í¤¦¡Ë¡£
663 -.PP
664 -¤·¤«¤·¤Ê¤¬¤é¡¢»þ¤Ë¤ÏÀìÀ©¼Ô¤âÈëÌ©¤òϳ¤é¤¹¤â¤Î¤Ç¤¢¤ë¡£Ä̾ï¤Î su ¤Î¥á¥«¥Ë
665 -¥º¥à¤Ç¤Ï¡¢°ìÈ̥桼¥¶¡¼¤Î¦¤ËΩ¤Ä¼Ô¤¬ root ¤Î¥Ñ¥¹¥ï¡¼¥É¤òÃΤì¤Ð¡¢¤³¤ì¤ò
666 -¾¤Î¥æ¡¼¥¶¡¼¤Ë¤âÃΤ餻¤ë¤³¤È¤¬¤Ç¤­¤ë¡£¤·¤«¤· "wheel group" µ¡Ç½¤Ï¤³¤ì
667 -¤òÉÔ²Äǽ¤Ë¤·¡¢·ë²Ì¤È¤·¤ÆÀìÀ©¼Ôã¤Î¸¢¸Â¤ò¶¯¸Ç¤¿¤ë¤â¤Î¤Ë¤·¤Æ¤·¤Þ¤¦¡£
668 -.PP
669 -»ä¤ÏÂç½°¤Î¦¤ËΩ¤Ä¤â¤Î¤Ç¤¢¤ê¡¢ÀìÀ©Åª¤ÊΩ¾ì¤Ë¤ÏÈ¿ÂФ¹¤ë¡£¤¢¤Ê¤¿¤Ï¥Ü¥¹¤ä
670 -¥·¥¹¥Æ¥à´ÉÍý¼Ô¤Î¤ä¤ê¸ý¤Ë½¾¤¦¤³¤È¤Ë´·¤ì¤Æ¤¤¤ë¤«¤âÃΤì¤Ê¤¤¤¬¡¢¤½¤Î¾ì¹ç¤Ï
671 -¤Þ¤º¤½¤Î¤³¤È¼«¿È¤òÉԻ׵Ĥ˻פ¦¤Ù¤­¤Ç¤Ï¤Ê¤¤¤À¤í¤¦¤«¡£
672 diff -Nur coreutils-5.2.1.orig/man/pl/su.1 coreutils-5.2.1/man/pl/su.1
673 --- coreutils-5.2.1.orig/man/pl/su.1    Tue Jun 20 16:07:31 2000
674 +++ coreutils-5.2.1/man/pl/su.1 Thu Mar 18 17:05:55 2004
675 @@ -78,8 +78,6 @@
676  mo¿e zostaæ tak skompilowane, by raportowa³o nieudane, lub opcjonalnie
677  równie¿ udane próby zmiany id przy u¿yciu
678  .BR su .
679 -Jednak \fBsu\fP w wersji GNU nie sprawdza czy u¿ytkownik jest cz³onkiem grupy
680 -`wheel' -- patrz poni¿ej.
681  .SH OPCJE
682  .TP
683  .BR \-c " \fIpolecenie\fP, " \-\-command= \fIpolecenie
684 @@ -139,25 +137,6 @@
685  .TP
686  .B \-\-version
687  Wy¶wietla numer wersji programu i koñczy pracê.
688 -.SH Dlaczego GNU `su' nie obs³uguje grupy `wheel'
689 -
690 -(Sekcjê tê napisa³ Richard Stallman)
691 -
692 -Czasami kilku u¿ytkowników usi³uje sprawowaæ nieograniczon± w³adzê nad
693 -pozosta³ymi. Na przyk³ad, w 1984, kilku u¿ytkowników w laboratorium AI MIT
694 -zdecydowa³o siê `przej±æ w³adzê' zmieniaj±c has³o operatora systemu Twenex
695 -i trzymaj±c je w tajemnicy przed wszystkimi innymi. (Uda³o mi siê
696 -udaremniæ ten zamach i przywróciæ w³adzê u¿ytkownikom ³ataj±c j±dro, lecz
697 -nie wiedzia³bym jak zrobiæ to w Uniksie.)
698 -
699 -Jednak, od czasu do czasu panuj±cy wyjawiaj± komu¶. Przy zwyk³ym
700 -mechanizmie `su', kto¶, kto pozna³ has³o root'a i sympatyzuje ze zwyk³ymi
701 -u¿ytkownikami, mo¿e przekazaæ je pozosta³ym. Funkcja "grupy wheel"
702 -uniemo¿liwia³aby to, i w ten sposób umacnia³a w³adzê rz±dz±cych.
703 -
704 -Jestem po stronie mas, nie po stronie rz±dz±cych. Je¿eli zwyk³e¶ popieraæ
705 -szefów i administratorów systemów we wszystkim, co robi±, podej¶cie to mo¿e
706 -pocz±tkowo wydaæ Ci siê dziwne.
707  .SH "ZG£ASZANIE B£ÊDÓW"
708  B³êdy proszê zg³aszaæ, w jêz.ang., do <bug-sh-utils@gnu.org>.
709  .SH COPYRIGHT
This page took 0.126876 seconds and 3 git commands to generate.