Менять права и владельца файлов и каталогов, можно с помощью команд chmod
и chown
. Маску для установки прав на создаваемые файлы, можно изменить глобально, в /etc/profile для Linux и в /etc/login.conf для FreeBSD. Обычно, маска по-умолчанию 022. Значение umask вычитается из 777, таким образом получаем права 755.
exec - выполнение read - чтение write - запись SUID bit - атрибут файла, в совокупности с атрибутом исполняемого файла, позволяет запускаемому файлу выполняться с эффективным UID владельца файла, а не того, кто запускает файл 1 --x execute # Права 764 = exec/read/write | read/write | read 2 -w- write # Для: |-- Owner --| |- Group-| |Oth| 4 r-- read ugo=a u=user, g=group, o=others, a=everyone
# chmod [OPTION] MODE[,MODE] FILE # MODE имеет форму: [ugoa]*([-+=]([rwxXst])) # chmod 640 /var/log/maillog # Установить права -rw-r----- # chmod u=rw,g=r,o= /var/log/maillog # Как и выше # chmod -R o-r /home/* # Рекурсивно изменить права, запретить чтение для Other # chmod u+s /path/to/prog # Ecnfyjdbnm SUID бит на исполняемый файл (вы должны знать, что вы делаете!) # find / -perm -u+s -print # Найти все программы с установленным SUID bit # chown user:group /path/to/file # Установить юзера и группу как владеющих файлом # chgrp group /path/to/file # Изменить группу владеющую файлом # chmod 640 `find ./ -type f -print` # Изменить права на 640 для всех файлов # chmod 751 `find ./ -type d -print` # Изменить права на 751 для всех директорий
# diskinfo -v /dev/ad2 # Посмотреть информацию о диске (sector/size) FreeBSD # hdparm -I /dev/sda # Информация о IDE/ATA диске (Linux) # fdisk /dev/ad2 # Показать изменить разделы диска # smartctl -a /dev/ad2 # Показать SMART диска
Что-бы загрузить старое ядро, в аварийной ситуации, например после неудачной установки нового, остановите загрузку, что-бы попасть в приглашение ком. строки, нажав 6.
# unload # load kernel.old # boot
# mount | column -t # Показать смонтированные файловые системы # df # Показать кол-во свободного места и смонтированные устройства # cat /proc/partitions # Показать все зарегистрированные разделы (Linux)
# du -sh * # Размеры директорий в виде списка # du -csh # Суммарный объем текущей директории # du -ks * | sort -n -r # Список директорий, отсортированный по объему в килобайтах # ls -lSr # Список директории, обратная сортировка
# umount /home/
umount: unmount of /home # Размонтировать раздел невозможно, пока /home заблокирован
failed: Device busy
# fstat -f /home # для точки монтирования # fstat -p PID # для приложения с PID # fstat -u user # для имени пользователяНайти открытый файл для Xorg:
# ps ax | grep Xorg | awk '{print $1}' 1252 # fstat -p 1252 USER CMD PID FD MOUNT INUM MODE SZ|DV R/W root Xorg 1252 root / 2 drwxr-xr-x 512 r root Xorg 1252 text /usr 216016 -rws--x--x 1679848 r root Xorg 1252 0 /var 212042 -rw-r--r-- 56987 wНайти файл с inum 212042 в директории /var можно так:
# find -x /var -inum 212042 /var/log/Xorg.0.log
fuser
или lsof
:
# fuser -m /home # Список процессов имеющих доступ к /home
# lsof /home
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
tcsh 29029 eedcoba cwd DIR 0,18 12288 1048587 /home/eedcoba (guam:/home)
lsof 29140 eedcoba cwd DIR 0,18 12288 1048587 /home/eedcoba (guam:/home)
Найти по PID приложения:
ps ax | grep Xorg | awk '{print $1}' 3324 # lsof -p 3324 COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME Xorg 3324 root 0w REG 8,6 56296 12492 /var/log/Xorg.0.logПо имени файла:
# lsof /var/log/Xorg.0.log COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME Xorg 3324 root 0w REG 8,6 56296 12492 /var/log/Xorg.0.log
# mount /cdromИли можно найти устройство в /dev/ или в выводе dmesg
# mount -v -t cd9660 /dev/cd0c /mnt # Монтирование диска Cdrom (способ первый) # mount_cd9660 /dev/wcd0c /cdrom # Монтирование диска Cdrom (способ второй) # mount -v -t msdos /dev/fd0c /mnt # ДискетаЗапись в /etc/fstab:
# Device Mountpoint FStype Options Dump Pass# /dev/acd0 /cdrom cd9660 ro,noauto 0 0Разрешить пользователям монтирование дисков:
# sysctl vfs.usermount=1 # Или впишите строку "vfs.usermount=1" in /etc/sysctl.conf
# mount -t auto /dev/cdrom /mnt/cdrom # Типичная команда монтирования диска cdrom # mount /dev/hdc -t iso9660 -r /cdrom # Монтирование диска IDE # mount /dev/scd0 -t iso9660 -r /cdrom # Монтирование диска SCSI cdrom # mount /dev/sdc0 -t ntfs-3g /windows # Монтирование диска SCSIЗапись в /etc/fstab:
/dev/cdrom /media/cdrom subfs noauto,fs=cdfss,ro,procuid,nosuid,nodev,exec 0 0
# fdisk /dev/sda # Найти FreeBSD раздел /dev/sda3 * 5357 7905 20474842+ a5 FreeBSD # mount -t ufs -o ufstype=ufs2,ro /dev/sda3 /mnt /dev/sda10 = /tmp; /dev/sda11 /usr # Другой слайс
# mount -o remount,ro / # Linux # mount -o ro / # FreeBSDКопировать поток данных с CDROM'а в образ ISO.
# dd if=/dev/cd0c of=file.iso
# dd if=/dev/zero of=/swap2gb bs=1024k count=2000 # mkswap /swap2gb # Создать swap # swapon /swap2gb # Включить swap, теперь его можно использовать # swapoff /swap2gb # Отключить swap # rm /swap2gb
CIFS - Common Internet File System
SMB - server message block
Предположим вам нужно получить доступ на расшаренному SMB разделу myshare
на сервере smbserver
, адрес набираемый на Windows машине будет \\smbserver\myshare\
. Монтировать будем на /mnt/smbshare. Не забывайте, для cifs требуется IP адрес или доменное имя.
# smbclient -U user -I 192.168.16.229 -L //smbshare/ # List the shares
# mount -t smbfs -o username=winuser //smbserver/myshare /mnt/smbshare
# mount -t cifs -o username=winuser,password=winpwd //192.168.16.229/myshare /mnt/share
Кроме того пакет mount.cifs позволяет хранить привилегии в файле, например /home/user/.smb
:
username=winuser password=winpwdИ теперь монтируем:
# mount -t cifs -o credentials=/home/user/.smb //192.168.16.229/myshare /mnt/smbshare
# smbutil view -I 192.168.16.229 //winuser@smbserver # Список расшаренных ресурсов
# mount_smbfs -I 192.168.16.229 //winuser@smbserver/myshare /mnt/smbshare
# mount -t iso9660 -o loop file.iso /mnt # Монтировать образ CD # mount -t ext3 -o loop file.img /mnt # Монтировать образ с файловой системой ext3
# mdconfig -a -t vnode -f file.iso -u 0
# mount -t cd9660 /dev/md0 /mnt
# umount /mnt; mdconfig -d -u 0 # Очистить устройство памяти
Или используя псевдоустройство(VN, Virtual node):
# vnconfig /dev/vn0c file.iso; mount -t cd9660 /dev/vn0c /mnt
# umount /mnt; vnconfig -u /dev/vn0c # Очистить псевдоустройство
# dd if=/dev/hdc of=/tmp/mycd.iso bs=2048 conv=notruncИспользуйте
mkisofs
что-бы создать образ из файла в директории. Для преодоления ограничений имен файлов используйте: -r включает расширение RockRidge, основное для UNIX систем, -J включает Joliet, используемое Microsoft, -L разрешает ISO9660 имена, начинающиеся точкой.
# mkisofs -J -L -r -V TITLE -o imagefile.iso /path/to/dirВо FreeBSD, mkisofs можно установить из портов sysutils/cdrtools.
hw.ata.ata_dma="1" hw.ata.atapi_dma="1"Используйте
burncd
для ATAPI устройств (burncd
, стандартная программа, часть базовой системы) и cdrecord
(из sysutils/cdrtools) для SCSI устройств.
# burncd -f /dev/acd0 data imagefile.iso fixate # Для ATAPI устройств # cdrecord -scanbus # Найти рекордер # cdrecord dev=1,0,0 imagefile.iso
cdrecord
, как описано выше. Кроме того можно использовать родной ATAPI интерфейс:
# cdrecord dev=ATAPI -scanbusЗаписывайте, как было описано выше.
growisofs
, для записи CD или DVD. Документацию с примерами можно найти в FreeBSD handbook Глава 18.7http://www.freebsd.org/handbook/creating-dvds.html.
# -dvd-compat закрывает диск # growisofs -dvd-compat -Z /dev/dvd=imagefile.iso # Записать существующий iso образ # growisofs -dvd-compat -Z /dev/dvd -J -R /p/to/data # Записать напрямую
# dd bs=1k if=imagefile.nrg of=imagefile.iso skip=300
bchunk
. Во FreeBSD ее можно найти в портах sysutils/bchunk.
# bchunk imagefile.bin imagefile.cue imagefile.iso
# dd if=/dev/random of=/usr/vdisk.img bs=1K count=1M # mdconfig -a -t vnode -f /usr/vdisk.img -u 0 # Создаем устройство /dev/md1 # bsdlabel -w /dev/md0 # newfs /dev/md0c # mount /dev/md0c /mnt # umount /mnt; mdconfig -d -u 0; rm /usr/vdisk.img # Очистить mdОраз на основе файла может быть смонтирован в процессе загрузки путем записи строки в /etc/rc.conf b /etc/fstab. Проверьте ваши настройки с помощью
# /etc/rc.d/mdconfig start
(прежде удалив md0 с помощью # mdconfig -d -u 0
).
Имейте в виду, что автоматическая настройка будет работать, только если файл образа лежин не в корневом разделе, в силу того что скрипт /etc/rc.d/mdconfig выполняется на ранней стадии загрузки, когда корневой раздел еще не досткпен на запись. Образы расположенные вне корневого раздела будут смонтированы позже, скриптом /etc/rc.d/mdconfig2.
/boot/loader.conf:
md_load="YES"/etc/rc.conf:
# mdconfig_md0="-t vnode -f /usr/vdisk.img" # /usr не в корневом разделе
/etc/fstab: (0 0 в конце, очень важны, это укажет fsck игнорировать проверку устройства, так как оно еще не существует)
/dev/md0 /usr/vdisk ufs rw 0 0Кроме того, в последствии можно увеличить размер образа, скажем на 300 мб.
# umount /mnt; mdconfig -d -u 0
# dd if=/dev/zero bs=1m count=300 >> /usr/vdisk.img
# mdconfig -a -t vnode -f /usr/vdisk.img -u 0
# growfs /dev/md0
# mount /dev/md0c /mnt # Теперь файловый раздел на 300 мб больше
# dd if=/dev/zero of=/usr/vdisk.img bs=1024k count=1024
# mkfs.ext3 /usr/vdisk.img
# mount -o loop /usr/vdisk.img /mnt
# umount /mnt; rm /usr/vdisk.img # Очистить
/dev/zero
намного быстрей, чем urandom
, но менее защищенн для шифрования.
# dd if=/dev/urandom of=/usr/vdisk.img bs=1024k count=1024 # losetup /dev/loop0 /usr/vdisk.img # Создать /dev/loop0 # mkfs.ext3 /dev/loop0 # mount /dev/loop0 /mnt # losetup -a # Проверить # umount /mnt # losetup -d /dev/loop0 # Отсоединить # rm /usr/vdisk.img
# mount_mfs -o rw -s 64M md /memdisk # umount /memdisk; mdconfig -d -u 0 # Очистить md устройство md /memdisk mfs rw,-s64M 0 0 # запись в /etc/fstab
# mount -t tmpfs -osize=64m tmpfs /memdisk
# time dd if=/dev/ad4s3c of=/dev/null bs=1024k count=1000
# time dd if=/dev/zero bs=1024k count=1000 of=/home/1Gb.file
# hdparm -tT /dev/hda # Только Linux