http://mtaalamu.ru
Получить строку из /etc/passwd по UID пользователя (из переменной окружения $UID):
getent passwd $UID
sergei: x :1000:1001:sergei:/home/sergei:/bin/bash
Отфильтровать только имя:
getent passwd $UID | sed -e 's/\:.*//'
sergei
Такой прием нужен чтобы из скрипта завершить процессы принадлежащие пользователю, запустившему скрипт:
]]>#!/bin/bash
killall -u $(getent passwd $UID | sed -e 's/\:.*//') trayer
trayer --edge top --widthtype request --align right &
]]>#!/bin/sh
processname='winbindd'
command='/etc/init.d/winbind restart'
start() {
PID=`ps -aef | grep $processname | grep -v grep | awk '{print($2)}'`
echo $PID
echo -n $"Starting $processname: "
if [ ! -z "$PID" ]; then
echo -n $"cannot start $processname: $processname is already running."
echo
return 1
else
$command
return 0
fi
}
start
Возникла необходимость записать диск из образа. Делается это обычно командой
sudo cdrecord dev=3,0,0 blank=fast -eject bla-bla-bla.iso
Только вот беда: образы дисков у меня хранятся в локальной сети в каталоге, замонтированном по sshfs. Это значит, что для пользователя root, в которого мы превращаемся благодаря sudo, его содержимое недоступно. А без sudo команда cdrecord не работает, т.е. усторйства пишущего crdom принадлежат root. А почему бы не подчинить их обычному пользователю? Да никто не мешает!
sudo chown yababay /dev/sr0 # Устройстово DVD-recorder
sudo chown yababay /dev/sg* # Generic SCSI-устройства
Всё, теперь диски можно прожигать без sudo. Можно прописать эти команды в автозагрузку.
Кстати, похожий рецепт помогает если, под обычным пользователем не работает звук или видео-устройства:
]]>sudo chown yababay /dev/audio/*
sudo chown yababay /dev/video*