LINUX.ORG.RU

Сообщения sunny1983

 

Что за способ авторизации?

 ,

Пытаюсь на CentOS сбросить пароль root и не получается.
Гружусь с флешки, открываю /etc/passwd, убираю «х» из второго поля записи root, оставляю поле пустым, чтобы авторизация без пароля шла (в Убунте такой финт работает) - и фигушки.
Пробую другой способ. гружусь с флешки, чтутюсь, задаю новый пароль командой passwd - снова фигушки.
Чую, что собака зарыта в /etc/pam.d/system-auth-ac. В нём записано такое:

#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
auth        required      pam_env.so
auth        sufficient    pam_unix.so nullok try_first_pass
auth        requisite     pam_succeed_if.so uid >= 500 quiet
auth        required      pam_deny.so

account     required      pam_unix.so
account     sufficient    pam_localuser.so
account     sufficient    pam_succeed_if.so uid < 500 quiet

password    requisite     pam_cracklib.so try_first_pass retry=3 type=
password    sufficient    pam_unix.so sha512 shadow nullok try_first_pass use_authtok
password    required      pam_deny.so

session     optional      pam_keyinit.so revoke
session     required      pam_limits.so
session     [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
session     required      pam_unix.so
Кто в этом шарит, подскажите, что за способ авторизации и как это расколдовывать?

sunny1983
()

Снова про сканирование сети

 

Интересуюсь инструментами для сканирования сети. Есть продвинутые штуки: tcpdump, arp-scan и nmap, есть фронтенд для nmap под названием zenmap, а если ли какая-нибудь прога для тупых, чтобы не заморачиваться, а просто нажал кнопку и она сама всё просканирует, всё обнаружит.
У меня новая работа, мне бы тут грамотно инвентаризацию сети провести, нужно программно обнаружить все компы, на каких линукс, на каких винда, какие порты открыты, и не только компы, но и управляемые свитчи...

sunny1983
()

Скрипт с suid-битом

 ,

Исследую возможности скриптов с suid-битом.
Вот я хочу, чтобы выполнялся поиск текстовых файлов в /etc, содержащих «192.168», то есть чтобы выполнялась команда grep -r 192.168 /etc. Некоторые файлы в /etc доступны для чтения только руту, поэтому команда должна выполняться под рутом. Создаю скрипт findme.sh, передаю его руту, даю ему следующие права:

-rws---r-x 1 root    root          63 апр.  24 13:51 findme.sh
Если я правильно понимаю, скрипт запущенный любым пользователем будет выполнятся от рута, благодаря suid-биту, а отсутствие прав на изменение не позволит пользователю получит права рута для чего-либо другого.
Дальше мне нужно, чтобы поиск выполнялся в фоновом режиме и выводил результаты в findme.log, поэтому я добавляю в конец &>findme.log и &. Получилось так:
#!/bin/sh
/bin/grep -r 192.168 /etc &>findme.log &
И... не работает. Что я не так сделал?

sunny1983
()

Как отключить пользователя?

 

Вопрос: как отключить пользователя в любом дистрибутиве Linux и FreeBSD? То есть сделать так, чтобы под пользователем был невозможен интерактивный вход и выполнение любого процесса.
Гугл советует писать "!" во второе поле /etc/shadow, я пробовал - да, этот способ делает невозможным интерактивный вход по паролю, но возможно войти через ssh по ключу и возможно (не пробовал) через bash-скрипт с установленым suid-битом. Задача совсем другая - отключить интерактивный вход вообще, но сохранить пароль, чтобы в будущем можно было пользователя включить обратно.
Если я в /etc/passwd добавлю ";" в начало строки это решит задачу? Я так понимаю это действие равносильно удалению пользователя из системы: не возможен будет ни интерактивный вход, ни запуск сервисов, настроеных работать с правами этого пользователя. Нужно отключить только интерактивный вход.

sunny1983
()

Восстановить пароль от mysql

 

Если есть root-доступ к серверу, на котором крутится mysql, можно ли узнать пароль от sql и как это делается?

sunny1983
()

Какие сервисы на сервере FreeBSD запущены?

 

Вот теперь фряху изучать придётся.
А пока хотя бы понять что на этом серваке крутится.
Что-то тут всё не как в линуксе: синтаксис netstat не такой, lsof - нет, ss - нет. Как понять какие сервисы на сервере запущены?
Надеюсь за оффтоп этот вопрос не считается?

sunny1983
()

kbd и mouse в Fedora 23

 ,

Не нашёл в Fedora 23 пакетов xorg-x11-drv-kbd и xorg-x11-drv-mouse. Или драйвера клавиатуры и мыши в других пакетах находятся? У меня без них не запускаются иксы.

sunny1983
()

Как определить какие файлы в каталоге имеют более одной жесткой ссылки?

 

сабж

sunny1983
()

Поменять что-то в bashrc и других скриптах, чтобы заработало scp

 

Народ, кто хорошо bash знает, гляньте на мои стартовые скрипты и подскажите, что изменить нужно:

~/.bash_profile:

if [ -f ~/.bashrc ]; then
	. ~/.bashrc
fi

PATH=$PATH:$HOME/.local/bin:$HOME/bin

export PATH

/etc/profile:

pathmunge () {
    case ":${PATH}:" in
        *:"$1":*)
            ;;
        *)
            if [ "$2" = "after" ] ; then
                PATH=$PATH:$1
            else
                PATH=$1:$PATH
            fi
    esac
}

if [ -x /usr/bin/id ]; then
    if [ -z "$EUID" ]; then
        # ksh workaround
        EUID=`id -u`
        UID=`id -ru`
    fi
    USER="`id -un`"
    LOGNAME=$USER
    MAIL="/var/spool/mail/$USER"
fi

if [ "$EUID" = "0" ]; then
    pathmunge /usr/sbin
    pathmunge /usr/local/sbin
else
    pathmunge /usr/local/sbin after
    pathmunge /usr/sbin after
fi

HOSTNAME=`/usr/bin/hostname 2>/dev/null`
HISTSIZE=20000
if [ "$HISTCONTROL" = "ignorespace" ] ; then
    export HISTCONTROL=ignoreboth
else
    export HISTCONTROL=ignoredups
fi

export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL
export DISPLAY=":0"
export WINEPREFIX="/opt/wine"

if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then
    umask 002
else
    umask 022
fi

for i in /etc/profile.d/*.sh ; do
    if [ -r "$i" ]; then
        if [ "${-#*i}" != "$-" ]; then 
            . "$i"
        else
            . "$i" >/dev/null
        fi
    fi
done

unset i
unset -f pathmunge

~/.bashrc:

if [ -f /etc/bashrc ]; then
	. /etc/bashrc
fi

/etc/bashrc:

if [ "$PS1" ]; then
  if [ -z "$PROMPT_COMMAND" ]; then
    case $TERM in
    xterm*|vte*)
      if [ -e /etc/sysconfig/bash-prompt-xterm ]; then
          PROMPT_COMMAND=/etc/sysconfig/bash-prompt-xterm
      elif [ "${VTE_VERSION:-0}" -ge 3405 ]; then
          PROMPT_COMMAND="__vte_prompt_command"
      else
          PROMPT_COMMAND='printf "\033]0;%s@%s:%s\007" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/\~}"'
      fi
      ;;
    screen*)
      if [ -e /etc/sysconfig/bash-prompt-screen ]; then
          PROMPT_COMMAND=/etc/sysconfig/bash-prompt-screen
      else
          PROMPT_COMMAND='printf "\033k%s@%s:%s\033\\" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/\~}"'
      fi
      ;;
    *)
      [ -e /etc/sysconfig/bash-prompt-default ] && PROMPT_COMMAND=/etc/sysconfig/bash-prompt-default
      ;;
    esac
  fi
  shopt -s histappend
  history -a
  shopt -s checkwinsize
  [ "$PS1" = "\\s-\\v\\\$ " ] && PS1="[\u@\h \W]\\$ "
fi

if ! shopt -q login_shell ; then # We're not a login shell
    pathmunge () {
        case ":${PATH}:" in
            *:"$1":*)
                ;;
            *)
                if [ "$2" = "after" ] ; then
                    PATH=$PATH:$1
                else
                    PATH=$1:$PATH
                fi
        esac
    }

    if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then
       umask 002
    else
       umask 022
    fi

    SHELL=/bin/bash
    for i in /etc/profile.d/*.sh; do
        if [ -r "$i" ]; then
            if [ "$PS1" ]; then
                . "$i"
            else
                . "$i" >/dev/null
            fi
        fi
    done

    unset i
    unset -f pathmunge
fi
if [ -z $STY ]; then
   exec /usr/bin/screen -d -RR
fi


Что не устраивает: когда я пытаюсь скопировать на компьютер файлы с помощью scp, то получаю ошибку:
Fatal: Received unexpected end-of-file from server
Однако ошибка изчезает, если я закоментирую строки:
if [ -z $STY ]; then
   exec /usr/bin/screen -d -RR
fi
Это мне не подходит, поскольку я хочу продолжать пользоваться screen. Мне нужно как-то сделать, чтобы не производилось выполнение /etc/bashrc при подключении по scp. Поскольку у меня прописан вызов ~/.bashrc из ~/.bash_profile получается что /etc/bashrc выполняется как при запуске bash как в начальном интерактивном режиме, так и в неначальном интерактивном. Но ведь при использовании scp происходит просто копирование файла, пользователь к терминалу не подключён - значит режим неинтерактивный и ~/.bash_profile выполняться не должен. Рассейте мои заблуждения и дайте совет.

sunny1983
()

Измерить скорость UDP-трафика

 

Извините, но вопрос совсем не о линуксе, а о сетях. Чем можно измерить скорость Интернета? Вариант speedtest.net не подходит, потому что нужен сервис, позволяющий отдельно измерить TCP и UDP трафик. Есть подозрение, что оборудование провайдера режет UDP-трафик.

Перемещено JB из talks

sunny1983
()

Зачем нужен plymouth?

 

А может кто-нибудь объяснить, что делает такая штука как plymouth?
Вроде как написано, отвечает за картинку на экране, которая отображается во время загрузки. Но если я умолчальные параметры ядра «quiet splash» поменяю на просто «quiet», картинка отображаться не будет, будут идти сообщения запуска сервисов, но plymouth всё равно ведь будет работать, так? Потому что если я его удаляю из системы, то у меня во время загрузки не будет никаких сообщений, просто чёрный экран.

sunny1983
()

Управление сервисами в upstart

 ,

Хотя upstart и доживает свои последние дни, и Ubuntu скоро окончательно перейдёт на systemd, есть всё же люди upstart не знающие, я например. Помогите разобраться, а то не гуглится что-то. У меня Trusty Tahr.

  1. Как узнать, какие сервисы запускаются при загрузке и как понять какие из них лишние и как их отключить? Нужно воспользоваться утилитой initctl или исследовать каталоги /etc/init и /etc/init.d?
  2. Есть ли в upstart зависимости юнитов как в systemd? Когда при включении одного сервиса, сами включаются ещё и вспомогательные.
  3. Как узнать с какими параметрами запускается getty и что нужно поменять, чтобы перед выводом приглашения не очищался экран?
sunny1983
()

Вопрос по версиям Ubuntu

 

С версиями Fedora я разобрался, теперь прошу также растолковать про Ubuntu.
Вопрос 1: в чём вообще различие Debian и Ubuntu? Раньше они в корне различались, тем что в качестве системы инициализации в Debian была sysVinit, а в Ubuntu - upstart. Сейчас в обоих дистрибутивах используется systemd. Ну ещё есть различие, что разработку Ubuntu спонсирует Canonical, а Debian разрабатывается свободным сообществом, при этом разработчики Ubuntu активно используют исходники Debian unstable. Ну это как бы в википедии так написано, а так видно что дистрибутивы разрабатываются по разному, но на выходе один продукт получается неотличимо похожим на другой.
Сейчас для скачивания доступны версии: Wily Werewolf, Vivid Vervet, Utopic Unicorn, Trusty Tahr, Precise Pangolin. Какая из них стабильная? Нужно, чтобы в репозитории были пакеты с замороженными версиями, чтобы при обновлении приходили не новые версии программ, а только фиксились баги, чтобы не было вечной проблемы «не было печали - апдейтов накачали».

sunny1983
()

Поясните по отличию репозиториев Fedora и CentOS

 ,

Что то запутался. И Fedora и CentOS дистрибутивы команды Red Hat, один нестабильный, другой стабильный, так?
На сайте getfedora.org доступны для скачивания образы версии 23. Это версия «нестабильная», в ней пакеты постоянно обновляются? Месяц назад ставил на ноутбук - всё нормально было. Потом нужно было снести, поэксперементировать, сейчас ставлю ту же версию 23 с образа netinstall, а она фигак и уже другая, пакеты обновились и wicd уже не работает.
Если мне нужны проиприетарные программы, мне нужно подключить репозитории RPMFusion, так?
Дальше. Если мне нужна система с замороженными версиями пакетов, которые никогда не будут обновляться, мне что ставить: предыдущую версию 22 или CentOS? А как быть с проприетарными программами, вот мне на ноутбуке необходим драйвер broadcom-sta, мне подключать RPMFusion? Или RPMForge и ELRepo? Можно вообще пакеты из CentOS и Fedora мешать в одной системе?

sunny1983
()

Доспуп по ключу в OpenSSH 7.1

 

Не могу в двадцать третьей Федоре подключиться к компьютеру по ssh. Интересует подключение из оффтопика и по ключу. Нашёл тут статью http://gdevnotes.blogspot.ru/2015/08/openssh-7.html Глянул, а OpenSSH у Федорки действительно новый, версия 7.1. Только вот кумекаю и всё никак ни соображу как заставить работать, сервер не желает принимать мой ключ, то ли опцию PubkeyAcceptedKeyTypes нужно добавить в конфиг, то ли ещё какую. Может кто подскажет? Да, и что лучше: PuTTY или SecureCRT (всегда PuTTY пользовался, а тут подумал, да чёрт с ней с проприетарностью, зато продвинутый буфер обмена)?

sunny1983
()

Конвертация открытого ключа PuTTY под оффтопиком

 ,

Господа-линуксоиды, вы используете ssh-доступ к linux из-под оффтопика с помощью PuTTY и его форков? А как у вас дела с аутентификацией по ключу обстоят? Ведь если всё делать правильно, то ключевая пара должна генерироваться на клиенте, а потом открытый ключ должен копироваться на сервер, закрытый ключ куда-либо копировать негласными правилами безопасности запрещено. Но у PuTTY свой формат ключей (и у SecureCRT тоже, а других клиентов под оффтопик я не знаю), то есть нужно в линуксе сконвертировать открытый ключ командой «ssh-keygen -i -f», то есть сначала скопировал, потом сконвертировал. А как быть если нужно сначала сконвертировать, потом скопировать? Конверторы открытых ключей под оффтопиком существуют?

sunny1983
()

Возня с grub2

 

Всегда пользовался такими загрузчиками как lilo и extlinux, а тут решил вылезти из криокамеры и обратить внимание на использующийся во всех современных дистрибутивах загрузчик grub2.
Почитал руководства, такие как https://ru.wikibooks.org/wiki/Grub_2, погуглил. Есть вопросы:
1. Везде, в частности тут http://forum.ubuntu.ru/index.php?topic=194809.0 сказано, что grub нужно устанавливать в MBR. На раздел установить нельзя, то есть реально нельзя, я тоже попробовал - не получилось. Но я не понимаю почему нельзя. Вот grub грузится из MBR, а конфиг свой читает с раздела. Как он определяет с какого именно раздела вылавливать свой конфиг? Что произойдёт, если одновременно на нескольких разделах будет присутствовать файл boot/grub/grub.cfg?
2. grub не требует ручной настройки, даже основной конфиг /boot/grub/grub.cfg не предназначен для редактирования и должен создаваться автоматом, все ядра должны найтись сами и попасть в этот конфиг. При этом можно редактировать файл параметров /etc/default/grub, после редактирования которого нужно выполнить «grub2-mkconfig -o /boot/grub/grub.cfg». Так?
3. Кроме редактирования файла параметров можно ставить/снимать права выполнения со скриптов в /etc/grub.d или редактировать /etc/grub.d/40_custom. А как поменять параметры, генерируемые главным скриптом /etc/grub.d/10_linux. Вот у меня в меню загрузки два пункта:

Fedora (4.2.6-301.fc23.x86_64) 23 (Twenty Three)
Fedora (0-rescue-be33690a1c684bf2a1d7e98cad7d2c7f) 23 (Twenty Three)
Как сделать чтобы второй пункт не создавался вообще?

sunny1983
()

Каким способом лучше всего копировать большой объем мелких файлов с одного компьютера на другой?

 

Допустим вам нужно скопировать кучу мелких файлов суммарным объёмом в несколько десятков Гбайт с одного компьютера на другой. С Linux на Windows. Каким способом вы воспользуетесь? Шифрование не нужно, оба компьютера - ваши, самому себе вы доверяете, гораздо важнее скорость.

  1. rsync 228 (41%)

    ********************************************************************************************************************************************************************************************************************************************************************************************************************************

  2. флешка 84 (15%)

    *********************************************************************************************************************

  3. ssh 68 (12%)

    ***********************************************************************************************

  4. другой вариант 50 (9%)

    **********************************************************************

  5. samba 45 (8%)

    ***************************************************************

  6. p2p-сети 42 (8%)

    **********************************************************

  7. ftp 35 (6%)

    *************************************************

Всего голосов: 552

sunny1983
()

Помогите с написанием systemd-юнита управляющего pppoe-соединениями в Fedora

 , ,

Помогите, пожалуйста, с написанием systemd-юнита, управляющего pppoe-соединениями в Fedora. Поднимать pppoe-соединения предпочитаю не через NetworkManager и не через /etc/sysconfig/network-scripts, а кошерным способом через «pppd pty pppoe».
Вы спросите, зачем мне нужно так извращаться в Федоре? У меня есть несколько учеток от pppoe-соединения и мне нужно попеременно входить в сеть то под одной, то под другой.
В слаке я делаю так: есть конфиг /etc/ppp/peers/pppoe

pty "/usr/sbin/pppoe -I eth0 -T 80 -U -m 1420"
defaultroute
usepeerdns
noproxyarp
mtu 1492
mru 1492
persist
hide-password
maxfail 99
name ?????? #учетка1
#name ?????? #учетка2
#name ?????? #учетка3
#name ?????? #учетка4
#name ?????? #учетка5
#name ?????? #учетка1
Пароли все в /etc/ppp/chap-secrets.
Ещё есть скрипт /etc/rc.d/rc.ppp
#!/bin/sh
if [ "$1" = "start" ]; then
   echo "Starting ppp..."
   /sbin/ifconfig eth0 up
   /usr/sbin/pppd call ppp0
   sleep 2s
   cat /etc/ppp/resolv.conf > /etc/resolv.conf
elif [ "$1" = "stop" ]; then
   echo "Stoping ppp..."
   /bin/kill -TERM `cat /var/run/ppp0.pid`
   /sbin/ifconfig eth0 down
elif [ "$1" = "restart" ]; then
   echo "Stoping ppp..."
   /bin/kill -TERM `cat /var/run/ppp0.pid`
   sleep 10s
   echo "Starting ppp..."
   /usr/sbin/pppd call ppp0
   sleep 2s
   cat /etc/ppp/resolv.conf > /etc/resolv.conf
else
   echo "Missing parameter: start, stop or restart"
fi
Когда мне надо перезайти с другой учеткой, я раскомментирую нужную строку в /etc/ppp/peers/pppoe и делаю «rc.ppp restart».
Так как же это делается? Я отключил юнит NetworkManager.service. Компоменты сети, сконфигурированные через /etc/sysconfig/network-scripts управляются юнитом systemd-networkd.service. Нужно написать юнит ppp.service, выполняющийся непосредственно перед systemd-networkd.service и чтобы его можно было рестартовать для захода под другой учеткой.

sunny1983
()

рекурсивно скопировать файлы через «cat oldfile > newfile»

 

Помогите с однострочником, плиз.
Нужно рекурсивно скопировать файлы через «cat oldfile > newfile». Зачем мне так извращаться? У меня тут произошел какой-то косяк с файловой системой udf, я о нем тут писал Работа с разделом udf на hdd. В Linux с файлами всё нормально, а в Windows - всё стало read-only. Однако вчера обнаружил, что в Linux тоже не всё в порядке. Я ничего не могу скопировать в другое место. И cp и tar выдают какую-то загадочную ошибку «Превышен лимит размера файла», зато cat читает всё нормально.
Как мне это сделать? Что-то вроде:

#!/bin/bash
find /srv | while read FILENAME
do
   cat "$FILENAME" > /home/iskatel/newdir/"$FILENAME"
done
Всё бы ничего, но /srv содержит подкаталоги и такой способ не прокатит. Как быть?

sunny1983
()