Aqui añado mi listas de comandos útiles para Bbuntu =)
Chmod recursivo usando find, tubería y sudo
Para asignar permisos con razonable seguridad a archivos y carpetas/directorios, es corriente dar permisos 644 a archivos y 755 a directorios, así chmod -R los asigna a ambos. Usa el comando find y una tubería a chmod como en el siguiente ejemplo
Para cambiar permiso sólo a archivos bajo un directorio específico
usuario@host:/home/usuario$ find /path/to/directorio -type f | while read var1; do sudo chmod 644 "$var1"; done usuario@host:/home/usuario$ ls -l total 3 -rw-r--r-- 1 usuario usuario 0 Nov 19 20:13 archivo1 drwxrwxrwx 2 usuario usuario 4096 Nov 19 20:13 carpeta -rw-r--r-- 1 usuario usuario 0 Nov 19 20:13 archivo2
Para cambiar sólo los permisos de directorios bajo un directorio específico (incluyendo ese directorio):
usuario@host:/home/usuario$ find /path/to/directorio -type d | while read var1; do sudo chmod 755 "$var1"; done usuario@host:/home/usuario$ ls -l total 3 -rw-r--r-- 1 usuario usuario 0 Nov 19 20:13 archivo1 drwxr--r-- 2 usuario usuario 4096 Nov 19 20:13 carpeta -rw-r--r-- 1 usuario usuario 0 Nov 19 20:13 archivo2
Si accidentalmente cambias los permisos y este comando no funciona porque find no tiene permiso para leer el directorio específico, pon sudo antes de find
sudo find ./ -type f | while read var1; do sudo chmod 664 "$var1"; done && sudo find ./ -type d | while read var1; do sudo chmod 775 "$var1"; done
chmod +r arch.txt # agrega permisos de lectura a todos los # usuarios(solo a algunos elegidos previamente) chmod u+w arch.txt # agrega permisos de escritura al dueño chmod –x arch.txt # elimina el permiso de ejecución a todos # los usuarios chmod u=rw,go= arch.txt # establece los permisos de lectura y escritura # al dueño y elimina todos los permisos a # los demás usuarios
Permisos avanzados
Para añadir permisos avanzados se usa el comando setfacl, por ejemplo:
Si de una carpeta queremos que cuando se creen nuevas carpetas los permisos de grupo sean por defecto rwx (Solo para el grupo y otros para el usuario no sirve)
setfacl -R -d -m g::rwx /folder
-R indica recursividad por si esa carpeta ya tuviera carpetas
-d indica valores por defecto
-m modifica
g::rwx los permisos en cuestion
Para obtener los tipos permisos actuales:
getfacl /folder
Para borrar los permisos
setfacl -bn /folder
*Ojo aplica los permisos rwx por defecto pero seria interesante que el grupo de la carpeta se conservara ya si fuera una carpeta compartida
Ejemplo jgarcia:grupoA folder
*Solo puede heredar el grupo de la carpeta el creador no, ya que cada persona creara su carpeta pero es ella la creadora pero puede pertenecer al grupoA, lo cual no se puede especificar que la owner sea siempre el mismo, siempre va a ser la persona quien la crea
Para heredar el grupo:
sudo chmod g+s ./folder #Para todo el directorio sudo find ./folder/ -type d | while read var1; do chmod sudo g+s "$var1"; done
Resumiendo para una carpeta compartida yo recomendaría este tipo de configuración:
chown owner:grupo ./folder sudo find ./folder/ -type d | while read var1; do chmod sudo g+s "$var1"; done
Borrar comentarios de 1 fichero
sudo sed '/^#/d' archivo.conf > archivo_new.log setfacl -R -d -m g::rwx ./folder
Así tendríamos una carpeta compartida del grupoA podrían leer y editar
Puertos abiertos (Por aplicaciones)
sudo netstat -lpn --inet
Puertos abiertos (Por firewall)
clear && echo ----- Firewall ----- && sudo iptables -S && echo && echo ----- Enrutamiento ----- && sudo iptables -t nat -S && echo
Sintaxis de las iptables (Firewall)
Acelerar la conexión SSH
Por defecto, Ubuntu forzar cada conexión para tener una búsqueda inversa-dns antes de
establecer la sesión, esto es muy bueno cuando se hace una auditoria forense de que la dirección IP / FQDN iniciado sesión en el servidor, pero para el día a día el uso interno LAN, esto sumado medida de seguridad es un PITA cuando usted no tiene un DNS inversa como todo lo que hace es retrasar el establecimiento de la sesión SSH.
sudo nano /etc/ssh/sshd_config
En la parte inferior del archivo añadí
UseDNS no
Esto acelera drásticamente el tiempo que se necesita para establecer una sesión.
Debe reiniciar SSH también
Resolver nombres de windows
Para que ubuntu pueda resolver los nombres de PC de la red procedemos a lo siguiente:
apt-get install winbind
nano /etc/nsswitch.conf
Añadimos
wins a hosts: =>
hosts: dns mdns4 wins
Instalar Google Chrome Ubuntu
sudo apt-get install chromium
Instalar VLC Player
sudo apt-get install vlc
Wake On Lan (WOL)
sudo apt-get install wakeonlan wakeonlan 2C:6F:65:CF:3C:21
VNC Server
sudo apt-get install tightvncserver vncserver :1 -depth 8 -geometry 800x600
Cambiar contraseña del usuario ACTUAL:
vncpasswd
Cliente VNC
http://www.tightvnc.com/download.php
Comprimir
Ejemplo para comprimir todo el sistema, el «.» del final es importante!
tar -zcpf ./fullbackup.tar.gz --directory=/Carpeta_o_Raizdesistema/ --exclude=proc --exclude=sys --exclude=dev/pts --exclude=backups .
Descomprimir
Para descomprimir:
tar -xzvf archivo.tar.gz -C /Ruta/
Copia MIRROR
Copia permisos incluido.
sudo cp -p -R /media/imagenmontada/* /media/hdd/
O version con RSYNC
rsync /origen/ /destino/ -av
Uso de memoria
Ver memoria:
free -m
Ver consumo de memoria por proceso
ps -eo size,pid,user,command --sort -size | awk '{ hr=$1/1024 ; printf("%13.2f Mb ",hr) } { for ( x=4 ; x<=NF ; x++ ) { printf("%s ",$x) } print "" }'
Borrar todos los ficheros que sean los mas antiguos de 10
1 a 10 items podemos ampliarlo obvio.
ls -1t /home/ftp/sdcard/Camera1/* | sed -e '1,10d' | xargs rm -v