Translate

jueves, septiembre 28, 2017

Cómo añadir un usuario a "sudoers", para darle permisos de administrador

Esta guía es para todos aquellos que, o bien por comodidad o bien porque son un poco perezosos, quieren incluír su usuario en "sudoers" y, por ende, obtener privilegios de root. Dicho de otra forma, tener permisos en todo el sistema.

visudo
Acceso a "sudoers" mediante visudo

La forma más segura de acceder es esta. Con el comando visudo podremos editar el fichero /etc/sudoers validando la sintaxis en el momento en el que guardemos los cambios y detectando posibles errores que pueden bloquear el comando sudo.

Arrancamos un Terminal (Ctrl+Alt+T) y escribimos lo siguiente:
sudo visudo

Después de introducir la contraseña de tu usuario entraremos en el fichero sudoers (siempre desde el editor que tenemos definido por defecto). El contenido será similar a este:

#
# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
Defaults  env_reset
Defaults  mail_badpass
Defaults  secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
# Host alias specification
# User alias specification
# Cmnd alias specification
# User privilege specification
root  ALL=(ALL:ALL) ALL
# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL
# Allow members of group sudo to execute any command
%sudo  ALL=(ALL:ALL) ALL
# See sudoers(5) for more information on "#include" directives:
#includedir /etc/sudoers.d
# Usuario actual
root    ALL=(ALL:ALL) ALL
¿Veis el último bloque con los usuarios actuales? Pues tendremos que hacer que nos quede algo similar a esto:
# Usuario actual
root    ALL=(ALL:ALL) ALL
user    ALL=(ALL:ALL) ALL

Donde "user" sería el nombre de vuestro usuario. ¿Y qué es todo ese "ALL"?
user ALL=(ALL:ALL) ALL: en este se indica que la regla se aplica a cualquier anfitrión (o host).
user ALL=(ALL:ALL) ALL: "user" podrá usar comandos de cualquier usuario.
user ALL=(ALL:ALL) ALL: si el anterior "ALL" permitía usar comandos de usuarios, éste lo hará de grupos.
user ALL=(ALL:ALL) ALL: las reglas se aplican a todos los comandos.

Recuerda guardar los cambios realizados en el fichero y cierra después de eso. Desde ese momento ya tendremos nuestro usuario añadido al fichero sudoers.
Acceso a "sudoers" de forma manual

Igual de efectiva que la anterior, pero probablemente más arriesgada. Recuerdo que cualquier error de sintaxis puede ser malo para el fichero "sudoers", aunque con un poco de cuidado todo debería ir bien. Con ayuda de un Terminal (Ctrl+Alt+T) escribimos el siguiente comando:
sudo gedit /etc/sudoers
Importante logearse con permisos para acceder al fichero. Como en el proceso anterior, se nos abrirá el fichero de sudoers.
sudoers
Añadimos junto a root a nuestro usuario.
# Usuario actual
root ALL=(ALL:ALL) ALL
user ALL=(ALL:ALL) ALL
Guardamos cambios y todo listo.
Ultimo paso: Modificación de usuario.

Para terminar teclea lo siguiente en un terminal:
usermod -a -G sudo slimbook

Si te ha resultado útil, considera compartir el tutorial

lunes, septiembre 04, 2017

Orange Pi IoT 2G Flashear memoria NAND

He creado un paquete completo listo para usarse y flashear la NAND:

Nota Importante: todo este trabajo está realizado gracias al aporte del usuario de github "aib", es un gran linux hacker, he aprendido mucho gracias a el :)) gracias!
https://www.aib42.net/article/hacking-orangepi-2g


1.Necesitaremos poner la placa en modo USB otg:

-Poner el interruptor en modo arranque desde flash (android)
-Poner los Switches en la zona adecuada (1-4 en on y 5-8  en off)
-Con la placa apagada apretar boton y conectar a puerto USB (asi entramos en modo otg, flash)

Foto tal como deben estar los switches e interruptor de placa:



Si lo hacemos bien aparecerá el dispositivo /dev/ttyACM0




1.1Bajar el paquete completo desde MEGA:
https://mega.nz/#!BFcmiTpL!29AQt7E1odjNUaFV4JNXN8KnVM2dPSocf77EP8uFnPo

-Resolver dependencia:
#pip3 install pyserial

-Descomprimir:
 #tar xpvfz Opi2GIoTNANDflash.tar.gz
 #cd FlashNANDOpi2GIoT/
 .#/flashear.sh


Si todo va bien vereis el boot completo
User/Pass:
root/dietpi


Nota: La configuración de wifi esta en /boot/network

2. Si queremos restaurar por completo android en la NAND y sus particiones:

2.1Bajar de mega Android para Opi IoT2G:

2.2Con la placa en modo OTG (leer el primer punto de esta página) y ejecutar el comando:
./opi2g_nand_write.py -v bootloader:bootloader.img modem:modem.img boot:boot.img system:system.img

Nota: 
Al carecer de poco espacio en la NAND, podemos formatear una microsd y montarla en el arranque con, por ejemplo, el contenido de rootfs que afecta a /usr (ganamos casi 390mb), ademas de que todas las instalaciones posteriores iran a la microsd:

1. Formateamos una unica particion de la microsd:
mkfs.ext4 /dev/mmcblk0p1
2. Montamos dicha particion en una carpeta temporal:
 mount  /dev/mmcblk0p1
3. editamos /etc/fstab:

ubi0:nandroot  /  ubifs  defaults  0 1  
/dev/mmcblk0p1  /usr  ext4  errors=remount-ro,noatime,nodiratime  0 1
tmpfs /tmp  tmpfs nodev,nosuid,mode=1777  0 0

4.Movemos todo el contenido de /usr a /mnt
  mv /usr/* /mnt

reiniciar...



miércoles, agosto 30, 2017

Bajar archivos de Mega por terminal


Cuando uno trabaja con servidores y por terminal muchas veces necesita bajar o subir archivos a un servidor rápido y ese es es mega.
En esta entrada les voy a mostrar como Bajar archivos de Mega por terminal.

Los pasos:


1. Instalamos con apt-get:
apt-get install megatools

Luego podemos ir a nuestro directorio o crear un directorio donde voy a bajar las cosas:
cd ~/

2.Una vez terminado, busca lo que quieres bajar y puedes poner el comando asi:

megadl --print-names 'linkdemegaconloquequeresdescargar'
Las dos comillas ” TIENEN que estar!!

Ejemplo de como deberíamos bajar algo:

megadl –print-names ‘http://mega.co.nz/#!hQRmGAKT!vOTZ6P0kyjhCGMlgZBdVUMmSrA’

Y van a ver que de este modo habrán aprendido a Bajar archivos de Mega por terminal

viernes, agosto 25, 2017

Orange Pi IoT 2G: Trabajar con la memoria NAND

Trabajar con la memoria NAND 

 

EXPERIMENTAL EXPERIMELTAL 

PRECAUCION: este procedimiento puede dejar totalmente irrecuperable tu placa Orange pi, si sigues el procedimiento es bajo tu responsabilidad!!


1.Trabajar con la memoria NAND desde el PC con Linux



Las utilidades para escribir en la NAND de nuestra Orange Pi Iot 2G:

https://github.com/aib/opi2g-utils


Lo primero necesitaremos poner la placa en modo USB otg:

-Poner el interruptor en modo arranque desde flash (android)
-Poner los Switches en la zona adecuada (1-4 en on y 5-8  en off)
-Con la placa apagada apretar boton y conectar a puerto USB (asi entramos en modo otg, flash)

Foto tal como deben estar los switches e interruptor de placa:


Si lo hacemos bien aparecerá el dispositivo /dev/ttyACM0

La utilidad opi2g_bin_read.py sirve para extraer los ficheros del paquete Android para NAND, os dejo el siguiente enlace de descarga en mega:

https://mega.nz/#!TRNyTJLD!FgtMolmr1c9M_TXCidJ0hqU5qHlOoVespm_7wkAhxjU


Comandos a usar:

Con este comando formateamos y borramos por completo la memoria flash:
./opi2g_nand_write.py -v --format-flash

Si queremos restaurar por completo android en la NAND y sus particiones:

./opi2g_nand_write.py -v bootloader:bootloader.img modem:modem.img boot:boot.img system:system.img vendor:vendor.img



(Sigo investigando)

2 Arranque de Linux desde Tarjeta SD y visualización de NAND

Modificando el U-Boot y grabando en la NAND conseguiremos arrancar linux visualizando los 512MB de la NAND interna.
Es necesario instalar en el boot de la placa un U-Boot modificado, por lo que sera necesario bajar el kit de desarrollo que he preparado:

https://github.com/txurtxil/OrangePiIot2gBuidSystem

1.Una vez seguidos los pasos para instalar el SDK anterior, ejecutaremos
         ./build.sh
2. Elegir la siguiente opción de los menús:

3.Esta opción nos generalara el fichero:
            u-boot.rda
  Este fichero es el que deberemos grabar en la memoria interna NAND de la placa, podemos hacerlo de dos maneras:
                       Manera 1 Encenderemos la placa en modo Android y conectado al PC veremos la memoria interna del telefono "Phone storage" simplemente copiamos el fichero u-boot.rda hay.
                              Despues desde una  sesion putty hacia el puerto COM de la placa entraremos en la shell de Android ( puerto /dev/ttyUSB0, 962500bps en Linux). Y escribiremos el fichero u-boot.rda en la NAND:

                dd if=/mnt/root/u-boot.rda of=/dev/mtd/mtd0 bs=262144 count=2
                       
                        Manera 2: Es mas fácil, podemos usar las utilidades del paso 1 para grabar el u-boot:
                               ./opi2g_nand_write.py -v bootloader:u-boot.rda

Desde ahora dejando el switch en modo arranque Android el U-Boot activará la memoria NAND pero no podrá arrancar Android, así que arrancara Linux desde la memoria SD pero con la Nand activada.

Desde la shell haciendo un "dmesg | grep NAND" veremos que el kernel ha reconocido la particion NAND en el boot:

0.661437] NAND device: Manufacturer ID: 0x98, Chip ID: 0xac (Toshiba TC58NYG2S0H 4G 1.8V 8-bit), 512MiB, page size: 4096, OOB size: 256 



Nota importante: al seguir este tutorial hemos dejado anulado el arranque y uso de Android en la NAND, si queremos restaurar Android lo haremos siguiento el primer punto de este manual (1.Trabajar con la memoria NAND desde el PC con Linux)


3. Aprendiendo a particiona la NAND de la Opi IoT 2G:
       El usuario de github "aib" a preparado una guia en ingles perfecta para instalar Linux en la NAND de esta placa: https://www.aib42.net/article/hacking-orangepi-2g/

 3.1Necesitaremos el fichero boot.cmd, lo editamos, incluiremos las lineas que afectan a la memoria NAND:

setenv bootargs  "mtdparts=rda_nand:64M@0(bootloader),-(nandrootfs) root=${rootdev} rootwait rootfstype=${rootfstype} console=ttyS0,921600 panic=10 consoleblank=0 loglevel=${verbosity} ${extraargs} ${extraboardargs}"

  -64M@0(bootloader):Particion de 64M donde mas adelante instalaremos el boot de linux

  -(nandrootfs): Aqui va el S.O y espacio de usuario, con el parametro "-" le decimos que coja toda la memoria que quede disponible (despues de restar los 64M del bootloader)

Compilamos el fichero boot.cmd para crear el binario boot.scr, lo incluiremos en la particion boot de la tarjeta SD:

mkimage -C none -A arm -T script -d boot.cmd boot.scr 

3.2 Crear unidades, montarlas y copiar datos

Debemos usar el sistema de unidades NAND, UBI:
             
               ubiformat /dev/mtd0

 ubiformat: mtd0 (nand), size 536870912 bytes (512.0 MiB), 2048 eraseblocks of 262144 bytes (256.0 KiB), min. I/O size 4096 bytes

                ubiattach /dev/ubi_ctrl -m 0

UBI device number 0, total 2029 LEBs (515268608 bytes, 491.4 MiB), available 2004 LEBs (508919808 bytes, 485.3 MiB), LEB size 253952 bytes (248.0 KiB)


             -Formateamos el bloque (la etiqueta bootloader el libre, sera arranque):
                  
         ubimkvol /dev/ubi0 -N bootloader -s 64MiB 
 
         -Formateamos el siguiente bloque con el espacio libre que queda para S.O (rootfs)
           ubimkvol /dev/ubi0 -N rootfs -m
 
Volume ID 0, size 2004 LEBs (508919808 bytes, 485.3 MiB), LEB size 253952 bytes (248.0 KiB), dynamic, name "rootfs", alignment 1
          
          Motamos la unidad con el siguiente comando:
         mount -t ubifs ubi0:rootfs /mnt/flash 
 
              ubi0:rootfs on /mnt/flash type ubifs (rw,relatime)
 
 


 

Debemos crear un nuevo fichero boot-nand.scr:

setenv ubiargs "ubi.mtd=1"
setenv rootdev "ubi0:nandroot"
setenv rootfstype "ubifs"

setenv bootargs "${ubiargs} ${mtdparts} root=${rootdev} rootwait rootfstype=${rootfstype} console=ttyS0,921600 panic=10 consoleblank=0 loglevel=8 ${extraargs} ${extraboardargs}"

ubifsload ${initrd_addr} "/boot/uInitrd"
ubifsload ${kernel_addr} "/boot/zImage"
ubifsload ${modem_addr} "/boot/modem.bin"

mdcom_loadm ${modem_addr}
mdcom_check 1

bootz ${kernel_addr} ${initrd_addr}

# Recompile with:
# mkimage -C none -A arm -T script -d /boot/boot-nand.cmd /boot/boot-nand.scr
.......................