lunes, 15 de mayo de 2017

Instalar Impresoras HP en Linux con HPLIP

Está Escrito:
"Mas Dios muestra su amor para con nosotros, en que siendo aún pecadores, Cristo murió por nosotros." (Romanos 5:8)
Tomado de: ubuntufacil
Hoy he tenido la necesidad de imprimir unos documentos en la oficina. La impresora que tenemos es una HP Deskjet F2400.
Antiguamente daban algunos problemas cuando instalabamos algunas impresoras en Linux, teníamos que instalar CUPS y bajarnos los drivers para nuestra impresora, tampoco es que fuese complejo pero actualmente es mucho más sencillo. Los vendedores de impresoras se han puesto las pilas y la mayoría ofrece soluciones para poder usar su hardware en Linux. Algunas nos ofrecen los paquetes de instalación en el CD como hacen con los de Windows. En el caso de HP, tienen HPLIPque podemos descargarnos desde su web.
HPLIP, que significa HP Linux Imaging and Printing, es software libre y de código abierto que nos ayudará y guiará con lainstalación de una impresora HP en Linux, ya que es compatible con todas las impresoras de Hewlett Packard.
El proceso es realmente sencillo, descargamos HPLIP, lo ejecutamos via terminal y nos irá preguntando y guiando en la instalación de la impresora. Es muy sencillo, y en Ubuntu no me ha dado ningún problema. Instala el anteriormente citadoCUPS y alguna librería más que le hace falta, todo después de preguntarnos.
No conocía con anterioridad este pequeño pero útil software de Hewlett Packard para instalar cualquier impresora HP en Linux. Siempre es de agradecer que las grandes empresas no pasen por alto a los usuarios de Linux.
 ACTUALIZADO: Como dice Talie en los comentarios, también podemos instalarla desde el Centro de Software Ubuntu buscando hplip-gui, o desde la linea de comandos con:
 sudo apt-get install hplip-gui    hplip
 y Este para los Complicados Tomado de: profesionalesdevenezuela
Paso 1 Ingresamos a la siguiente Web y descarha los tar.gz de hplip-3.13.3.tar.gz (Puedes copiar y pegar en tú navegador Cunaguaro)

http://sourceforge.net/projects/hplip/f ... hivelocity


Paso 2 Abre un terminal y como root
CÓDIGO: SELECCIONAR TODO
su

Paso 3 Descomprime la carpeta que descargaste
CÓDIGO: SELECCIONAR TODO
tar xvf hplip-3.13.3.tar.gz
Copiamos la carpeta descomprimida en el Escritorio
CÓDIGO: SELECCIONAR TODO
cp -r  hplip-3.13.3.tar.gz    /home/usuario/Escritorio

Paso 4 Ingresa al directorio de la carpeta que descargaste y descomprimiste
CÓDIGO: SELECCIONAR TODO
cd hplip-3.13.3
Paso 5 Configura HPLIP para Instalarlo
CÓDIGO: SELECCIONAR TODO
./configure --prefix=/usr --with-hpppddir=/usr/share/ppd/HP --enable-qt4 --enable-hpcups-install --enable-cups-drv-install --disable-cups-ppd-install --disable-hpijs-install --disable-foomatic-drv-install --disable-foomatic-ppd-install --disable-foomatic-rip-hplip-install --enable-fax-build --enable-dbus-build --enable-network-build --enable-scan-build --disable-policykit --disable-libusb01_build --disable-udev_sysfs_rules --enable-doc-build
Nota Importante: sólo si posees debian o canaima de 32 Bit, para debian o canaima 64 bit se escriben otros comando los cuales se escribirán al final de esta guía.


Paso 6 Compila el HPLIP

Escribe en el terminal el siguiente comando
CÓDIGO: SELECCIONAR TODO
make
Paso 7 Compila el HPLIP

Este paso es para instalar el HPLIP
CÓDIGO: SELECCIONAR TODO
su -c "make install"
Paso 8 Para los usuarios normales que no sean el nombre de usuario root para agregar "lp" grupo:
CÓDIGO: SELECCIONAR TODO
su -c "usermod -a -G lp,lpadmin $USER"
Paso 9 Agregue su Impresora Reinicie el PC Asegúrese que esta conectada al equipo con el cable USB y verifique que esté encendida.

B. Si va a configurar una impresora con USB y la impresora ya está instalada, tendrá que hacer una de las siguientes acciones:

1. Unlpug y volver a enchufar la impresora USB, o 2. Reinicie el PC.

Si no hace esto hará que su impresora USB no ser detectado por HPLIP.

Paso 10 Configure la impresora utilizando hp-setup
CÓDIGO: SELECCIONAR TODO
hp-setup
Nota: Observa que en la parte superior derecha al lado del icono de conectividad de red esta un icono de la HP desde allí también podrás agregar la impresora. 

De otra manera para agregar tu impresora tendrás que abrir un navegador y escribir:

localhost:631 

Te solicitará la clave usuario y el nombre del usuario de tu equipo Linux.

selecciona el modelo de tu impresora y agregala desde el administrador de impresoras.

viernes, 3 de marzo de 2017

Tutorial: Instalar paquetes .tar.gz y .tar.bz2

Está Escrito:
Porque el amor de Cristo nos constriñe, pensando esto: que si uno murió por todos, luego todos murieron; y por todos murió, para que los que viven, ya no vivan para sí, sino para aquel que murió y resucitó por ellos. (2 Corintios 5:14-15)
Tomado de: DesdeLinux
Al principio cuando nos iniciamos en Linux y buscamos un programa lo normal es que encontremos un .deb o .rpm y en muchos casos nos encontramos programas con la extensión .tar.gz y .tar.bz2, estos archivos están comprimidos y por lo general contienen aparte del programa unas instrucciones para instalarlo.
La instalación para estos dos tipos de paquetes es exactamente igual.

Primero entramos a la carpeta donde tengamos el archivo, si la carpeta tiene varias palabras tenemos que ponerlas con “” o si no nos buscará carpetas con cada palabra.
 
Dentro descomprimimos
tar -zxvf nombredelarchivo.tar.gz

tar -jxvf nombredelarchivo.tar.bz2
cd carpeta nombredelarchivo

cd “carpeta nombre del archivo”

Configuramos
./configure
Hacemos make (compilamos)
make
Ahora make install
make install
A veces nos puede dar un error en ./configure, en ese caso no necesita compilación y con ejecutar nos sobra, en una terminal hacemos
nombredelprograma
O bien creamos un lanzador.

Notas:
en realidad lo correcto para descomprimir es
tar -zxvf archivo.tar.gz
tar -jxvf archivo.tar.bz2

y para el configure existe una infinidad de opciones (dependiendo del software) para personalizar la instalación
./configure –help
Con eso verán las distintas opciones adicionales al instalar un programa.
No todas las distribuciones usan /usr/local para instalar los programas, eso hay que mencionarlo también.
--------------------------------------------------------
De todas maneras el .tar.gz lo es el último recurso, si no lo hay ni en paquete deb/rpm o en los repositorios
--------------------------------------------------------
Si cambias el “make install” por “checkinstall” (lo puedes instalar con aptitude, esta en los repositorios) te instala el programa, pero ademas:
-Crea un .deb para que puedas instalarlo en futuras ocasiones
-El programa instalado aparecerá en Synaptic, con lo que lo puedes desinstalar fácilmente desde allí 
--------------------------------------------------------
Los que usan qmake de Qt son más o menos así:

cd CarpetaPrograma
qmake
make
sudo make install
Y agrego otro caso más que son los cmakes:

cd CarpetaPrograma
mkdir build
cd build
cmake ..
make
sudo make install
O hay otros que sólo hay que ejecutar el make && sudo make install.
Esos son los casos más comunes...

jueves, 2 de febrero de 2017

Montando ficheros VHD en Linux Debian

Está Escrito:
Antes bien, como está escrito: Cosas que ojo no vio, ni oído oyó, Ni han subido en corazón de hombre, Son las que Dios ha preparado para los que le aman. (1 Corintios 2:9)

Tomado de :Javier Anto
Es posible montar discos virtuales en formato VHD

Si desea montar la imagen de unidad VirtualBox (vdi) en Debian 8, use vdfuse. Este módulo Fuse utiliza la biblioteca de acceso de VirtualBox para abrir un archivo de imagen VD compatible con VirtualBox y montarlo como un sistema de archivos Fuse. El punto de montaje contiene un directorio plano que contiene los archivos EntireDisk, Partition1 .. PartitionN.  

Estos pueden ser montados en bucle para acceder a los sistemas de archivos subyacentes.
 
Se instalan las utilidades virtualbox-fuse

sudo apt-get install virtualbox-fuse
Para montar una unidad vhd

sudo vdfuse -f /path/to/file.vhd /path/to/mountpoint

Una vez montada la unidad, /path/to/mountpoint contendrá unos ficheros como 'EntireDisk', 'Partition1′, etc. Si solo hay una partición , probablemente será lo quiera verse, así que para montar esa partición en otra carpeta hay que ejecutar:

mount /path/to/mountpoint/Partition1 /path/to/someother/mountpoint

Y ahora si en /path/to/someother/mountpoint tendremos el sistema de archivos

Listo...

lunes, 30 de enero de 2017

MEGA(sync) se está portando con Linux

Está Escrito:
Hay camino que al hombre le parece derecho, pero al final es camino de muerte. (Proverbios 16:25)
Tomado de: ComoInstalarLinux
    Mega (estilizado como MEGA) es el sucesor del servicio de archivos en la nube Megaupload. El sitio web se lanzó el 19 de enero de 2013 a las 03:48 hora neozelandesa (UTC+12) para coincidir con el primer aniversario del cierre de Megaupload por el FBI. Según su fundador, Kim Dotcom, Mega es más rápido, más grande y mejor que su predecesor. Sin embargo Kim terminó desligándose de la compañia que fundó y advirtió a los usuarios no confiar en esta.

Sus principales competidores son los servicios de alojamiento de archivos: ADrive, Dropbox, Google Drive y OneDrive, que utilizan el mismo cifrado de datos.

Después de que Gabón negara a la nueva empresa el nombre de dominio me.ga, Dotcom anunció que en su lugar se registrarían en su hogar adoptivo de Nueva Zelanda, dejando al sitio web fuera de la jurisdicción y alcance de los Estados Unidos, con lo que finalmente el nombre de dominio es mega.co.nz.

A inicios del 2016 se cambiaron las políticas de descarga ya sea desde la nube o desde enlaces externos lo que las limita a solo 1GB (para Latinoamérica) o 5GB (resto del mundo) cada 6 horas.


Mega es una empresa dedicada proveer almacenamiento en la nube con la característica que las información se almacena en los servidores está cifrada, entonces solo es posible acceder la data con la contraseña correcta, es decir con tu contraseña. Y ahora Mega provee una aplicación nativa para Linux llamada MegaSync con la que puedes sincronizar información de tu equipo directamente a tu cuenta de Mega y aquí te digo como instalarla.

Para instalar y utilizar esta característica debes primero crear una cuenta en MEGA, la opción “free” te da 50 GB de almacenamiento gratis , y por € 9.00 al mes (o € 99.00 al año) puedes tener 500 GB para resguardar tu información y mantenerla segura en los data centers de MEGA.
Para crear tu cuenta mega puedes seleccionar un paquete pro o puedes seleccionar el botón que dice “Create Account” en la parte superior derecha para tener una cuenta gratis.
crear cuenta mega


y llenar los datos que te pide como tu nombre, correo y tu contraseña como se muestra en la imagen:
crear tu cuenta mega
Luego una vez que has creado la cuenta y que está activa es hora de descargar e instalar la aplicación MegaSync. Para hacerlo ve a esta página:

Ahí debes desplazar la pagina un poco hacia abajo y luego seleccionar la arquitectura de tu equipo ya sea de 32 o de 64 bits, después solo debes seleccionar tu distribución linux en esta caso seleccionaremos Ubuntu 14.04.


descargar mega sync para ubuntu linux mint


Y luego debes dar click en el botón de la derecha que dice “Free Download for linux” y se descargará el paquete .rmp o .deb dependiendo de tu distribución. En mi caso uso Linux Mint y he seleccionado la versión de Ubuntu 14.04 por lo que me ha descargado este archivo: megasync-xUbuntu_14.04_amd64.deb

Para instalarlo solo debes ir a la carpeta de “Descargas” y luego hacer doble click en el paquete para instalarlo. Al hacerlo se abrirá el centro de software y solo debes dar click en el botón instalar. En este momento MegaSync quedará instalado y listo para usar.

miércoles, 4 de enero de 2017

Quiero aprender Gambas

Está Escrito:
Porque he aquí que yo crearé nuevos cielos y nueva tierra; y de lo primero no habrá memoria, ni más vendrá al pensamiento. (Isaías 65:17)
Tomado de:desdelinux.net Por :jsbsan 
¿Por donde empiezo?
Bueno empezamos con explicar que es Gambas:
Gambas es un ambiente libre de desarrollo en Linux basado en un intérprete Basic con extensiones de objetos, un poco como Visual Basic™ (pero NO un clon !). Con Gambas, puedes diseñar rápidamente tu aplicación gráfica con QT o GTK+, acceder a bases de datos MySQL, PostgreSQL, Firebird, ODBC y SQLite, controlar aplicaciones con DBUS, traducir tu programa a cualquier lenguaje, crear Front End de comandos de linux, crear aplicaciones de red fácilmente, hacer aplicaciones 3D OpenGL , hacer aplicaciones web CGI, generar paquetes de instalación para diversas distribuciones, etc.

Comentaros que os podéis encontrar con dos versiones de Gambas: Gambas2 y Gambas3.
La más actual es Gambas3, y os aconsejo que utilicéis esta ya que esta más orientada a la programación por objetos que Gambas2, aparte que Gambas2, ya no se actualiza por el autor Benoît Minisini y usa Qt3 que esta en “deprecate” (deshuso).
Ide de gambas3
IDE de gambas3
 

¿Como lo instalo?

Para los usuarios de Debian/Ubuntu teneis un ppa para instalarlo:
$sudo add-apt-repository ppa:nemh/gambas3
$sudo apt-get update
$sudo apt-get install gambas3
También podéis compilarlo, desde el código fuente. El proceso esta aplicado en la pagina web del proyecto http://gambas.sourceforge.net/en/main.html, también podéis verlo explicado con capturas de pantalla en cuso de gambas: explicación de compilar el código fuente

Y para aprenderlo a usar ¿por donde empiezo?

Existen varios sitios web que podéis visitar:
http://gambasdoc.org/help/?es&v3: Página de la documentación oficial. Donde encontráis toda la información de la sintaxis del lenguaje (en varios idiomas).
Página web de la documentación de gambas2 y gambas3
Página web de la documentación de gambas2 y gambas3
http://www.cursogambas.blogspot.com.es: Es un curso de gambas que estoy montando y empieza desde cero conocimientos en programación, explicando las principales ordenes, bucles, ejemplos, etc….
Incluso se comentan ejemplos de aplicaciones de bases de datos, uso de patrones de diseño y ejemplos de gambas con Arduino.
Nota:
El propio Ide de Gambas3 trae un buen número de ejemplos, listos para usar. Para ver el código fuente tenéis que previamente “guardar como…” los ejemplos en otra carpeta, y abrirlos desde la nueva carpeta, para asi poder ver el código fuente.

Foro:
gambas-es.org: Foro en castellano, donde puedes consultar más de 20.000 mensajes publicados y con más de 2000 usuarios registrados
Libros:
Tenéis dos libros gratuitos:
1) En castellano: Gambas: Este libro era para la version 1.99, pero os puede servir mucho.
2) En ingles: http://beginnersguidetogambas.com/: Es para la versión 2 pero comenta sobre la versión 3.
Video Tutoriales:
Tengo hecho un canal en YouTube, donde subí varios vídeos tutoriales, la mayoría los hice con gambas2, pero también valen para Gambas3:
http://www.youtube.com/user/jusabejusabe
Algunos manuales:
http://jsbsan.blogspot.com.es/p/tutoriales-y-manuales-de-gambas.html
Otros blog donde podéis encontrar más artículos sobre gambas:
http://jsbsan.blogspot.com.es/
http://www.sologambas.blogspot.com.es/
http://gambas-basico.blogspot.com.es/
http://willicab.gnu.org.ve/componente-ncurses-en-gambas-3/
http://gambaslinux.wordpress.com/


Espero que lo disfrutéis, saludos...

sábado, 4 de junio de 2016

Alsamixer

Está Escrito:
Porque si la trompeta da un sonido incierto, ¿quién se preparará para la batalla?(1Corintios 14:8)


Tomado de:Wikipedia
alsamixer 
es un programa de mezclado de audio para la arquitectura de sonido de Linux ALSA. Se utiliza para configurar el sonido y ajustar los volúmenes. Tiene una interfaz para usuarios basada en ncurses (modo texto) y no necesita del sistema X Window System. Soporta gran variedad de placas de sonidos con dispositivos múltiples.

Antes de probar el audio, vamos a asegurarnos que todo está bien en el controlador alsamixer. Lo volvemos a lanzar desde terminal con:

alsamixer
El manejo es con el teclado:
[TAB] para cambiar Playback, Capture, All. Para reproducción, lo dejamos en Playback.
Flechas izquierda/derecha para movernos por los parámetros (Items)
Flechas arriba/abajo para cambiar valor.
Tecla [M] para silenciar/activar. (MM indica silenciado, OO activado)
Para oír audio, el Master debe de estar activado y arriba (no tiene por qué estar a tope) y el PCM arriba.
Además, dependiendo de la configuración de altavoces que tengas (sonido estéreo o envolvente) necesitarás
activar y subir el nivel de algunos canales de la mezcla. Para estéreo, la reproducción funcionará para
estéreo (2.0) con el Item “Front” a un nivel alto. Esto implica que tienes que tener el par de altavoces
conectado a la salida frontal, de color verde.
También tenemos mezcladores de ALSA gráficos que podemos instalar desde synaptic, como alsamixergui,

Con todo esto, no está garantizado que el problema se vaya a solucionar para cualquier tarjeta solo una buena calidad de sonido.

jueves, 19 de mayo de 2016

Permisos de archivos y carpetas

Está Escrito:
Por lo cual mi corazón se alegró, y se gozó mi lengua, Y aun mi carne descansará en esperanza;  (Hechos 2:26)
Tomado de: Ite.Educacion.es
Usuario propietario y grupo propietario de un archivo  
 
Anteriormente se ha comentado que en Unix todos los archivos pertenecen obligatoriamente a un usuario y a un grupo. Cuando un usuario crea un nuevo archivo, el propietario del archivo será el usuario que lo ha creado y el grupo del archivo será el grupo principal de dicho usuario.

Ejemplo, si un usuario llamado 'pepe' cuyo grupo principal es el grupo 'profesores' crea un nuevo archivo, el propietario del archivo será 'pepe' y el grupo propietario del archivo será 'profesores', o lo que es lo mismo, el archivo pertenecerá al usuario pepe y al grupo profesores. Obligatoriamente, todos los archivos del sistema pertenecen a algún usuario y a algún grupo.

Con el comando ls añadiendo la opción -l (formato largo) podemos visualizar el usuario propietario y el grupo propietario del archivo, ejemplo:
Mostrar el propietario con el comando ls -l
Comprobamos que el usuario propietario es pepe y el grupo propietario es profesores. La misma información podemos verla desde el administrador de archivos si vamos a la carpeta /home/pepe y mostramos las columnas correspondientes:
Navegador de archivos

Tipos de permisos

En los Sistemas Unix, la gestión de los permisos que los usuarios y los grupos de usuarios tienen sobre los archivos y las carpetas, se realiza mediante un sencillo esquema de tres tipos de permisos que son:
  • Permiso de lectura
  • Permiso de escritura
  • Permiso de ejecución
El significado de estos permisos difiere si se tienen sobre archivos o sobre carpetas. A continuación veremos el significado para cada uno de los casos:

Permiso de lectura

Cuando un usuario tiene permiso de lectura de un archivo significa que puede leerlo o visualizarlo, bien sea con una aplicación o mediante comandos. Ejemplo, si tenemos permiso de lectura sobre el archivo examen.txt, significa que podemos ver el contenido del archivo. Si el usuario no tiene permiso de lectura, no podrá ver el contenido del archivo.
Cuando un usuario tiene permiso de lectura de una carpeta, significa que puede visualizar el contenido de la carpeta, es decir, puede ver los archivos y carpetas que contiene, bien sea con el comando 'ls' o con un explorador de archivos como Konqueror. Si el usuario no tiene permiso de lectura sobre la carpeta, no podrá ver lo que contiene.

El permiso de lectura se simboliza con la letra 'r' del inglés 'read'.
Permiso de lectura

Permiso de escritura

Cuando un usuario tiene permiso de escritura sobre un archivo significa que puede modificar su contenido, e incluso borrarlo. También le da derecho a cambiar los permisos del archivo mediante el comando chmod así como cambiar su propietario y el grupo propietario mediante el comando chown. Si el usuario no tiene permiso de escritura, no podrá modificar el contenido del archivo.
Cuando un usuario tiene permiso de escritura sobre una carpeta, significa que puede modificar el contenido de la carpeta, es decir, puede crear y eliminar archivos y otras carpetas dentro de ella. Si el usuario no tiene permiso de escritura sobre la carpeta, no podrá crear ni eliminar archivos ni carpetas dentro de ella.

El permiso de escritura se simboliza con la letra 'w' del inglés 'write'.

Permiso de escritura

Permiso de ejecución

Cuando un usuario tiene permiso de ejecución de un archivo significa que puede ejecutarlo. Si el usuario no dispone de permiso de ejecución, no podrá ejecutarlo aunque sea una aplicación.
Los únicos archivos ejecutables son las aplicaciones y los archivos de comandos (scripts). Si tratamos de ejecutar un archivo no ejecutable, dará errores.

Cuando un usuario tiene permiso de ejecución sobre una carpeta, significa que puede entrar en ella, bien sea con el comando 'cd' o con un explorador de archivos como Konqueror. Si no dispone del permiso de ejecución significa que no puede ir a dicha carpeta.

El permiso de ejecución se simboliza con la letra 'x' del inglés 'eXecute'.
Permiso de ejecución

 

¿A quién se puede otorgar permisos?

Los permisos solamente pueden ser otorgados a tres tipos o grupos de usuarios:
  • Al usuario propietario del archivo
  • Al grupo propietario del archivo
  • Al resto de usuarios del sistema (todos menos el propietario)
Se pueden dar permisos de lectura, escritura, ejecución ó combinación de ambos al usuario propietario del archivo, al grupo propietario del archivo o al resto de usuarios del sistema. En Unix no existe la posibilidad de asignar permisos a usuarios concretos ni a grupos concretos, tan solo se puede asignar permisos al usuario propietario, al grupo propietario o al resto de usuarios.
Ejemplo, si disponemos de un archivo llamado 'examen.txt' cuyo propietario es 'pepe' y cuyo grupo propietario es 'profesores', se pueden dar permisos de lectura, escritura, ejecución ó combinación de ambos al usuario 'pepe', al grupo 'profesores' y al resto de usuarios, pero no podremos dar permisos a otros usuarios distintos de pepe (juan, luis, pedro,...) ni a otros grupos (alumnos, directivos, personal,...) ya que el esquema Unix no lo permite.

Supongamos que la siguiente figura representa los permisos de examen.txt:
Permisos de archivo
El usuario propietario (pepe) podrá leer y escribir en el documento. Los pertenecientes al grupo profesores podrán leerlo y el resto no podrá hacer nada.

Si deseo que otros usuarios tengan algún permiso sobre el archivo 'examen.txt', no me quedará más remedio que incluirlos en el grupo profesores u otorgar el permiso al resto de usuarios pero si hago esto último, absolutamente todos los usuarios del sistema gozarán del permiso, por eso no se recomienda salvo que eso sea nuestra intención.

Para poder cambiar permisos sobre un archivo, es necesario poseer el permiso de escritura sobre el mismo. El usuario root puede modificar los permisos de cualquier archivo ya que tiene acceso total sin restricciones a la administración del sistema.

Visualizar los permisos de un archivo o carpeta

Con el comando ls -l podemos visualizar los permisos de los archivos o carpetas. Al ejecutar el comando aparecen todos los archivos, uno por línea. El bloque de 10 caracteres del principio simboliza el tipo de archivo y los permisos.
Permisos de archivo 
El primer carácter indica de qué tipo de archivo se trata. Si es un guión '-' significa que se trata de un archivo normal, la letra 'd' significa que se trata de una carpeta (directory), la letra 'l' significa que se trata de un enlace (link). Otros valores son s, p, b que se refieren a sockets, tuberías (pipe) y dispositivos de bloque respectivamente.

Los 9 caracteres siguientes simbolizan los permisos del usuario propietario (3 caracteres), los permisos del grupo propietario (3 caracteres) y los permisos del resto de usuarios (3 caracteres). Vienen codificados con las letras r, w y x que se refieren a los permisos de lectura, escritura y ejecución. Si en lugar de aparecer dichas letras aparecen guiones significa que se carece de dicho permiso. Ejemplo, si los diez primeros caracteres son -rw-r----- significa que es un archivo normal, que el usuario propietario dispone de permisos de lectura y escritura pero no de ejecución, que el grupo propietario dispone tan solo de permiso de lectura y el resto de usuarios no dispone de ningún permiso. Veámoslo en la siguiente imagen:

 
Permisos de lectura y escritura para el propietario y lectura para el grupo
En el siguiente ejemplo vemos que pepe tiene permiso de lectura y escritura y que el resto solo tiene permiso de lectura tanto sobre el archivo 'apuntes.doc' como sobre el archivo 'examen.txt'.
// Visualización de permisos
ls -l
total 8
-rw-r--r--  1 pepe profesores 359 2011-09-28 18:02 apuntes.doc
-rw-r--r--  1 pepe profesores  11 2011-09-27 19:26 examen.txt

Cambio de permisos

Para cambiar los permisos de un archivo o una carpeta es necesario disponer del permiso de escritura (w) sobre dicho archivo o carpeta. Para hacerlo, se utiliza el comando chmod. La sintaxis del comando chmod es la siguiente:
chmod [opciones] permiso nombre_archivo_o_carpeta
Los permisos se pueden representar de dos formas. La primera es mediante las iniciales de a quién va dirigido el permiso (usuario=u, grupo=g, resto=o (other)), seguido de un signo + si se quiere añadir permiso o un signo - si se quiere quitar y seguido del tipo de permiso (lectura=r, escritura=w y ejecución=x). Ejemplos:
// Dar permiso de escritura al usuario propietario sobre el archivo 'examen.txt'
# chmod u+w examen.txt

// Quitar permiso de escritura al resto de usuarios sobre el archivo 'examen.txt'
# chmod o-w examen.txt

// Dar permiso de ejecución al grupo propietario sobre el archivo '/usr/bin/games/tetris'
# chmod g+x /usr/bin/games/tetris

// Dar permiso de lectura al grupo propietario sobre el archivo 'examen.txt'
# chmod g+r examen.txt

// Se pueden poner varios permisos juntos separados por comas
# chmod u+w,g-r,o-r examen.txt

// Se pueden poner varios usuarios juntos
# chmod ug+w examen.txt
La segunda forma de representar los permisos es mediante un código numérico cuya transformación al binario representaría la activación o desactivación de los permisos. El código numérico está compuesto por tres cifras entre 0 y 7. La primera de ellas representaría los permisos del usuario propietario, la segunda los del grupo propietario y la tercera los del resto de usuarios.

En binario, las combinaciones representan el tipo de permisos. El bit más a la derecha (menos significativo) se refiere al permiso de ejecución (1=activar y 0=desactivar). El bit central se refiere al permiso de escritura y el bit más a la izquierda se refiere al permiso de lectura. La siguiente tabla muestra las 8 combinaciones posibles:

Cód Binario   Permisos efectivos
0       0 0 0       - - -
1       0 0 1       - - x
2       0 1 0       - w -
3       0 1 1       - w x
4       1 0 0       r - -
5       1 0 1       r - x
6       1 1 0       r w -
7       1 1 1       r w x
Si deseamos otorgar sólo permiso de lectura, el código a utilizar es el 4. Si deseamos otorgar sólo permiso de lectura y ejecución, el código es el 5. Si deseamos otorgar sólo permiso de lectura y escritura, el código es el 6. Si deseamos otorgar todos los permisos, el código es el 7. Si deseamos quitar todos los permisos, el código es el 0. Ejemplos:
// Dar todos los permisos al usuario y ninguno ni al grupo ni al resto
chmod 700 examen.txt

// Dar al usuario y al grupo permisos de lectura y ejecución y ninguno al resto
chmod 550 examen.txt

// Dar todos los permisos al usuario y lectura y ejecución al grupo y al resto
chmod 755 /usr/bin/games/tetris

// Dar todos los permisos al usuario y de lectura al resto, sobre todos los archivos
chmod 744 *

// Cambiar permisos a todos los archivos incluyendo subcarpetas
chmod -R 744 *
Existe la posibilidad de cambiar los permisos utilizando el explorador de archivos. Para ello tan solo hay que seleccionar los archivos o carpetas y haciendo clic sobre la selección con el botón derecho del ratón > Propiedades, nos aparecerá la ventana de propiedades. Haciendo clic en la pestaña Permisos podremos establecer los permisos de una forma sencilla y haciendo clic en 'Permisos avanzados' de una forma avanzada.

Estableciendo permisos desde el administrador de archivos

 

Bits SUID y SGID

El bit SUID es una extensión del permiso de ejecución. Se utiliza en escasas ocasiones y sirve para que cuando un usuario ejecute una aplicación, ésta se ejecute con permisos del usuario propietario en lugar de hacerlo con los del usuario que ejecuta la aplicación, es decir, es equivalente a que sea ejecutada por el propietario.
Para activar el bit SUID, se puede ejecutar el comando chmod u+s nombre_archivo o sumar 4000 al número en octal si utilizamos dicho sistema. También se puede hacer lo mismo para el grupo, es el denominado bit SGID sumando 2000 al número en octal. Activar los bits SUID ó SGID puede ocasionar problemas de seguridad sobre todo si el propietario es root.

Si aplicamos el bit SGID a una carpeta, todas las subcarpetas y archivos creados dentro de dicha carpeta tendrán como grupo propietario el grupo propietario de la carpeta en lugar del grupo primario del usuario que ha creado el archivo. Es una ventaja cuando varias personas pertenecientes a un mismo grupo, trabajan juntas con archivos almacenados en una misma carpeta. Si otorgamos permisos de lectura y escritura al grupo, los archivos podrán ser modificados por todos los miembros del grupo y cuando cualquiera de ellos cree un archivo, éste pertenecerá al grupo.

Máscaras

Cuando se crea un archivo, los permisos originales por defecto son 666 y cuando se crea una carpeta, los permisos por defecto son 777. Dichos permisos por defecto pueden modificarse con el comando umask.
Con umask podemos definir la máscara de permisos, cuyo valor original es 000. El permiso por defecto será el resultado de restar del permiso original, el valor de la máscara. Si deseamos que los archivos se creen con permisos 644 (lo más habitual), pondremos máscara 022 ya que 666-022=644. En el caso de las carpetas, el permiso efectivo será 755 ya que 777-022=755. Si analizamos el valor de la máscara en binario, cada bit a '1' desactiva un permiso y cada bit a '0' lo activa, es decir, si tiene un valor 022 (000 010 010) cuando creemos una carpeta, tendrá permisos rwxr-xr-x y cuando creemos un archivo tendrá permisos rw-r--r-- ya que el permiso de ejecución para archivos hay que fijarle con chmod al tener los archivos el permiso original 666.

Cada usuario tiene su máscara. Se puede fijar la máscara por defecto para todos los usuarios en el archivo /etc/profile o para cada usuario en el archivo /home/usuario/.bashrc
// Ejemplo de uso de umask
pepe@ubuntu:/tmp$ umask
0002
pepe@ubuntu:/tmp$ mkdir nueva-carpeta
pepe@ubuntu:/tmp$ ls -l
drwxrwxr-x    2 pepe     profes       1024 Feb 12 19:46 nueva-carpeta
pepe@ubuntu:/tmp$ umask 022
pepe@ubuntu:/tmp$ mkdir otra-carpeta
pepe@ubuntu:/tmp$ ls -l
drwxrwxr-x    2 pepe     profes       1024 Feb 12 19:46 nueva-carpeta
drwxr-xr-x    2 pepe     profes       1024 Feb 12 19:46 otra-carpeta
pepe@ubuntu:/tmp$
La modificación con umask de la mascara por defecto no afecta a los archivos y carpetas existentes sino solo a los nuevos que cree ese usuario a partir de ese momento.

Grupos privados de usuario

Para hacer más flexible el esquema de permisos Unix, se recomienda utilizar grupos privados de usuario. Consiste en crear un nuevo grupo con el mismo nombre del usuario, cada vez que se crea un nuevo usuario y hacer que el grupo principal del nuevo usuario sea el nuevo grupo.
Ejemplo, si creamos un usuario pepe, crearemos también un grupo llamado pepe y haremos que el grupo primario del usuario pepe sea el grupo pepe.

En el siguiente ejemplo observamos que el UID del usuario pepe es 1002 y que su grupo principal es el 1003 que corresponde al GID del grupo pepe. También vemos que si creamos un nuevo archivo, pertenecerá al usuario pepe y al grupo pepe.
// Ejemplo: Usuario pepe y grupo pepe
pepe@ubuntu:/tmp$ more /etc/passwd |grep pepe
pepe:x:1002:1003::/home/pepe:
pepe@ubuntu:/tmp$ more /etc/group |grep pepe
pepe:x:1003:
pepe@ubuntu:/tmp$ ls > archivo.txt
pepe@ubuntu:/tmp$ ls -l
-rw-rw-r--    1 pepe     pepe           12 Feb 12 20:17 archivo.txt
pepe@ubuntu:/tmp$

Aunque parezca inservible, la creación de un grupo personal para cada usuario, permitirá crear otros grupos mediante los cuales, diferentes personas puedan trabajar de forma colaborativa sobre los archivos dentro de una carpeta concreta. Veámoslo mejor con un ejemplo:

Supongamos que creamos una carpeta llamada 'examenes' que pertenezca al grupo profesores. Si establecemos el bit SGID en dicha carpeta con el comando 'chmod g+s examenes', todos los archivos que se creen dentro de dicha carpeta tendrán como grupo propietario el grupo profesores. Si todos los usuarios utilizan máscara 002, los permisos de los archivos serán 664 con lo cual, cualquier integrante del grupo profesores podra visualizar y modificar los archivos.

El problema de usar la máscara 002 es que cualquiera que pertenezca al grupo principal de un usuario, tendría acceso de escritura sobre sus archivos, pero esto no sucederá nunca ya que cada usuario tiene su propio grupo principal y nadie más pertenece a él.

Cambiar usuario propietario y grupo propietario

Para poder cambiar el usuario propietario y el grupo propietario de un archivo o carpeta se utiliza el comando chown (change owner). Para ello hay que disponer de permisos de escritura sobre el archivo o carpeta. La sintaxis del comando es:
# chown nuevo_usuario[.nuevo_grupo] nombre_archivo
En el siguiente ejemplo vemos una secuencia de comandos en la que inicialmente comprobamos que el archivo 'examen.txt' pertenece al usuario pepe y al grupo profesores. Posteriormente hacemos que pertenezca al usuario luis y luego hacemos que pertenezca al usuario pedro y al grupo alumnos:
// Cambiar propietario y grupo propietario
root@ubuntu:/tmp# ls -l
total 4
-rw-rw-r--  1 pepe profesores 11 2005-09-28 20:15 examen.txt
root@ubuntu:/tmp# chown luis examen.txt
root@ubuntu:/tmp# ls -l
total 4
-rw-rw-r--  1 luis profesores 11 2005-09-28 20:15 examen.txt
root@ubuntu:/tmp# chown pedro.alumnos examen.txt
root@ubuntu:/tmp# ls -l
total 4
-rw-rw-r--  1 pedro alumnos 11 2005-09-28 20:15 examen.txt
root@ubuntu:/tmp#