Получить IP-адрес внешнего интерфейса можно командой:
ubus call network.interface.wan status | jsonfilter -e '@["ipv4-address"][0].address'
также можно получить адрес с других интерфейсов откорректировав параметр "network.interface.wan"
например для LAN:
ubus call network.interface.lan status | jsonfilter -e '@["ipv4-address"][0].address'
посмотреть список интерфейсов можно командой:
ubus list network.interface.*
Далее при необходимости полученные данные использовать для передачи во внешние скрипты, например для отправления по mqtt:
mosquitto_pub -h HOSTNAME -p 1883 -u "USERNAME" -P "PASSWD" -t 'openwrt/wan_ip' -m "$(ubus call network.interface.wan status | jsonfilter -e '@["ipv4-address"][0].address')"
для того чтобы каждый раз не вводить длинные команды при просмотре статусов служб в Linux добавляем в файл ~/.bashrc следующие строки
systemctl alias
alias systemctl-running='systemctl --type=service --state=running' # Список запущенных служб
alias systemctl-failed='systemctl --type=service --state failed' # Список служб со статусом failed
alias systemctl-active='systemctl --type=service --state=active' # Список активных служб
После чего будет удобнее получать список запцущенных служб командой
systemctl-running
По умолчанию нажатие клавиши "стрелка вверх" в bash выводит последнюю команду вне зависимости от того, что было введено на данный момент. Но более удобно перемещаться по истории команд используя частично набранную команду.
Для этого нужно в файл ~/.inputrc добавить следующие команды
"\e[A": history-search-backward
"\e[B": history-search-forward
или в файл ~/.bashrc
if [[ $- == *i* ]] then bind '"\e[A": history-search-backward' bind '"\e[B": history-search-forward' fi
Для подсветки строки приглашения под пользователем root (например выделить красным цветом пользователя) нужно заменить строку в файле /etc/bash.bashrc
if ! [ -n "${SUDO_USER}" -a -n "${SUDO_PS1}" ]; then
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
fi
на
if ! [ -n "${SUDO_USER}" -a -n "${SUDO_PS1}" ]; then
PS1='${debian_chroot:+($debian_chroot)}\[\e[0;31m\]\u\[\e[m\]@\h:\w\$ '
fi
Иногда надо вывести содержимое конфигурационного файла, но в них часто много закоментированных строк и/или пустых строк. Чтобы не выводить эти строки можно воспользоваться командой grep
например:
cat sysctl.conf | grep -v ^# | grep -v ^$ | grep -v ^\;
либо короче
cat sysctl.conf | grep -v -e ^# -e ^$ -e ^\;
или
cat sysctl.conf | grep -Ev '^\s*(;|#|$)'
но все равно долго набирать такую конструкцию из скобок и спецсимволов, поэтому можно добавить alias для команды. Делается это следующим способом:
В файл ~/.bashrc добавляется строка:
alias grep-v="grep -Ev '^\s*(;|#|$)'"
после чего необходимо выполнить команду
source ~/.bashrc
либо перезайти в оболчку для применение алиаса.
После этого можно использовать алиас grep-v, например:
grep-v /etc/sysctl.conf
При вводе Linux хоста (Ubuntu) в домен AD используя Realm и SSSD, авторизация через SSH доменными учетными записями работает корректно, но подключение по RDP используя xrdp не работает. В логах такие ошибки:
Nov 7 04:54:49 ip xrdp-sesman: pam_unix(xrdp-sesman:auth): authentication failure; logname= uid=0 euid=0 tty= ruser= rhost= user=rdp-user
Nov 7 04:54:49 ip xrdp-sesman: pam_sss(xrdp-sesman:auth): authentication success; logname= uid=0 euid=0 tty= ruser= rhost= user=rdp-user
Nov 7 04:54:49 ip xrdp-sesman: pam_sss(xrdp-sesman:account): Access denied for user rdp-user: 6 (Permission denied)
Добавление следующей строки к доменной части sssd.conf, исправляет эту проблему:
ad_gpo_access_control = permissive
Исходные ссылки:
https://issue.life/questions/47150283
https://stackoverflow.com/questions/47150283/ubuntu-16-active-directory-can-ssh-cannot-rdp
Использую Nextcloud в docker контейнере, и после обновления столкнулся с ошибкой: Внутренняя ошибка сервера
Решил проблему следующим образом:
Проверил и исправил права на datadirectory, путь к которому посмотреть можно в файле config.php (в моем случае:
cat /config/www/nextcloud/config/config.php | grep datadirectory
'datadirectory' => '/data',
chown abc:users /data/* -R
где: abc - пользователь от которого запущено nginx и php-fpm , users - группа
далее перевел в режим обслуживания и обновил db командами
sudo -u abc php /config/www/nextcloud/occ maintenance:mode --on
sudo -u abc php /config/www/nextcloud/occ maintenance:mimetype:update-db
sudo -u abc php /config/www/nextcloud/occ maintenance:mode --off