LINUX.ORG.RU

Сообщения sunny1983

 

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

Форум — General

Исследую возможности скриптов с 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
()

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

Форум — Admin

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

 

sunny1983
()

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

Форум — General

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

 

sunny1983
()

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

Форум — General

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

 

sunny1983
()

kbd и mouse в Fedora 23

Форум — General

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

 ,

sunny1983
()

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

Форум — General

сабж

 

sunny1983
()

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

Форум — General

Народ, кто хорошо 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-трафика

Форум — Admin

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

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

 

sunny1983
()

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

Форум — General

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

 

sunny1983
()

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

Форум — Admin

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

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

 ,

sunny1983
()

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

Форум — General

С версиями 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

Форум — General

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

 ,

sunny1983
()

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

Форум — Admin

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

 

sunny1983
()

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

Форум — General

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

 ,

sunny1983
()

Возня с grub2

Форум — Admin

Всегда пользовался такими загрузчиками как 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

Форум — Admin

Помогите, пожалуйста, с написанием 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»

Форум — General

Помогите с однострочником, плиз.
Нужно рекурсивно скопировать файлы через «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
()

Отмонтировать корневую фс в systemd-based дистрибутиве

Форум — Admin

В дискуссии в моей теме Бэкап файловой системы по ssh несколько раз промелькнула мысля, что вполне себе возможно отмонтирование корневой фс, например чтобы перемонтировать её в r/o, чтобы ничего не мешало выполнить бэкап всей фс, либо вообще перемонтировать на корень tmpfs, а бывшую корневую фс зачистить, чтобы выполнить на чистый лист восстановление из бэкапа или вообще заменить предустановленный дистрибутив каким-нибудь другим. Если это не шутка и такие фантастические действия действительно можно выполнять, то я не против поэксперементировать. Сервер виртуальный, физический доступ к нему отсутствует как факт, только ssh.
Вот нашел статейку http://habrahabr.ru/post/141320/ Любую фс отмонтировать можно если на ней нет открытых файлов, то есть сначала используем инструмент lsof на предмет поиска открытых файлов, затем прибиваем процессы, эти файлы открывающие, затем закрываем сокеты. Не понимаю одно: как закрыть сокеты, не потеряв при этом связь с сервером по ssh? Статья писалась для init-based дистрибутивов, что делать в случае systemd-based дистрибутива, там куча файлов открыты процессом с pid 1, а его просто так не прибьёшь? Но вообще лучше дайте мне нормальный рецепт, потому что из этой хабростатьи я по правде говоря нихрена не понял.

 , ,

sunny1983
()

Обзор сети и вход с пустым паролем в samba 4

Форум — Admin

Прикол, вбил в гугле «smbtree не показывает» и по первой ссылке - моя же тема на ЛОР двухгодичной давности Не получается настроить самбу, чтобы обзор компьютеров работал Я тогда настраивал samba 3 на одном консервативном дистрибутиве.
Сейчас же все дистрибутивы обновили samba до версии 4, её то я и пытаюсь настроить. Конфиг у меня такой:

[global]
netbios name = Iskatel-Dsk
server string =
workgroup = WORKGROUP
interfaces = lo, eth1
null passwords = Yes
security = user
log file = /var/log/samba/%m.log
max log size = 2000
dns proxy = No
server role = Auto
idmap backend = smbpasswd

[Изображения]
path = /srv/images
read only = No
browseable = yes
valid users = iskatel
create mask = 0666
directory mask = 0777

[Музыка]
path = /srv/music
read only = No
browseable = yes
valid users = iskatel
create mask = 0666
directory mask = 0777

[Видео]
path = /srv/videos
read only = No
browseable = yes
valid users = iskatel
create mask = 0666
directory mask = 0777


Что у меня не работает:
1. Обзор сети командой «smbtree -b -N» Насколько я знаю, такое бывает когда или ни одного или более одного участников сети назначили себя мастер-обозревателями. Как из Linux определить вообще кто является мастер-обозревателем? В сети сейчас всего два компьютера, один этот с линиксом, второй с виндой и из-под винды обзор сети работает.
2. Вход с пустым паролем из-под винды. Вроде и опция «null passwords = Yes» стоит и samba-пользователь iskatel заведен, но не пускает. И лог вообще чистый, вообще ничего туда не пишет.

 ,

sunny1983
()

RSS подписка на новые темы