Permisos especiales: sticky bit, suid y sgid.-

GNU/Linux a mayores de los típicos permisos read – write – exec, tiene otros especiales y no tan comúnmente conocidos que permiten realizar tareas y establecer permisos más avanzados. En este post vamos a verlos e intentar explicarlos un poco.

sticky bit
Establece que sólo el propietarios del directorio lo puede borrar o renombrar, sin importar los permisos que tenga. Es útil si se desea que varios usuarios puedan acceder a la información y modificarla, pero que ninguno, a excepción del usuarios que lo creó, la pueda borrar.
El usuario root sí la puede borrar.
La forma de establecer este permiso es con el flag +t,

shell> chmod +t file
shell> ls -l file
-rwxr–r-T 1 javier javier 487327 Jul 23 16:10 file

suid
Este es un bit muy especial y que permite ejecutar un fichero con el ID del propietario, y por lo tanto con todos los privilegios que éste tenga.
Es un bit muy peligroso, ya que mal empleado puede poner en peligro el sistema al ejecutar un binario con privilegios de root, por ejemplo, desde un usuario sin privilegios.
Para establecer un binario con este bit, +s

shell> chmod u+s file
shell> ls -l file
-rwSr–r-T 1 javier javier 487327 Jul 23 16:10 file

sgid
Es similar al anterior comentado, pero los permisos que se establecen son a nivel de grupo. Y al igual que el anterior, también lo hay que emplear con mucha precaución.
La forma de usarlo, con +s.

shell> chmod g+s file
shell> ls -l file
-rwSr-Sr-T 1 javier javier 487327 Jul 23 16:10 file

Nota: Si por defecto, la forma de establecer permisos es GNU/Linux en octal es con 0754, para por ejemplo (-rwxr-xr–), para establecer en octal los permisos a éstos bits especiales son,

shell> chmod 1000 file # for sticky bit
shell> chmod 2000 file # for suid
shell> chmod 4000 file # for sgid

Publicado en Unix - Linux | Comentarios desactivados en Permisos especiales: sticky bit, suid y sgid.-

BASH – Script pone atributo de ejecutable a archivos pasados como argumento.-

Publicado en Unix - Linux | Comentarios desactivados en BASH – Script pone atributo de ejecutable a archivos pasados como argumento.-

Bash – Script que solicita confirmación para soobreescribir archivo si existe.-

Publicado en Unix - Linux | Comentarios desactivados en Bash – Script que solicita confirmación para soobreescribir archivo si existe.-

BASH – SCRIPT como leer un archivo.-

Para leer un archivo línea a línea lo más cómodo es utilizar un bucle while con read line. Es decir:

en linea se va almacenando en cada iteración la línea del archivo que toque y para que el bucle while sepa de donde obtener los datos ponemos al final del bucle <<< para indicarle que los datos le van a llegar por esa vía, cat archivo para volcar el contenido del archivo y lo encerramos entre comillas dobles («) para que cada línea la trate como un todo, sin las comillas en cada iteración tomaría una sola palabra del archivo, es decir recorreriamos el archivo de palabra en palabra.

Naturalmente si nos interesara recorrer un archivo de palabra en palabra, por ejemplo porque es un archivo de configuración en el que cada línea es del tipo opcion=valor (así sin espacios), nos serviría con hacer lo siguiente:

o sin utilizar la variable contenido:

Publicado en Unix - Linux | Comentarios desactivados en BASH – SCRIPT como leer un archivo.-

BASH – Script para manejo de paso de parametros.-

Si queremos saber el número de parámetros con el que nos han invocado al script podemos usar la variable especial $#

Si nuestro script requiere más parámetros podemos usar shift para desplazar una posición los parámetros de forma que $1 pasa a almacenar el segundo, $2 el tercero, … y $9 el décimo, una nueva ejecución de shift haría que en $9 tuvieramos el undécimo parámetro y así sucesivamente.

Publicado en Unix - Linux | Comentarios desactivados en BASH – Script para manejo de paso de parametros.-