we are sorry, we are open

7.4.2009

Монтирование и работа с устройствами от имени пользователя

СисАдминство — Тэги: — Zed @ 13:54:18.

Как-то вдруг надоело монтировать флешку и работать с файлами на ней от имени рута.
Я использую sudo. Кроме того, я вхожу в группу wheel, на случай если надо сделать su.

Поменял переменную ядра:
~> sudo sysctl vfs.usermount=1

Прописал то же самое в /etc/sysctl.conf:
vfs.usermount=1

В файле /etc/rc.conf дописал:
devfs_system_ruleset="localrules"

Создал файл /etc/devfs.rules:
[localrules=10]
add path 'da*' mode 0660 group wheel

Таким образом поменял для всех устройств, начинающихся с «da», группу на wheel и дал права на чтение и запись для владельца и группы. По-умолчанию указана группа operator, в которую я не вхожу.

Посмотрел какие права на устройстве в данный момент:
~> ls -l /dev/da0*
crw-r----- 1 root operator 0, 138 Mar 31 16:15 /dev/da0
crw-r----- 1 root operator 0, 139 Mar 31 16:15 /dev/da0s1

Переконфигурировал устройства:
~> sudo /etc/rc.d/devfs restart

Убедился, что права и группа изменились в нужную сторону:
~> ls -l /dev/da0*
crw-rw---- 1 root wheel 0, 138 Mar 31 16:15 /dev/da0
crw-rw---- 1 root wheel 0, 139 Mar 31 16:15 /dev/da0s1

Теперь надо назначить себя владельцем точки монтирования:
~> sudo chown malik:wheel /mnt/flash
Ну или, если угодно, создать свою точку монтирования:
~> mkdir ~/flash

Кстати, для монтирования CD-ROM от имени пользователя достаточно чтобы точка монтирования принадлежала этому самому пользователю, т.к. писать на CD-ROM стандартным средствами системы мы не собираемся )

И, наконец, монтирую флешку:
~> mount_msdosfs /dev/da0s1 /mnt/flash

Всё нормально — флешка подмонтирована и можно нормально работать с файлам и папками от имени пользователя, не прибегаю к правам рута.

Замечание:
Монтирование флешки с указание локальной кодировки от имени обычного пользователя возможно только после хотя бы одного монтирования из-под суперпользователя:
~> mount_msdosfs -L ru_RU.KOI8-R /dev/da0s1 /mnt/flash
mount_msdosfs: cannot find or load "msdosfs_iconv" kernel module
mount_msdosfs: msdosfs_iconv: Operation not permitted
~> sudo mount_msdosfs -L ru_RU.KOI8-R /dev/da0s1 /mnt/flash
Password:
~> sudo umount /mnt/flash
~> mount_msdosfs -L ru_RU.KOI8-R /dev/da0s1 /mnt/flash
~>

25.4.2007

SORRY. NO SPACE IN lost+found DIRECTORY

СисАдминство — Тэги: — Zed @ 18:07:28.

После сбоя винта и при его проверке при помощи fsck получаем кучу сообщений об ошибке:

SORRY. NO SPACE IN lost+found DIRECTORY

Дело в не свободном объёме в этом разделе, а в свободных дескрипторах файлов. Для увеличения их количества принудительно подмонтируем раздел, создаём в папке «lost+found» создаём кучу файлов, удаляем их, отмонтируем раздел и снова натравливаем на него fsck:

# mount -f /dev/ad0s1f /mnt
# i=1; while [ $i -lt 10000 ]; \
 do touch /mnt/lost+found/xxx.$i; i=`expr $i + 1`;done
# rm /mnt/lost+found/xxx.*
# umount /mnt
# fsck -y /dev/ad0s1f

20070425

10.5.2004

Ошибка «kernel: calcru: negative time of …»

СисАдминство — Тэги: — Zed @ 17:53:42.

Поставил FreeBSD 5.2.1 на достаточно старенькую машину с процессором AMD-K6 400МГц. Вот таким его видит ядро:

May  5 14:32:12  kernel: CPU: AMD-K6(tm) 3D processor (400.12-MHz 586-class CPU)
May  5 14:32:12  kernel: Origin = "AuthenticAMD"  Id = 0x58c  Stepping = 12
May  5 14:32:12  kernel: Features=0x8021bf
May  5 14:32:12  kernel: AMD Features=0x80000800

Проблема достаточно явная, но как она влияет на работу системы мне не известно — на консоль постоянно валятся вот такие ошибки:

May  5 15:22:25  kernel: calcru: negative time of -1360420 usec for pid 12137 (cc)

Поиски по Гуглу дали очень много упоминаний подобной проблемы и ниодного внятного решения для системы старше 5-й версии. Решение для младших версий не подошло, зато оно подтолкнуло меня к следующим действиям.

После некоторых раздумий я решил посмотреть переменные ядра (или как они правильно называются?) с подходящими названиями. Наиболее подходящими оказались переменные kern.timecounter.*, а среди них вот такие:

# sysctl -a | grep timecounter
...
kern.timecounter.hardware: ACPI-safe
kern.timecounter.choice: TSC(800) ACPI-safe(1000) i8254(0) dummy(-1000000)
...

На другой машине с такой же системой значение переменной kern.timecounter.hardware имело значение TSC, какое и было выставлено на данной проблемной машине:

sysctl kern.timecounter.hardware=TSC

Насколько я могу судить проблема устранилась.

Осталось только прописать новое значение упомянутой переменной в файл /etc/sysctl.conf, чтобы оно снова было выставлено после перезагрузки системы:

# tail /etc/sysctl.conf
kern.timecounter.hardware=TSC

30.5.2002

Установка и настройка антивируса DrWeb для sendmail под FreeBSD4.5.

СисАдминство — Тэги: , — Админ @ 17:18:24.

«Поставлю-ка DrWeb под FreeBSD4.5 и sendmail» — подумал я, и вот результат. Особенно мне понравилось, что демо-версия вполне пригодна для использования — она не может только лечить заражённые файлы, смотреть почтовые базы и заглядывать в архивы, а мне этого особо и не надо 🙂
(продолжение…)

Последние комментарии:

Powered by WordPress (31 queries. 0,465 seconds)