Configuré mi primer servidor Ubuntu e inmediatamente inicié sesión (como myuser
) para comenzar a personalizarlo. Voy /opt
y corro mkdir sandbox
.
mkdir: No se puede crear el directorio 'sandbox': permiso denegado
¿¡¿Permiso denegado?!? Bueno. Así que ejecuto sudo -i
e ingreso myuser
la contraseña. Vuelva a ejecutar el mkdir
comando y ¡listo! Se crea el directorio. Me desconecto.
Vuelvo a iniciar sesión myuser
, navego /opt
y ejecuto ls
: ¡nada! ¡No hay directorios visibles dentro /opt
! ¿¡¿¡Qué!?!?
Entonces hago sudo nuevamente sudo -i
y vuelvo a ejecutar ls
.Ahorase ve sandbox/
.
Creo que me faltan algunos conocimientos fundamentales de Linux con respecto a usuarios y raíces. Durante la configuración/instalación del servidor, me pidió que creara un usuario, lo cual hice ( myuser
). IficticioEste también sería el usuario root (con privilegios de administrador completos), ya que no solo fue el usuario que creé durante la instalación, ¡sino que es el primer usuario en el sistema!
Entonces, ¿por qué myuser
no puede?
- ¿Crear directorios fuera de
/home/myuser
sin hacer sudo? - Ver directorios creados en "modo sudo"
También soy vago sobre la diferencia entre sudo
y su
el root
usuario.
En última instancia, además de comprender completamente estos conceptos básicos, me gustaría tener instalado un montón de software de servidor /opt/sandbox/
que pueda funcionar las 24 horas del día e interactuar con el sistema de archivos local. Ahora no estoy seguro de si debería instalar estas aplicaciones mientras estoy conectado simplemente como myuser
, sudoed como myuser
o algo más.
Estos servidores están dentro de una LAN doméstica privada y segura, por lo que no necesito un "administrador real" ni controles de seguridad locos. Solo estoy configurando un entorno de desarrollo simple para una pequeña herramienta de software que estoy escribiendo. Gracias de antemano por cualquier ayuda con las preguntas anteriores.
Respuesta1
/opt por defecto es propiedad del usuario root
y del grupo root
.
Pruebe l /
y verá que la carpeta /opt es propiedad de " root root
", que son el usuario y el grupo respectivamente.
Si realmente desea crear y modificar archivos dentro de /opt con un usuario no root, deberá crear una carpeta allí y modificar sus permisos para que un usuario no root pueda acceder libremente a ella.
Ejemplo:
sudo mkdir /opt/sandbox
sudo chown myuser:users /opt/sandbox
El primer comando crea la carpeta, pero es propiedad de root
un grupo. root
El segundo comando cambia la propiedad ( chown
) a su nombre de usuario myuser
y lo convierte en parte del grupo users
(del cual myuser
forma parte).
Respuesta2
Entonces, ¿por qué myuser no puede: ...
Intentar
ls -l sandbox
getfacl sandbox
Si el resultado de estos no es claro o no explica lo que está viendo, corte y pegue el resultado en una edición de su pregunta.
También soy vago sobre la diferencia entre sudo, su y el usuario root.
sudo
le otorga privilegios elevados de root (es decir, administrador) para un solo comando. Hay un archivo de configuración para sudo en el que puedes controlar qué usuarios pueden hacer qué.
su
le brinda privilegios elevados para múltiples comandos al brindarle una nueva sesión de shell con una identificación de usuario efectiva de root.
El usuario root es un usuario especial llamado root que puede ver en /etc/passwd. Hay aproximadamente una docena de usuarios más que siempre se encuentran en un sistema Unix o Linux. Las personas generalmente tienen una cuenta normal y la usan para todo el trabajo, excepto las acciones que requieren absolutamente privilegios de root (por ejemplo, instalar software para que lo utilicen todos los usuarios del sistema). Esto hace que sea más difícil para el malware hacer cosas malas y que a usted le resulte más difícil cometer errores irrecuperables.
Me gustaría tener instalado un montón de software de servidor
Me parece mejor utilizar el administrador de paquetes del sistema para instalar paquetes. Preferiría no crear carpetas en/opt a mano, esa sería mi última opción.