34 votos

Línea de comandos de seguridad de trucos

La línea de comandos y secuencias de comandos es peligroso. Hacer un pequeño error tipográfico con rm-rf y usted está en un mundo de dolor. Confundir prod con la etapa en el nombre de la base de datos mientras se ejecuta un script de importación y se deshuesan (si están en el mismo servidor, lo cual no es bueno, pero pasa). Mismo para darse cuenta demasiado tarde de que el nombre del servidor donde se sshed no es lo que usted pensaba que era después de funning algunos comandos. Se tiene que respetar el Hole Hawg.

Tengo un par de pequeños rituales antes de ejecutar comandos arbitrarios - como hacer un triple toma de verificación del servidor en el que estoy. He aquí un interesante artículo sobre la rm de seguridad.

Lo poco rituales, herramientas y trucos que te mantiene seguro en la línea de comandos? Y me refiero a cosas objetivas, como "primero ejecute el comando ls foo*, mira en la salida y después de que el sustituto de ls con rm-rf para evitar que se ejecute el comando rm-rf foo * o algo por el estilo", no "asegúrese de que usted sabe lo que hará el comando".

45voto

Guy Puntos 5465

Uno que funciona muy bien es el uso de diferentes colores de fondo en la shell prod/puesta en escena/servidores de prueba.

17voto

Chris Upchurch Puntos 10484

Tener un plan en mente antes de empezar.

  • ZIP un archivo o directorio en lugar de eliminar de inmediato
  • configurar el cisco (cisco) router se reinicie en 'x' número de minutos, y no 'wr' de inmediato
  • asegúrese de que la interfaz está cambiar no es el que ingresó el sistema de encendido. Este podría ser el la interfaz del enrutador telnet d a o el puerto ethernet VNC había.
  • nunca inicio de sesión como "root"
  • hacer una copia de seguridad. compruebe que se está bueno. hacer otro.
  • pídale a alguien de confianza 'Estoy a punto de hacer algo tonto aquí?'

10voto

Avery Payne Puntos 11379

Tengo una solución de baja tecnología para algunos de estos.

He desarrollado una inar hábito de hacer lo siguiente (cuando la planificación a trabajar como root):

  • En primer lugar, iniciar sesión como un usuario normal, a continuación, utilizando sudo su - root para cambiar a root. Hago esto como una preparación mental, un recordatorio para mí que he mentalmente caminado en una zona peligrosa, y que yo debería estar alerta y atento en todo momento. Divertido como suena, este pequeño ritual solo tiene me ahorraría un montón de dolor simplemente reforzando la idea de que yo no puede ser descuidado.
  • Cada comando se escribe, pero el [Volver] la clave es nunca presionado. Nunca.
  • Ningún comando es cada vez ejecutado sin entender exactamente lo que hace. Si usted está haciendo esto sin saber lo que hace, usted está jugando a la ruleta rusa con su sistema.
  • Antes de pulsar [Return], la tecla de comando que se produjeron en el CLI es examinado cuidadosamente por los ojos. Si hay cualquier duda, cualquier indicio de problema potencial, es re-examinado de nuevo. Si que dudarlo persiste, el comando está a la izquierda en la línea y me alt-F2 para otra consola para consultar las páginas man, etc. Si en una sesión gráfica, yo inicie un navegador y hacer un poco de búsqueda.
  • Ningún usuario común es cada vez entregó sudo de mis sistemas, no porque soy un BOFH, sino porque sin preparación y entrenamiento, esto es como darle una pistola cargada a un mono. Es divertido y muy divertido al principio, hasta que el mono ve el barril y aprieta...

Cuando el uso de rm, siempre me cd el directorio en primer lugar, a continuación, utilizar un prefijo de ./ para asegurarse de que el directorio es la correcta, es decir,

cd /usr/some/directory ; rm ./targetfile

o puedo especificar la ruta de acceso completa del archivo

rm /usr/some/directory/targetfile

que es un pan de PITA, pero...mejor prevenir que curar.

10voto

pjz Puntos 11925

Este es específico de Windows Powershell.

Como parte de la política tenemos que añadir el siguiente el perfil de la máquina.ps1 en cada servidor. Esto asegura que los siguientes son verdaderas:

  1. De administración de consola de powershell de windows tiene un color de fondo rojo oscuro
  2. El administrador se agrega el título
  3. El mensaje "Advertencia: Powershell se ejecuta como Administrador." está escrito en el inicio
  4. La barra de título es el prefijo del Administrador":"
  5. Utilidades estándar (como el corporativo de secuencias de comandos de shell, vim y infozip) se encuentran en el camino.
$currentPrincipal = New-Object Seguridad.Director.WindowsPrincipal( [Seguridad.Director.WindowsIdentity]::GetCurrent() )
& {
 if ($currentPrincipal.IsInRole( [Seguridad.Director.WindowsBuiltInRole]::Administrador:))
{
(get-host).La interfaz de usuario.RawUI.Backgroundcolor="DarkRed"
claro-host
 write-host "Advertencia: PowerShell se ejecuta como Administrador.`n"
}

 $utilidades = $null
 si( [IntPtr]:: * el tamaño de 8-eq 64 )
{
 $host.La interfaz de usuario.RawUI.WindowTitle = "Windows PowerShell (x64)" 
 $utilidades = "${env:archivos de programa(x86)}\Utilities"
}
otra cosa
{
 $host.La interfaz de usuario.RawUI.WindowTitle = "Windows PowerShell (x86)"
 $utilidades = "${env:archivos de programa}\Utilities"
}
 si( (Prueba de Ruta de dólares de utilidades) -y !($env:ruta: partido de dólares de utilidades.Reemplazar("\","\\")) )
{
 $env:path = "$utilidades;${env:path}"
}
}

la función de Símbolo de sistema
{
 if ($currentPrincipal.IsInRole([Seguridad.Director.WindowsBuiltInRole]::Administrador:))
{
 if( !$host.La interfaz de usuario.RawUI.WindowTitle.StartsWith( "Administrador" ) )
 { $Host.La interfaz de usuario.RawUI.WindowTitle = "Administrador de:" + $host.La interfaz de usuario.RawUI.WindowTitle }
}
 'PS' + $(si ($nestedpromptlevel-ge 1) { '>>' }) + '> '
}

8voto

ojblass Puntos 431

Estoy de acuerdo con todas las respuestas de arriba, pero tengo que destacar que este muy, muy importante sugerencia:

Saber cuando para evitar la multitarea.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: