GNU/Linux >> Tutoriales Linux >  >> Linux

¿La cuenta raíz siempre tiene UID/GID 0?

En realidad hay dos partes a tu pregunta.

¿La cuenta de superusuario siempre tiene uid/gid 0/0 en Linux?

Sí. Como Rich Homolka señala en un comentario, hay un código en el kernel que verifica explícitamente el uid 0 cuando necesita verificar el usuario raíz, lo que significa que la raíz siempre tiene al menos uid 0.

¿El nombre de la cuenta de usuario con uid 0 es siempre root? ?

No. root es solo un nombre, que figura en /etc/passwd o en algún otro almacén de autenticación. También podría llamar a la cuenta admin , y al propio sistema operativo no le importará, pero es posible que a algunas aplicaciones no les guste porque esperan que exista una cuenta privilegiada llamada root . Llamar a la cuenta uid 0 en un *nix root es una convención muy arraigada, pero el sistema no la requiere (aunque puede ser requerida por cierto software de usuario, posiblemente incluidas las utilidades de administración del sistema).

También vale la pena señalar que, como señaló Simon Richter, en los BSD a menudo existe un segundo uid 0 cuenta, por convención llamada toor (que es "raíz" escrito al revés, y también viene léxicamente después root en una lista ordenada alfabéticamente). Por ejemplo, FreeBSD lo usa para proporcionar a un usuario raíz una configuración de shell personalizada, dejando al usuario raíz con un shell predeterminado que se garantiza que existe en la partición raíz del sistema (útil para propósitos de recuperación).


1) el administrador siempre es uid ==0. Esto está codificado en el kernel. Se necesitaría algo de codificación en el kernel para cambiar esto. No tiene mucho sentido esto, así que no está hecho. Por ejemplo, sería inconsistente para otros Unix que comparten el mismo NFS, por ejemplo.

2) uid 0 no necesariamente se asigna a la raíz. El mejor ejemplo es FreeBSD. Tiene dos cuentas uid ==0, la diferencia es el shell. root tiene shell /bin/sh, que es un shell simple, útil cuando sus discos están dañados y necesita fsck /usr. toor usa tcsh, que es mucho más útil en situaciones que no son de emergencia, ya que tiene cosas como historial, etc.

Otro ejemplo más personal; un trabajo que tenía donde tenían una cuenta raíz equivalente (es decir, uid =0) sobre NIS. La contraseña, en blanco! Porque el nuevo administrador del sistema no podía recordar la contraseña de root en las máquinas. Grité sobre esto por razones obvias (las contraseñas NIS, por definición, no pueden ocultar su ausencia). No estaba contento con esta cuenta.

Y realmente no es el sistema el que da uid 0 es root, eres tú. Cambia esto usando archivos passwd u otros directorios de nombres (NIS, ldap) pero no está compilado. Aunque debe tener al menos una cuenta uid 0 en /etc/passwd, ya que es posible que no tenga redes cuando realmente las necesite. .

Entonces, root siempre es uid 0, pero uid 0 no necesariamente siempre es root.


Bueno, para los sistemas que usan el servidor nonStop, ROOT_UID no es 0 sino 65535.

Usuarios y grupos de OSS El entorno OSS no proporciona nombres de usuario e ID de usuario predeterminados comunes de UNIX a menos que un administrador del sitio los cree explícitamente. Sin embargo, existen nombres de usuario e ID de usuario equivalentes de OSS. Por ejemplo, los privilegios normalmente asociados con el nombre de usuario root de UNIX y la ID de usuario de 0 existen para la ID de usuario (UID) de OSS de 65535 (la super ID), que es el usuario SUPER.SUPER y sus alias.

Consulte https://h20195.www2.hpe.com/V2/GetPDF.aspx/4AA4-6316ENW.pdf

En coreutils, puede encontrar ese archivo de encabezado root-uid.h:

/* The user ID that always has appropriate privileges in the POSIX sense.

   Copyright 2012-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/>.

   Written by Paul Eggert.  */

#ifndef ROOT_UID_H_
#define ROOT_UID_H_

/* The user ID that always has appropriate privileges in the POSIX sense.  */
#ifdef __TANDEM
# define ROOT_UID 65535
#else
# define ROOT_UID 0
#endif

#endif

Linux
  1. Consejo rápido:agregue un usuario al grupo sudoers

  2. Deshabilitar el inicio de sesión con la cuenta raíz

  3. ¿La diferencia entre usuario y cuenta de servicio?

  4. ¿Por qué el usuario raíz necesita permiso de Sudo?

  5. ¿Existe el Comando Inverso de Corte?

Métodos para deshabilitar la cuenta raíz en Linux

¿Cómo deshabilitar el inicio de sesión SSH para el usuario raíz en Linux?

Inicie siempre la Terminal como usuario raíz (sudo) en Ubuntu

Cómo cambiar la contraseña de la cuenta raíz de Linux VPS

¿El único usuario de un sistema *nix debe tener dos cuentas?

¿Por qué el bit setuid funciona de manera inconsistente?