Права на файлы/папки в текущем положении можно посмотреть командой ls -l
Выглядят они, например, так: rwx rwx r-x
Для изменения прав доступа в относительном режиме в символьном представлении, например:
chmod go+rw [filename]
Здесь мы дали группе (g) и владельцу (o) права чтения (r) и записи (w).
Общая форма — chmod personOperatorRights имя_файла
Person:
u — user, пользователь, владелец файла или директории.
g — group, группа файла или директории.
o — other, все другие.
a — all, то есть все вместе взятые, и владелей и группа, и все остальные.
Operator:
+ — "плюс", добавляем нужные права
- — "минус", удаляем нужные права
= — "равно", устанавливаем нужные права
Rights: r/w/x
Для изменения прав доступа в абсолютном режиме в числовом представлении, например:
chmod 745 [filename]
Разберём что здесь делается.
Каждая цифра обозначает определенную группу:
Первая цифра — права для владельца,
вторая цифра — права для группы,
третья цифра — права для остальных.
Установлено правило, что:
r — это 4,
w — это 2,
x — это 1.
Просто прибавляем цифры:
Таким образом, команда chmod 745 [filename] означает что файлу [filename] мы присвоили следующие права:
Права владельца: 7 = 4+2+1 = rwx
Права группы: 4 = 4 = r
Права остальных: 5 = 4+1 = rx
все права на файл все права на папку рекурсивно (с подпапками и файлами) |
chmod 777 <имя файла> chmod -R go=rwX,u=rwX sharan |
Для изменения владельца или группы у файла или каталога есть команда chown:
Основные команды для манипуляций:
# List the rules in a chain or all chains iptables --list
# to add rule to iptable for accessing 48666 port iptables -I INPUT -p tcp --dport 48666 -j ACCEPT # to delete rule from iptable, use same command but change -I to -D iptables -D INPUT -p tcp --dport 48666 -j ACCEPT
# To block an IP Address with iptables: iptables -A INPUT -s 11.22.33.44 -j DROP # to unblock: iptables -D INPUT -s 11.22.33.44 -j DROP
# Save changes in iptables: iptables-save
# установить TARPIT для iptables
apt-get install module-assistant xtables-addons-source
module-assistant prepare
module-assistant auto-install xtables-addons-source
depmod -a
ЕСЛИ вышеприведённое failed, то: sudo apt-get install xtables-addons-dkms
# Первое правило проверяет наличие в динамическом списке ip-адреса отправителя, и запись об этом адресе должна быть "старше" 20 секунд. Иначе — TARPIT.
# Второе правило разрешает обращение на 22-й порт и заносит IP-адрес в динамический список.
# дефолтный таймаут TARPIT — 600 секунд
iptables -A INPUT -p tcp -m state --state NEW --dport 22 -m recent --update --seconds 20 -j TARPIT
iptables -A INPUT -p tcp -m state --state NEW --dport 22 -m recent --set -j ACCEPT
# теперь после защиты, можно открыть SSH iptables -A INPUT -p tcp -i eth0 --dport 22 -j ACCEPT
# сохранить изменения
iptables-save
iptables-save > /etc/iptables.conf
Автоматическая запись и восстановление правил nano /etc/network/interfaces после строчки "iface lo inet loopback" добавляем следующие строки: pre-up iptables-restore < /etc/iptables.conf post-down iptables-save > /etc/iptables.conf Теперь при отключении машины правила сами будут сохраняться, а при включении — восстанавливаться.
A Secure Shell (SSH) tunnel consists of an encrypted tunnel created through an SSH protocol connection. Users may set up SSH tunnels to transfer unencrypted traffic over a network through an encrypted channel.
Установить постоянное соединение через server.com к машине в его подсети, перенаправив её порт 8080 на наш локальный 28080:
ssh -f -L 28080:192.168.99.86:8080 user@server.com -N
-f запрашивает ssh идти фоном до начала выполнения команды. Используется, если ssh будет запрашивать пароли или пассфразу, но пользователь хочет чтобы это было в фоне
-L перенаправляет порты (согласно одной из схем с картинки выше)
-N говорит о том, что никакую команду выполнять удалённо не надо. Используется когда нужно просто наблюдать (warding) за портом
Удалённо выполнить какую-нибудь команду (результат будет показан в консоли): ssh user1@local_server 'play /usr/share/sounds/gaim/arrive.wav'
sudo chown -R ${USER}:${USER} ~/.gnupg chmod -R go-rwx ~/.gnupg
получить список файлов/каталогов в текущем положении | ls |
получить список ВСЕХ (a) файлов/каталогов в текущем положении, используя длинный (l) формат | ls -la |
“зайти” в каталог | cd <имя каталога> |
поиск в истории ввода консоли | history или CTRL-R и ввести что ищешь |
найти файлы, начиная с корня (/), название которых начинается c my найти директории (-type d) с именем abc d, начиная с корневой (/) найти все файлы, начиная с текущей директории, используя регулярку Смотреть подробнее в Википедии |
find / -name 'my*'
find / -type d -name 'abc d'
find . -type f -regex ".*\.\(jpg\|png\|JPG\|PNG\)"
|
найти файлы, в которых встречается выражение найти файлы, в которых НЕ встречается выражение Подробнее: grep всё, что можно
|
grep -l "www.google.com" *.conf grep -L "www.google.com" *.conf |
запуск perl-скрипта | perl filename.pl |
запуск python-скрипта | python filename.py |
синхронизация каталогов | rsync -r -u --progress --delete "/home/progforce/source/" /media/progforce/flash/target/ |
Краткая информация о свободных RAM и SWAP:
-m — в МБ -t — со строчкой total (всего) |
free -t -m |
получить список запущенных процессов получить список запущенных процессов для всех юзеров найти процесс “opera” без учёта регистра убить процесс убить процесс не спрашивая у него разрешения |
ps -A ps aux ps -A | grep -i "opera" kill <# of process> kill -9 <# of process> |
Информация об использовании процессами RAM и CPU | top htop |
Информация о файловой системе (список дисков, свободное/использованное пространство и т.п.) | df |
обновить список пакетов (packages), которые у нас прописаны /etc/apt/sources.list | apt-get update |
установка package (пакета) вместе с его зависимостями, если таковые имеют место быть | apt-get install <packagename> |
посмотреть информацию о пакете (package) | apt-get show <packagename> |
список установленных packages (пакетов) | dpkg -l dpkg -l | grep -i <pattern> |
деинсталляция packages (пакетов) | apt-get remove <packagename> |
деинсталляций packages (пакетов) с удалением настроек Посмотреть список пакетов, для которых было проделано remove, но не удалены все следы Удалить все следы всех таких удалённых пакетов |
apt-get purge <packagename> aptitude search ~c aptitude purge ~c |
удалить неиспользуемые packages (пакеты) | apt-get autoremove |
стереть старые загруженные архивные файлы package’ей | apt-get autoclean |
Обновить релиз ubuntu (из -proposed репозитория) | sudo do-release-upgrade -p |
получить список подключённого “железа” | lspci -k |
Поискать среди железа дискретную видеокарту | lspci | grep -E "VGA|3D" -A2 |
Посмотреть информацию о процессоре, выводится поядрённо)) | cat /proc/cpuinfo |
Посмотреть информацию о количестве оперативной памяти | cat /proc/meminfo |
Посмотреть информацию о конкретных "планках" оперативной памяти | sudo dmidecode --type 17 |
ремаунт диска с RW свойствами,в данном случае флешки | sudo mount -o remount,rw /media/username/fleshkaname |
узнать что “висит” на 27017 порту | lsof -iTCP | grep 27017 |
поиск определённого открытого порта в подсети | nmap -v -p27017 192.168.88.1/24 --open |
Посмотреть все порты что СЛУШАЕТ, например MongoDB | sudo lsof -iTCP -sTCP:LISTEN | grep -i mongo |
смотреть открытые порты | sudo netstat -nlp |
скачать файл
Подробнее: wget на 12 примерах
|
wget mellarius.ru/font_artmodernap.otf |
unpack tar.xz | tar -xpJf [archive_filename.tar.xz] |
unpack tar.xz — specific file only | tar -xpJf [archive_filename.tar.xz] usr/lib/opera/lib_extra/libffmpeg.so |
unpack tar.gz | tar -xzvf [archive_filename.tar.gz] |
Добавить в глобальную переменную PATH путь до директории какого-то приложения | PATH=$PATH:~/Android/Sdk/tools |
показать путь до файла (ссылки), который выполняется при использовании указанной команды [command] | which [command] |
“Наблюдать” файл в реальном времени, чаще всего нужно для разного рода логов серверов для отлова сообщений об ошибках С подсветкой строк, включающих слово error и warning |
tail -c 10000 -f ~/work/merchantz/Merchantz/server.log tail -c 10000 -f ~/work/merchantz/Merchantz/server.log.* | perl -pe 's/.*(error|warning).*/\e[1;31m$&\e[0m/ig' |
узнать код клавиши | xev | grep keycode |
всплывающее уведомление в углу экрана | notify-send -u low "Заголовок" "Тело сообщения с низкой важностью" notify-send -u normal "Заголовок" "Тело сообщения средней важности" notify-send -u critical "Заголовок" "Тело сообщения критической важности" |
Запуск bin-файлов Простой bin файл не запустить стандартным двойным кликом, а только простыми командами в терминале Первой командой мы даём файлу права на исполнение, а второй уже непосредственно запускаем. |
chmod +x file.bin ./file.bin |
Запуск sh-файлов //sh файл это скрипт, специально написанный для операционной системы Linux. Процесс его запуска похож на запуск bin файла: //первой командой задаём права на выполнение, 1-3 команды это различные варианта запуска файла |
chmod +x file.sh ./file.sh sh filename.sh bash filename.sh |
Установка TrueType-шрифтов для всех пользователей системы | * создать /usr/share/fonts/truetype/ sudo mkdir /usr/share/fonts/truetype/ * скопировать шрифты в этот каталог cp путь/до/шрифта /usr/share/fonts/truetype * обновить кэш шрифтов sudo fc-cache -fv |
Установка шрифтов для текущего пользователя | # в своём “родном” каталоге создать каталог .fonts/ mkdir .fonts # скопировать файлы со шрифтами в этот каталог cp путь/до/шрифта ~/.fonts # обновить кэш шрифтов fc-cache -fv |
Удобная подстановка и прокрутка команд в консоли по нажатию TAB |
Нужно поправить системный файл /etc/inputrc, вписав в него предпоследней строкой следующее:
TAB: menu-complete "\e[A": history-search-backward "\e[B": history-search-forward |
rename files to lowercase
doesn't actually rename the files, but show you what it would have done |
rename 'y/A-Z/a-z/' * rename -n 'y/A-Z/a-z/' * |
случайное число от 0 до 32767 | echo $RANDOM |
GODMODE | su |
Ввести Unicode символ: CTRL+SHIFT+u -> [ввести номер] -> [Enter]
С недавнего времени на домашнем компе начались "хрипы" и "залагивания" звука в играх, при проигрывании файлов мультимедиа (музыка, фильмы) и просмотре ютуба.
Покопался в интернетах и нашёл вот такое решение, которое мне помогло.
Сначала удаляем Pulseaudio и всю связанную с ним хурму, ибо в нём как раз и проблема:
sudo apt-get purge pavumeter paman pavucontrol paprefs pulseaudio-module-raop pulseaudio-esound-compat pulseaudio-module-x11 gstreamer0.10-pulseaudio pulseaudio-utils
ALSA'е нужно указать какую звуковую карту использовать.
Смотрим какие звуковые карты у нас есть:
lspci -nn | grep -i audio
У меня так:
00:03.0 Audio device [0403]: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor HD Audio Controller [8086:0c0c] (rev 06)
00:1b.0 Audio device [0403]: Intel Corporation 8 Series/C220 Series Chipset High Definition Audio Controller [8086:8c20] (rev 05)
Редактируем файл настроек ALSA'ы:
sudo nano /etc/modprobe.d/alsa-base.conf
вставим туда следующее, где vid/pid взято из информации которую мы получили выше:
options snd-hda-intel index=0 model=auto vid=8086 pid=8c20
options snd-hda-intel index=1 model=auto vid=8086 pid=0c0c
Глобальный переключатель громкости у меня пропал, ибо мы удалили PulseAudio, но зато прекратились хрипы и "лагание".
Громкость можно регулировать посредством
alsamixer
sudo dpkg-reconfigure locales sudo update-locale LANG=en_US.UTF-8
sudo add-apt-repository ppa:danielrichter2007/grub-customizer sudo apt-get update sudo apt-get install grub-customizer
Установка: sudo add-apt-repository ppa:maarten-baert/simplescreenrecorder sudo apt-get update sudo apt-get install simplescreenrecorder sudo apt-get install simplescreenrecorder-lib:i386 запускается командой simplescreenrecorder
Скачать версию с сайта https://adminer.org/
скопировать в /var/www/html
выставить права:
sudo chmod 744 /var/www/html/adminer-4.2.2.php
открыть в браузере localhost/adminer-4.2.2.php
# устанавливаем Opera'у sudo add-apt-repository 'deb http://deb.opera.com/opera-stable/ stable non-free' wget -qO- http://deb.opera.com/archive.key | sudo apt-key add - sudo apt-get update sudo apt-get install opera-stable