Выбери формат для чтения
Загружаем конспект в формате docx
Это займет всего пару минут! А пока ты можешь прочитать работу в формате Word 👇
Лекция 9. Базовые задачи администрирования
В этой лекции мы научимся добавлять, удалять, «блокировать» и изменять учетные записи пользователей. На практике получим навыки создания и удаления групп, а также изменения информации о пользователе/группе в базах данных passwd/group. Кроме того, сюда входит создание специализированных и ограниченных учетных записей.
Необходимо уметь изменять глобальные и пользовательские профили. Эти навыки включают в себя изменение переменных окружения, поддержку скелетных каталогов для новых учетных записей пользователей и задание пути поиска команды в нужном каталоге.
Также необходимо уметь настраивать системные журналы. Эти навыки включают в себя управление типом и уровнем регистрируемой информации, ручной просмотр файлов журнала на предмет появления новых записей, наблюдение за файлами журнала, организацию автоматической ротации, архивирование журналов и отслеживание неполадок, отмеченных в журналах.
Кроме того, необходимо уметь использовать cron или anacron для запуска задач через определенные промежутки времени, и at для запуска задач в определенное время. Эти навыки включают в себя управление задачами cron и at, а также настройку доступа пользователей к службам cron и at.
Нужно уметь планировать автоматическую стратегию резервирования и создавать резервные копии файловых систем на различных носителях. Эти навыки включают в себя вывод «сырого» (raw) устройства в файл и наоброт, выполнение частичного и ручного резервирования, проверку целостности резервных копий, а также частичное или полное восстановление данных из резервных копий.
Также для сдачи сертификационного экзамена требуется уметь правильно работать с системным временем и синхронизовать часы посредством NTP. Эти навыки включают в себя установку системной даты и времени, установку часов BIOS на правильное время по UTC, настройка правильного часового пояса для системы, и настройка системы на правильный сдвиг времени для соответствия часам NTP.
Вы также должны знать как монтировать удаленные файловые системы используя NFS, настраивать NFS для экспорта локальных файловых систем, а также запускать, останавливать, и перезапускать сервер NFS. Также знать, как инсталлировать и конфигурировать Samba, используя графические инструменты или посредством редактированием файла /etc/smb.conf.
9.1 Управление пользователями и группами
Команда useradd создает учетную запись пользователя:
useradd [options] login
Наиболее используемые опции:
-c: Комментарий для учетной записи, как правило, используется для задания имени и фамилии
-g: ID группы
• u: ID пользователя
• d: Домашний каталог
• s: Оболочка
• D: Отображает установки по умолчанию
Для системных учетных записей обычно используются UID от 0 до 499 и GID от 0 до 99.
Для отображения установок по умолчанию выполните команду:
[root@test /]# useradd -D
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
Домашний каталог пользователя − это место, где он может создавать файлы, устанавливать утилиты, и так далее. По умолчанию, пользователь имеет доступ только к своему домашнему каталогу. Также можно использовать каталог /tmp, однако он является временным и часто очищается. Домашний каталог пользователя хранится в переменной окружения HOME.
При входе пользователя в систему в качестве текущего рабочего каталога bash использует именно домашний каталог.
[rarrigoni@tester]$ pwd /home/rar
[rarrigoni@tester]$echo $HOME
/home/rar
Каталог /etc/skel содержит все скелетные файлы, используемые bash, которые, по умолчанию, будут установлены в домашний каталог пользователя при его создании. Эти файлы можно изменять, если нужно настроить параметры для новых пользователей.
Команда usermod изменяет учетную запись:
usermod [options] username
Наиболее используемые опции − те же, что и у команды useradd.
Для предотвращения входа пользователя в систему используется команда passwd -l.
Для удаления учетной записи используется команда userdel:
userdel [options] username
Единственная опция:
-r: Удалить все файлы из домашнего каталога пользователя
Файлы пользователя, расположенные в других файловых системах, следует искать и удалять вручную.
При создании учетных записей пользователей, установки по умолчанию берутся из файла /etc/login.defs.
Например:
#*REQUIRED*
# Directory where mailboxes reside, _or_ name of file, relative to the
# home directory. If you _do_ define both, MAIL_DIR takes precedence.
# QMAIL_DIR is for Qmail
#
#QMAIL_DIR Maildir
MAIL_DIR /var/spool/mail
#MAIL_FILE .mail
# Password aging controls:
#
# PASS_MAX_DAYS Maximum number of days a password may be used.
# PASS_MIN_DAYS Minimum number of days allowed between password changes.
# PASS_MIN_LEN Minimum acceptable password length.
# PASS_WARN_AGE Number of days warning given before a password expires.
PASS_MAX_DAYS 99999
PASS_MIN_DAYS 0
PASS_MIN_LEN 5
PASS_WARN_AGE 7
# Min/max values for automatic uid selection in useradd
UID_MIN 500
UID_MAX 60000
#
# Min/max values for automatic gid selection in groupadd
GID_MIN 500
GID_MAX 60000
#
# If defined, this command is run when removing a user.
# It should remove any at/cron/print jobs etc. owned by
# the user to be removed (passed as the first argument).
#USERDEL_CMD /usr/sbin/userdel_local
#
# If useradd should create home directories for users by default
# On RH systems, we do. This option is ORed with the -m flag on
# useradd command line.
CREATE_HOME yes
Никто, даже администратор, не может посмотреть пароль пользователя.
Для изменения пароля используется passwd.
passwd [options] user
Наиболее используемые опции:
• l, -u: Заблокировать, разблокировать учетную запись
• g [| r]: Используется для группы; -g: устанавливает пароль для группы, а -r удаляет его.
• x|n: Максимальное и минимальное количество дней, в течение которых действует пароль
Для изменения информации о сроках действия пароля пользователя служит команда chage.
chage [options] user
Наиболее используемые опции:
• m: Минимальное число дней между сменами пароля; значение 0 означает, что пользователь может сменить его в любое время
• M: Максимальное число дней между сменами пароля
• E: Блокирует учетную запись в определенный день
По общепринятым правилам, пароль должен:
• Содержать не менее 6-10 символов
• Не содержать слов из английского языка
• Содержать небуквенные и нецифровые символы
• Содержать одновременно заглавные и прописные буквы
Каждой учетной записи пользователя соответствует строка в файле /etc/passwd. Зашифрованный пароль хранится в /etc/shadow.
Формат файла /etc/passwd таков:
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/bin/bash
daemon:x:2:2:Daemon:/sbin:/bin/bash
rar:x:500:100:rar:/home/rar:/bin/bash
В поле x ранее хранился пароль пользователя.
Формат файла /etc/shadow следующий:
root:IMXweyiV816gg:11996:0:10000::::
bin:!*:8902:0:10000::::
daemon:*:8902:0:10000::::
rar:GoIM8j1S.IuTY:11996:0:99999:7:::
Знак * вместо зашифрованного пароля означает, что пароль еще не определен.
Знак ! перед зашифрованным паролем означает, что учетная запись заблокирована.
Команда groupadd создает группу:
groupadd [options] group
Для удаления группы используется groupdel.
groupdel group
Для изменения группы используется groupmod.
groupmod [options] group
Наиболее используемые опции:
• n group_name: Изменяет имя группы на group_name
• g: Используется администратором группы для добавления пользователей
• d: Используется администратором группы для удаления пользователей
Для изменения группового пароля используется gpasswd.
gpasswd [options] group
Наиболее используемые опции:
• A: Позволяет определять администраторов группы
• a: Используется администратором группы для добавления пользователей
• d: Используется администратором группы для удаления пользователей
Каждой группе пользователей соответствует строка в файле /etc/group. Зашифрованный пароль хранится в /etc/gshadow.
Формат /etc/group:
root:x:0:root
bin:x:1:root,bin,daemon
daemon:x:2:
video:x:33:rar
Формат /etc/gshadow:
root:*:root:root
bin:*:root:root
daemon:*:root:root
bin:!*:8902:0:10000::::
video:*:root:root,rar
Групповые пароли используются редко, так как пароль должен быть задан для всех членов группы.
Некоторые системы поддерживают создание скрытой информации об учетной записи пользователя в файле /etc/shadow, а группы − в файле /etc/gshadow.
Команда pwconv позволяет создать файл shadow, а команда grpconv − файл gshadow.
Подробная информация для этого извлекается из файлов /etc/passwd и /etc/group.
Значения некоторых параметров берутся из файла /etc/login.defs.
Наконец, файлы /etc/passwd и /etc/group не содержат никаких открытых паролей.
Для удаления файлов shadow или перевода их в файлы /etc/passwd и /etc/group используются команды pwunconv и grpunconv.
После выполнения этих команд файлы shadow удаляются, а зашифрованные пароли хранятся в файле /etc/passwd для учетных записей пользователя, и в /etc/group − для учетных записей групп.
9.2 Настройка окружения
Окружение можно настраивать для всей системы или для каждого пользователя по отдельности.
Настройки для всей системы можно задать в файле /etc/profile. Этот файл системной конфигурации содержит всю информацию, касающуюся системы.
Например:
# Users generally won't see annoying core files
[ "$UID" = "0" ] && ulimit -S -c 1000000 > /dev/null 2>&1
if ! echo ${PATH} |grep -q /usr/X11R6/bin ; then
PATH="$PATH:/usr/X11R6/bin"
fi
if [ "$UID" -ge 500 ] && ! echo ${PATH} |grep -q /usr/games ; then
export PATH=$PATH:/usr/games
fi
umask 022
USER=`id -un`
LOGNAME=$USER
MAIL="/var/spool/mail/$USER"
HISTCONTROL=ignoredups
HOSTNAME=`/bin/hostname`
HISTSIZE=1000
if [ -z "$INPUTRC" -a ! -f "$HOME/.inputrc" ]; then
INPUTRC=/etc/inputrc
fi
# some old programs still use it (eg: "man"), and it is also
# required for level1 compliance for LI18NUX2000
NLSPATH=/usr/share/locale/%l/%N
export PATH PS1 USER LOGNAME MAIL HOSTNAME INPUTRC NLSPATH
export HISTCONTROL HISTSIZE
for i in /etc/profile.d/*.sh ; do
if [ -x $i ]; then
. $i
fi
done
Настройки для каждой учетной записи находятся в домашнем каталоге пользователя.
Для оболочки bash таковыми файлами, как правило, являются .bashrc, .bash_profile, и .bash_logout.
Заготовки для этих файлов хранятся в каталоге /etc/skel. Файлы этого каталога файлы копируются в домашний каталог пользователя при его создании.
Команда env отображает переменные окружения (глобальные переменные).
Команда set позволяет отображать глобальные переменные, локальные переменные и функции, определенные в текущем контексте.
Для сброса переменной используется команда unset.
Для того, чтобы переменную можно было увидеть в дочернем процессе, ее следует экспортировать командой export.
Например:
[root@tester /]# MOI=Rar
[root@tester /]# export $MOI
[root@tester /]# bash
[root@tester /]# echo $MOI
Rar
9.3 Настройка системного журнала
Система может регистрировать сообщения от ядра, приложений, сценариев оболочки и удаленных хостов.
Соответствующий демон называется sysklogd, а его службы выполняются klogd для регистрации сообщений ядра и syslogd для пользовательских записей.
Удаленный хост также может соединяться с портом 514, перечисленным в /etc/services, для локальной регистрации сообщений.
При получении некоторой информации из источников syslogd может записать ее в файл, вывести на консоль, и даже послать по электронной почте.
Для настройки syslogd используется файл /etc/syslog.conf.
Формат /etc/syslog.conf состоит из селектора и действия.
Селектор состоит из категории и уровня приоритета. Категория может быть одной из следующих: auth (авторизация, например login, su, ..), cron (демоны cron и at), kern (ядро), daemon (системный демон), user (любой пользователь), и т.п.
Приоритет может быть одним из следующих: none, debug, info, notice, warning, err, crit, alert, и emerg.
Все файлы журнала расположены в каталоге /var/log.
Вот пример того, как можно просматривать журнал, ожидаяя новых сообщений:
[root@tester /]#tail -f /var/log/messages
Примеры /etc/syslog.conf
# All messages from kernel with priority warning or higher and from any other
# sources with priority error or higher will be logged into file /var/log/messages
kern.warn;*.err /var/log/messages
# All email messages except priority info log in one file without sync.
mail.*;mail.!=info -/var/log/mail
# All user level warnings only in one named pipe
*.=warn;kern.none |/var/log/warn
# All messages sent to host linuxbackup
*.* @linuxbackup
# All messages from info to warning in file kern-info. Everything from critical to
# higher excluded.
kern.info;kern.!err /var/log/kern-info
Программа logrotate позволяет системе контролировать рост файлов журнала. Рекомендуется запускать ее ежедневно с помощью cron.
Ее файл настройки называется /etc/logrotate.conf.
Любой пакет, регистрирующий записи в журнале, может содержать опцию, контролирующую рост журнала, в своем файле конфигурации.
Программа logrotate позволяет системе:
• осуществлять ротацию содержимого журнала
• удалять файл журнала
• сжимать файл журнала
• посылать файл журнала по электронной почте
Ротация файла журнала может производиться при достижении им критического размера или по окончании определенного временного промежутка (ежедневно, еженедельно, ежемесячно).
Сжатие экономит дисковое пространство при ротации журнала.
Для наблюдения за критическими событиями и оповещения по электронной почте используется утилита logcheck.
Примеры /etc/logrotate
/var/log/messages {
rotate 5 # 5 Rotation before file removal
weekly # Rotate every week ( 5 weeks old backup)
postrotate # Section to be executed
/sbin/killall -HUP syslogd # Execute the killall command
endscript # End of execution section
}
/var/log/mail var/log/warn {
compress # Compress
maxage 365 # Remove rotate logs older than 365 days
rotate 99 # Rotate 99 times before file removal
missingok # No error if the file is missing
size=100k # Size limit 100k before removal
postrotate # Section to be executed
/etc/init.d/syslog reload # Reload the syslog script
endscript # End of section
}
Пользователь может вывести сообщение в системный журнал с помощью программы logger.
Например:
[root@tester /]# logger -s [message]
[root@tester /]# logger -p emerg [message]
[root@tester /]# logger -p kern.crit [message]
Программа может использоваться в сценариях оболочки или для тестирования конфигурационного файла /etc/syslog.conf.
Пример /var/log/messages
[root@tester /]# tail -n 11 /var/log/messages
Aug 4 07:46:40 lt129 kernel: smbfs: Unrecognized mount option noexec
Aug 4 07:52:25 lt129 kernel: i8253 count too high! resetting..
Aug 4 08:01:00 lt129 CROND[2817]: (root) CMD (nice -n 19 run-parts /etc/cron.hourly)
Aug 4 08:01:03 lt129 msec: changed mode of /var/log/wtmp from 664 to 640
Aug 4 08:01:03 lt129 msec: changed group of /var/log/wtmp from utmp to adm
Aug 4 08:01:03 lt129 msec: changed mode of /var/log/XFree86.0.log from 644 to 640
Aug 4 08:01:03 lt129 msec: changed group of /var/log/XFree86.0.log from root to adm
Aug 4 08:01:03 lt129 msec: changed mode of /var/log/cups/error_log from 644 to 640
Aug 4 08:01:03 lt129 msec: changed mode of /var/log/ksyms.0 from 644 to 640
Aug 4 08:01:03 lt129 msec: changed group of /var/log/ksyms.0 from root to adm
Aug 4 08:01:03 lt129 msec: changed mode of /var/log/cups/access_log from 644 to 640
9.4 Автоматизация с помощью планировщика
В Linux имеется возможность назначать задачи:
• к определенному времени, заданному относительно
• к определенному времени, заданному абсолютно
• через определенные промежутки времени
• выполнить команду в определенное время
Программа at позволяет отложить выполнение программы. Время можно задать относительным или абсолютным значением:
at [options]
Например:
[root@tester /]# at -f script now+1 minutes_ # Относительное время
[root@tester /]# at -f script 4pm + 3 days_ # Относительное время
[root@tester /]# at -f script 10am Dec 31_ # Абсолютное время
Для вывода списка запланированных задач используется atq:
atq
Эта команда отобразит все запланированные задачи текущего пользователя. Для root, команда выдаст список запланированных задач для всех пользователей.
Для удаления запланированной задачи используется atrm:
atrm [jobnumber]
cron − это демон общего назначения, позволяющий пользователю запланировать периодическое выполнение некоторых задач.
Программа crontab позволяет пользователю устанавливать и удалять задачи.
Например:
[root@tester /]# crontab - # Список задач
[root@tester /]# crontab -e # Редактировать список
[root@tester /]# crontab -r # Удалить текущую задачу
[root@tester /]# crontab filejobs # Задать задачу
cron проверяет, имеются ли задачи для выполнения, один раз в минуту. cron должен быть запущен из /etc/rc или /etc/rc.local, и он ищет файл crontab в каталоге /var/spool/cron.
Формат файла crontab следующий:
minute hour day_of_month month day_of_week action
minute:0-59, hour:0-23, day_of_month:1-31, month:1-12,
day_of_week: 0-7
action: Строка для выполнения.
Пример файла crontab:
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# run-parts
01 * * * * root nice -n 19 run-parts /etc/cron.hourly
02 4 * * * root nice -n 19 run-parts /etc/cron.daily
22 4 * * 0 root nice -n 19 run-parts /etc/cron.weekly
42 4 1 * * root nice -n 19 run-parts /etc/cron.monthly
Избранным пользователям можно установить разрешение или запретить использование служб at или cron.
/etc/at.allow и /etc/at.deny
Пользователи, которым разрешено (запрещено) использовать at, перечислены в файлах /etc/at.allow и /etc/at.deny, соответственно.
Если файл /etc/at.allow существует, то at могут использовать только пользователи, перечисленные в нем.
Если же файл /etc/at.allow не существует, проверяется файл /etc/at.deny. Любому пользователю, не упомянутому в этом файле, разрешено использовать at.
/etc/cron.allow и /etc/cron.deny
Пользователи, которым разрешено (запрещено) использовать cron, перечислены в файлах /etc/cron.allow и /etc/cron.deny, соответственно.
Если файл /etc/cron.allow существует, то cron могут использовать только пользователи, перечисленные в нем.
Если же файл /etc/cron.allow не существует, проверяется файл /etc/cron.deny. Любому пользователю, не упомянутому в этом файле, разрешено использовать cron.
9.5 Резервирование
Важность хорошей стратегии резервирования очевидна. С ростом объемов данных, резервирование сотен мегабайт не вызывает удивления и встречается повсеместно, что требует быстрого и высоконадежного оборудования. Однако, критичным является не столько скорость создания резервных копий, сколько управление процессом резервирования само по себе. Следовательно, очень важно понять, как использовать основные инструменты, имеющиеся для этих целей в Linux.
Можно применять различные типы резервирования. Стратегия или механизм сильно зависят от инфраструктуры IT и от того, как планируется восстанавливать данные.
Различные типы резервирования включают в себя:
• Полный: Полное резервирование всех файлов
• Дифференциальный: Сохраняет указанные файлы.
• Инкрементальное: Сохраняет только те файлы, что были созданы или изменены после последнего резервирования
После создания резервной копии, проверьте, что все файлы-источники были помещены в резервную копию надлежащим образом. Для этого сравните список файлов и проверьте различия (используйте команду join и т.д.).
Создавайте контрольные суммы вместе с архивом. Это поможет удостовериться, что архив не был подделан или поврежден.
Нужно уметь отыскивать необходимый файл на ленточном носителе. Пользуйтесь библиотечными схемами или наклейками со штрихкодами.
Не храните все резервные копии в одном месте.
Не храните резервные копии в опасных местах, около источников магнитных полей и тепла.
Простые операции резервирования, как правило, могут быть произведены с помощью утилит tar или cpio. Программы cpio и tar похожи, но cpio способна читать файлы tar.
mt − это утилита управления магнитной лентой. При работе с магнитной лентой, mt позволяет извлечь ленту, найти нужный архивный файл, прокрутить ленту, и т.д.
Примеры:
$ tar cvf mybackup.tar ~ # Заархивировать домашний каталог
$ tar tvzf mybackup.tgz # Вывести список файлов, хранящихся в сжатом tar-архиве mybackup.tgz
$ cd /backupdir; tar xvzf mybackup.tgz # Извлечь все файлы
dd − общепринятая программа для дублирования томов, а также для копирования их в файлы. dd требует наличия входного файла if, который может быть файлом любого типа, в том числе и блочным устройством, и выходного файла of.
Пример:
[root@tester /]# dd if=/dev/cdrom of=/tmp/cd_image.iso
Создает ISO-образ диска CD-ROM.
rsync используется для копирования всей структуры каталога по сети. Содержимое каталог-назначения становится идентичным каталогу-источнику.
rsync позволяет передавать по сети только отличия между двумя наборами файлов.
Примеры:
[root@tester /]# rsync *.pdf remotehost:dir/
Осуществляет передачу всех файлов, отвечающих шаблону *.pdf из текущего каталога в каталог dir в системе remotehost.
[root@tester /]# rsync -avz foo:dir/sub /data/tmp
Осуществляет рекурсивный перенос всех файлов из каталога dir/sub на хосте foo в каталог /data/tmp/bar на локальном компьютере.
Файлы переносятся в “архивном” режиме, что гарантирует сохранение символических ссылок, устройств, атрибутов, разрешений, имен владельцев, и т.д.
Традиционная для Unix программа создания резервных копий, dump является полноценным приложением, которое проверяет файлы в файловой системе, определяет, какие из них следует зарезервировать, и копирует их на определенный раздел. Она поддерживает инкрементальное резервирование и ее функция восстановления может воссоздавать уничтоженные файловые системы. Однако, будучи низкоуровневым приложением, она зависит от основополагающей файловой системы, и может быть не всегда доступна. В Linux, dump/restore поддерживает файловую систему ext2.
9.6 Установка системного времени
Когда система загружается, она использует аппаратные часы для определения текущей даты и времени. Когда это сделано, ядро устанавливает обработчик программного прерывания на каждом такте часов, который изменяет системное время дня. Разные системы могут иметь разное время, которое может изменяться («плыть»). Для синхронизации всех систем, входящих в инфраструктуру IT, с часовым сервером, используется NTP (Network Time Protocol).
Для считывания аппаратного времени используется hwclock.
Пример:
[root@tester /]# hwclock
Sun Aug 8 16:00:27 2004 -0.696924 seconds
Демон ntpd позволяет системе синхронизировать информацию о времени дня со стандартными часовыми серверами Интернета.
ntpd [options]
Во время загрузки, демон считывает файл /etc/ntp.conf.
Пример:
# /etc/ntp.conf, configuration for ntpd
# ntpd will use syslog() if logfile is not defined
#logfile /var/log/ntpd
driftfile /var/lib/ntp/ntp.drift
statsdir /var/log/ntpstats/
statistics loopstats peerstats clockstats
filegen loopstats file loopstats type day enable
filegen peerstats file peerstats type day enable
filegen clockstats file clockstats type day enable
### lines starting 'server' are auto generated,
### use dpkg-reconfigure to modify those lines.
server ntp.metas.ch
Для проверки работы сервера NTP используется ntpdate.
Пример:
[root@tester /]# ntpdate ntp.metas.ch
8 Aug 17:08:59 ntpdate[17761]: step time server 193.5.216.14 offset 3600.188531 sec
[root@tester /]# ntpdate swisstime.ethz.ch
8 Aug 17:09:26 ntpdate[17762]: adjust time server 129.132.2.21 offset 0.002651 sec
Аппаратное время хранится в форме всеобщего скоординированного времени UTC (Universal Time Coordinate).
Файл /etc/timezone используется для перевода времени UTC в местное время.
Функция hwclock используется для считывания времени UTC.
Пример:
[root@tester /]# hwclock --utc
Sun Aug 8 18:26:56 2004 -0.280330 seconds
[root@tester /]# hwclock --localtime
Sun Aug 8 16:26:59 2004 -0.929518 seconds
Все функции, работающие со временем, выдают местное время, согласно часовому поясу, прописанному в /etc/timezone.
Для изменения часового пояса вашей системы, измените соответствующее значение в /etc/timezone, затем запустите hwclock с опцией − hctosys.
9.7 Управление NFS, smb и nmb
NFS позволяет системе читать и записывать файлы на удаленных носителях так, как если бы они были расположены на локальном хосте.
Механизм реализуется через RPC. На серверной стороне необходимо запустить демоны portmap, nfsd и mountd.
nfsd обслуживает запросы клиента к файловой системе. Если ваш компьютер используется как файл-сервер, то увеличение производительности может быть достигнуто путем запуска нескольких экземпляров nfsd.
mountd обслуживает протокол NFS . Когда получен запрос на монтирование от клиента, он проверяет, есть ли возможность монтирования.
Для того, чтобы клиент мог смонтировать раздел с сервера, последнему необходимо сначала экспортировать файловую систему с помощью программы exportfs.
Примеры:
[root@tester /]# exportfs # Список текущих экспортированных директорий
[root@tester /]# exportfs -o ro /tmp # Экспорт директории /tmp в режиме только для чтения
[root@tester /]# exportfs -a # Экспорт всех директорий в /etc/exports
[root@tester /]# exportfs -u # Отменить экспорт директорий из /etc/exports
Как только NFS сервер экспортировал какие-то директории, Вы можете смонтировать их на вашей клиентской файловой системе.
Пример:
[root@tester /]# mount hostserver:/tmp /mnt # монтирование /tmp с сервера в локальный каталог /mnt.
Программа mountd хранит в файле /etc/mtab список текущих экспортированных директорий.
Во время загрузки, файл /etc/fstab используется для поиска директорий, подлежащих монтированию.
[root@tester /]# mount # Список всех смонтированных директорий
[root@tester /]# mount -a # Монтирование всех директорий указанных в /etc/fstab
Чтобы узнать состояние NFS, используйте nfsstat.
Samba позволяет любой рабочей станции Linux работать в роли файл- или принт-сервера для DOS, Windows, OS/2, а также других Linux-машин.
Samba использует протокол Server Message Block SMB от Microsoft, основанный на службах NetBIOS.
NetBIOS − это API (application programming interface − интерфейс прикладного программирования), который имеет собственные службы разрешения имен. Каждый присоединенный компьютер может установить собственное имя в файле /etc/samba/lmhosts.
Протокол SMB работает поверх протокола TCP/IP. Главным конфигурационным файлом Samba является /etc/samba/smb.conf.
Чтобы запустить или остановить samba, используйте rcsmb.
Примеры:
[root@tester /]# rcsmb start
[root@tester /]# rcsmb stop
Файл конфигурации разделен на 2 секции:
• global: Основные настройки
• share: Установки для пользователей
/etc/samba/smb.conf
Пример:
[global]
# Имя которое будет видно в "My Network Places" (Microsoft)
workgroup = workgroup
# Интерфейс и маска подсети для служб Samba
interfaces = 192.168.0.50/255.255.255.0
# Интерфейс и маска подсети для Samba
# Определение того, как клиенты взаимодействуют с Samba. Значения могут быть: user, share, server, domain.
security = SHARE
# Less restricted when sharing a printer
# Define what to do for user, server, domaine if log in doesn't match a UNIX account
# Bad Password: Treated as guest for an invalid password. Silently logged as guest.
# Never: Rejected if an invalid password is given. (default)
# Bad User: Rejected, unless the account doesn't exist. Treated as guest.
# map to guest = Bad Password # Other option can be Never and Bad User.
# encrypt password = Yes # For all account encrypt password
socket option SO_KEEPALIVE IPTOS_LOWDELAY TCP_NODELAY
# man setsockopt
os level = 20
# Browsing level
[tmp]
comment = tmp directory
path = /tmp
read only = No
guest ok = Yes
/etc/samba/lmhost
Пример:
127.0.0.1 localhost
192.168.0.50 linux # Имя NetBIOS, которое будет отображаться в списках рабочей группы
Samba предоставляет утилиту, называемую swat, для настройки через браузер.
Чтобы использовать ее, активируйте службу swat в /etc/services, и пошлите xinetd сигнал SIGHUP.
Чтобы настроить Samba через браузер, используйте следующий URL:
• С локального хоста: http://localhost:901
• С удаленного хоста: http://192.168.0.50:901
Порт 901 − порт, который прослушивает служба swat.
В Windows, вы сможете увидеть Linux системы и все то, что вы сделали доступным в приложении "Мое сетевое окружение".
Приложение "Вся сеть" должно отобразить имя вашей рабочей группы вместе с Linux-системами.
Используя предыдущий демонстрационный файл конфигурации smb.conf, Вы должны получить доступ к /tmp директории на Linux-машине без запроса пароля.
Утилита Webmin имеет хороший модуль Samba для более легкой настройки Samba через web.
Файл /etc/samba/smbusers позволяет вам связать учетные записи пользователей UNIX и Windows.
Формат файла /etc/samba/smbusers:
UNIX_user_name = WINDOWS_user_name ...
Чтобы добавить пользователя Samba, вы можете использовать утилиту smbadduser или swat2.
Программа smbpasswd может быть использована для установки пароля для каждой учетной записи. Также может быть использована программа конфигурирования swat.
Для шифрации пароля используйте опцию passwords = Yes в файле /etc/smb.conf.
Пароли учетных записей будут сохранены в файле /etc/samba/smbpasswd.