2011-01-01

Архивация 7z с сохранением владельца, прав доступа и прочих атрибутов

Упаковка производится с помощью утилиты tar, архивирует 7z, защищая паролем и применяя максимальное сжатие и метод lzma2 (подробнее описано в документации: /usr/local/share/doc/p7zip/DOC/README)

И распаковка архива (если от имени пользователя, то владелец и права восстановлены НЕ БУДУТ)

tc@box~$ tar -cf - /directory_or_file | 7z a -si -p -mx=9 -m0=lzma2 directory_or_file.tar.7z

tc@box~$ 7z x -so directory_or_file.tar.7z | tar -xf -

Завершение процесса по файлу *.pid

bsd$ sudo kill -HUP `sudo head -1 /var/run/sendmail.pid`

bsd$ sudo kill -HUP `sudo sed q /var/run/sendmail.pid`

Преобразование кодировки файла

bsd$ iconv -fcp1251 -tkoi8-r ~/windows-cp1251.txt

Создание пустого файла

bsd$ sudo touch /var/log/rinetd.log

Усечение файла до нулевого размера

bsd$ cat /dev/null | sudo tee /var/log/rinetd.log

Поиск файлов, содержащих нужный текст (пробел за скобками обязателен)

bsd$ find /boot/ -iname "*conf" -type f -exec egrep -inH mountfrom {} \;

/boot/defaults/loader.conf:
#vfs.root.mountfrom=""# Specify root partition in a way the

Вывод незакомментированных строк

bsd$ egrep "^[^# ]" /etc/ssh/sshd_config

bsd$ grep -ve '^[[:space:]]*\(#\|$\)' /etc/ssh/sshd_config

Port 172
PermitRootLoginno
VersionAddendum
Subsystemsftp/usr/libexec/sftp-server

Замена текста в файле (sed)

bsd$ sed 's/ secure/ insecure/g' /etc/ttys | tee ~/ttys

bsd$ sudo cp ~/ttys /etc/ttys

Замена текста в файле (vi)

bsd$ sudo vi /etc/ttys

:%s/ secure/ insecure/g

Запуск утилиты screen при запуске оболочки от имени другого пользователя

Если удаленный вход был выполнен под именем user1 (не входящего в группу wheel), то после запуска оболочки от имени пользователя user2 нужно изменить владельца для /dev/pts/0 на этого пользователя. В таком случае, станет возможным запуск утилиты screen

bsd$ su user2

bsd$ ll /dev/pts/*

crw--w----1user1tty0xa221 сен 21:40/dev/pts/0

bsd$ sudo chown user2:tty /dev/pts/*

bsd$ screen

Монтирование одной директории в другую (аналог mount --bind для Linux)

Модуль nullfs.ko можно загрузить вручную, если ядро не собрано с параметром options NULLFS

bsd$ sudo kldload nullfs.ko

bsd$ sudo mount_nullfs /dev /mnt/dev