Restablecer los permisos predeterminados en el directorio del virtualhost en Plesk

Síntomas

Algunos archivos y directorios del dominio han perdido sus permisos. Varios de ellos son propiedad del usuario “apache” o “root” de Apache.

Por ejemplo:

# ls -l /var/www/vhosts/blogofsysadmins.com/
total 48
drwx------ 5 apache     apache 4096 Mar 16 20:07 anon_ftp
drwx------ 2 root       psaserv 4096 Mar 16 20:07 bin
drwx------ 3 apache     apache 4096 Mar 16 20:07 cgi-bin
drwx------ 2 root       psaserv 4096 Aug  4 12:56 conf
drwx------ 2 root       psaserv 4096 Mar 16 20:07 error_docs
drwx------ 7 apache     apache 4096 Mar 16 20:07 httpdocs
drwx------ 7 apache     apache 4096 Mar 16 20:07 httpsdocs
drwx------ 2 root       psaserv 4096 Aug  4 12:56 pd
drwx------ 2 root       root    4096 Mar 16 20:07 private
dr-x------ 7 root       psaserv 4096 Mar 16 20:07 statistics
drwx------ 2 root       psaserv 4096 Mar 16 20:07 subdomains
drwx------ 2 root       psaserv 4096 Mar 16 20:07 web_users
~#

Cuando intento cargar archivos a través del Administrador de Archivos o de un cliente FTP, obtengo los errores «Permiso denegado» o «Acceso denegado«.

Resolución

Use la utilidad «vhostmng» para restablecer los permisos. El comando a ejecutar es el siguiente:

~# /usr/local/psa/admin/sbin/vhostmng --install-vhost --vhost-name=<domain name> --user-name=<username> --set-content-permissions

Donde <domain name> es el dominio donde deben restaurarse los permisos y <username> es el usuario FTP del dominio configurado en Parallels Plesk Panel en la página Dominios -> <domain name> -> Opciones de Alojamiento Web (versión 9.x) o Dominios -> <domain name> -> Configuración (versión 8.x).

El comando restaurará los permisos predeterminados en el directorio del virtualhost:

drwxr-x--- 5 ftp_user   psaserv 4096 Mar 16 20:07 anon_ftp
drwxr-xr-x 2 root       psaserv 4096 Mar 16 20:07 bin
drwxr-x--- 3 ftp_user   psaserv 4096 Mar 16 20:07 cgi-bin
drwxr-x--- 2 root       psaserv 4096 Aug  4 12:56 conf
drwxr-xr-x 2 root       psaserv 4096 Mar 16 20:07 error_docs
drwxr-x--- 7 ftp_user   psaserv 4096 Mar 16 20:07 httpdocs
drwxr-x--- 7 ftp_user   psaserv 4096 Mar 16 20:07 httpsdocs
drwxr-x--- 2 root       psaserv 4096 Aug  4 12:56 pd
drwx------ 2 ftp_user   root    4096 Mar 16 20:07 private
dr-xr-x--- 7 root       psaserv 4096 Mar 16 20:07 statistics
drwxr-xr-x 2 root       psaserv 4096 Mar 16 20:07 subdomains
drwxr-xr-x 2 root       psaserv 4096 Mar 16 20:07 web_users

Comandos útiles para Vim

Aqui os dejo un buen listado de comandos útiles para el editor Vim archiconocido en Linux

» las funciones de autocompletado buscan en los directorios indicados
: set path=/usr/include,/usr/local/include

» Habilita el coloreado de sintaxis
: syntax on

» habilita el auto indentado
: set autoindent

» habilita el auto indentado inteligente
: set smartindent

» Define 3 espacios para el indentado
:set shiftwidth=3

» Convierte tabulados en espacios. Deshabilitar con :set noexpandtab
: set expandtab

» Hace que los tabuladores sean de tres espacios
: set tabstop=3

» Plega bloques delimitados por {{{ }}}. Usando fdm=syntax no se necesitan marcas
: set fdm=marker

» Establece los nivels de anidamiento para plegar código.
: set foldnestmax=1

» Marca el parentesis/llave que abre y el que cierra al situarse encima.
: set showmatch

» La marca habilitada con ‘showmatch’ dura un segundo.
: set matchtime=1

» Aparecen indicadores con el numero de linea, de columna, etc.
: set ruler

» Cuando se abre un archivo coloca el cursor en su posicion del ultimo cierre
if has(«autocmd»)
au BufReadPost * if line(«‘\»») > 0 && line(«‘\»») <= line(«$»)
\| exe «normal! g’\»» | endif
endif

» Pinta los resultados de la busqueda
: set hlsearch

» Cierra un bloque delimitado por {{{ }}}.
» Se abre pulsando el espacio sobre el bloque.
: foldclose

» Entra en modo insercion a continuacion de la posicion actual
a

» Entra en modo insercion en la posicion actual
i

» Deshace los cambios
u

» Rehace los cambios
:redo

» Guarda los cambios
:w!

» Guarda los cambios en el fiechero ‘file’
:w! file

» Sale sin guardar
:q!

» Mueve el cursor al final del fichero
G

» Mueve el cursor al principio del fichero
gg

» Mueve el cursor a la linea N
N G

» Entra en modo visual. Seleccion a nivel de columnas.
ctrl + v

» Entra en modo visual. Seleccion de todo el texto.
ctrl + v v

» Corta/borra el texto seleccionado
dd

» Copia el texto seleccionado
y

» Pega el texto del portapapeles
p

» Sustituye from por to, pidiendo confirmacion
:%s/from/to/gc

» Sustituye from por to, pidiendo confirmacion de un texto seleccionado.
:'<,’>s/from/to/gc

» Ir al principio de la linea
0

» Ir al final de la linea
$

» Ir a la palabra siguiente
w
» Busca palabras como la situada debajo del cursor
#

» Abre la pagina man de la función sobre la que se encuentra el cursor
K

» Salta a la definición/declaración de la variable sobre la que se encuentra el cursor
gd

» Salta al parentesis/llave asociado al parentesis/llave sobre el que se encuentra el cursor
%

» Abre una pestaña con el fichero ‘file’
: tabnew file

# Salta de una pestaña a otra
gt

» Divide la ventana en dos abriendo el fichero ‘file’
: split file

» Salta de una ventana a otra
Ctrl+w w

» Autocompleta la palabra
Ctrl + p
Ctrl + n

Hacer backup del MBR en Linux desde la shell

Escribimos en una ventana de la shell, con el usuario root:

dd if=/dev/hda of=/home/usuario/backupMBR bs=512 count=1

Por supuesto, un backup no vale de nada si no se puede restaurar, para ello, arrancamos desde un Live CD (u otro medio) y escribimos:

dd if=/dev/sda/backupMBR of=/dev/hda bs=512 count=1

Siendo en estos casos:

  • hda: la unidad que corresponda.
  • sda: la unidad que corresponda.
  • backupMBR: El nombre del fichero donde almacenamos el backup.
  • if (input file): Especificamos el fichero de origen. Si este parámetro no se define se toma el stdin por defecto.
  • of (output file): Especificamos el fichero destino. Si este parámetro no se define se toma el stdout por defecto.
  • bs (block size): Especifica el tamaño del bloque, en bytes.
  • count (number of blocks): Especifica el numero de bloques del archivo a crear

Como clonar un disco duro desde consola

Pues es fácil amigos, para clonar un disco duro desde la consola se usa solamente el comando dd
Por ejemplo quiero clonar el disco duro que esta montado en /dev/hda y me quiero hacer un clonado en /dev/hdb , todo esto ser haria asi:

dd if=/dev/hda of=/dev/hdb

Sustituir palabras en un archivo desde consola

Nada de editores de texto, ni de html ni nada por el estilo. Si quieres sustituir palabras que aparecen recurrentemente en un fichero de texto o archivo y necesitas hacerlo rápido, puedes hacerlo con el comando sed.
Por ejemplo, para sustituir un color en una hoja de estilos CSS:

sed ’s/#FF0000/#0000FF/g’ main.css