Картинка для привлечения внимания и подогревания интереса. Что в ней не так? Произойдет ли что-то "плохое", если её выполнить. ) Я просто хочу удалить симлинк.
Продолжаем. Итак, сегодня ставим NFS, Apache и создаем свой маленький репозиторий.
Что и для чего я собираюсь использовать:Продолжаем. Итак, сегодня ставим NFS, Apache и создаем свой маленький репозиторий.
- NFS - шареный ресурс, домашние папки для пользователей, dvd образ для установки по сети
- Apache - репозиторий, возможно в качестве образа для установки по сети вместо NFS
Первым делом монтируем установочный диск и копируем все его содержимое в директорию dvd. В конце команды я использую &, что запускает копирование в бэкграунде. Отслеживать задачу можно по команде jobs.
Можно даже выйти с сервера, а задача будет выполняться.
В директории Packages на диске находится репозиторий всего самого нужного. Это и будет наш будущий локальный репозиторий. Создаем все необходимое для этого с помощью createrepo.
Порты
Не забываем открыть доступ на файерволе. Для работы NFS хватит только сервиса nfs, но я открою и rpc-bind/mountd для тестов.
Создаем ещё пару шар. Первая из них - /srv/homes. По моей задумке в ней будут домашние папки пользователей, которые будут автоматически подмонтироваться на сервере. Вторая директория просто для тестов - /srv/share. Не забываем проставить нужный контекст.
Далее пишем а /etc/exports две строчки разрешающие rw доступ на шары для всех хостов в домене rhcsalab.hi. Рестартуем сервер и проверяем доступность шар. В этот момент срабатывают два дополнительных сервиса - rpc-bind/mountd.
Первое, что мы сделаем, подмонтируем корень / на localhost. По идее, эта процедура подмонтирует все директории, которые нам доступны на сервер localhost. Однако как видно ниже, мы получили доступ только к dvd.
А что, если подмонтиовать корень, но уже по имени? В таком случае, мы получаем доступ ко всем трем шарам.
Далее простой тест на монтирование и создание файла. Пока что все локально.
Но, после рестарта Apache, я получил ошибку о нехватке прав. Хм… но права в порядке…
Как это часто бывает в таких случаях, нужно смотреть в SELinux. Ниже видно, что /var/www/html имеет дефолтный контекст httpd_sys_content_t, тогда как на данные по симлинку я собственноручно поставил nfs_t. Немного почитав документацию, я нашел именно тот, контекст, что мне нужен - public_content_t. К этому контексту имеют доступ NFS, SAMBA, FTP, Apache и прочее такое.
После смены контекста, мы видим содержимое нашего нового репозитория по ссылке http://srv1.rhcsalab.hi/repo. Теперь можно будет ставить систему по сети без использования DVD.
Редактируем /etc/samba/smb.conf. Тут я убрал немного лишнего и добавил в качестве шары директорию /srv/sambashare с правами на запись для группы samba. Как видно, здесь же есть конфигурация, которая разрешает доступ пользователям к своим домашним папкам. Здесь я не стал наворачивать какой-то хитрой конфигурации. Моя задача сейчас подмонтировать директорию на клиента и все.
Проверяем конфигурацию и включаем/запускаем сервисsamba smb.
Смотрим локально, что же доступно пользователю galya.
Однако не стоит забывать про файервол и SELinux. Добавим в firewall сервис smb samba (да что ж такое). Как видно, контекст тоже неверный var_t. Мы уже знаем, что в таких случаях можно использовать public_content_t или public_content_rw_t для разрешения на запись. Там правда ещё и boolean придется править... Короче, пока не будем выдумывать.
После таких манипуляций можно переходить к самому вкусному - DHCP+TFTP+Kickstart.
Допустим, у меня есть симлинк и я хочу его удалить. Я, как крутой и самоуверенный linux-админ, дописываю -rf к команде. Да просто потому, что так пишут в многочисленных гайдах в сети. Далее, я очень привык пользоваться tab для завершения команды. К сожалению, в этом случае tab поставит / в конце команды.
В итоге, выполнение такой команды удалит все содержимое папки по симлинку, но не сам cимлинк. Во-первых, не стоит использовать -rf там где не надо использовать rf, как видно на картинке внизу вас предупредят о том, что вы делаете что-то не то. Лучше чтобы система вас лишний раз спросила. Во-вторых, не нужно следить за / в конце команды или не использовать tab (нереально).
Можно даже выйти с сервера, а задача будет выполняться.
В директории Packages на диске находится репозиторий всего самого нужного. Это и будет наш будущий локальный репозиторий. Создаем все необходимое для этого с помощью createrepo.
NFS
Это довольно интересный протокол, который создавался простым. Именно по этому у него не все так хорошо с аутентификацией. По сути, её почти нет. По умолчанию доступ ограничивается по имени хоста, подсети и UID пользователя. Конечно же, можно навернуть Kerberos, но это уже другая история.Порты
- TCP/2049 используется непосредственно NFSv4
- TCP/111 и TCP/20049 используются сервисами rpc-bind и mountd. Они несут несколько функций, одна из них - просмотр доступных шар с клиента.
Не забываем открыть доступ на файерволе. Для работы NFS хватит только сервиса nfs, но я открою и rpc-bind/mountd для тестов.
Создаем ещё пару шар. Первая из них - /srv/homes. По моей задумке в ней будут домашние папки пользователей, которые будут автоматически подмонтироваться на сервере. Вторая директория просто для тестов - /srv/share. Не забываем проставить нужный контекст.
Далее пишем а /etc/exports две строчки разрешающие rw доступ на шары для всех хостов в домене rhcsalab.hi. Рестартуем сервер и проверяем доступность шар. В этот момент срабатывают два дополнительных сервиса - rpc-bind/mountd.
Первое, что мы сделаем, подмонтируем корень / на localhost. По идее, эта процедура подмонтирует все директории, которые нам доступны на сервер localhost. Однако как видно ниже, мы получили доступ только к dvd.
А что, если подмонтиовать корень, но уже по имени? В таком случае, мы получаем доступ ко всем трем шарам.
Далее простой тест на монтирование и создание файла. Пока что все локально.
Apache
Пришло время сделать доступным наш созданный репозиторий средствами Apache. Я решил сделать это добавив симлинк в /var/www/html.Но, после рестарта Apache, я получил ошибку о нехватке прав. Хм… но права в порядке…
Как это часто бывает в таких случаях, нужно смотреть в SELinux. Ниже видно, что /var/www/html имеет дефолтный контекст httpd_sys_content_t, тогда как на данные по симлинку я собственноручно поставил nfs_t. Немного почитав документацию, я нашел именно тот, контекст, что мне нужен - public_content_t. К этому контексту имеют доступ NFS, SAMBA, FTP, Apache и прочее такое.
После смены контекста, мы видим содержимое нашего нового репозитория по ссылке http://srv1.rhcsalab.hi/repo. Теперь можно будет ставить систему по сети без использования DVD.
Samba
Перед настройкой SMB добавим пару пользователей, которые не имеют shell. В итоге, залогиниться на сервер по ssh, например, они не смогут. Далее, создаем группу samba и добавляем туда новых пользователей. Теперь нужно создать samba пароли для новых пользователей. Время создать нужную папку, назначить на неё нужную группу и права для этой группы.Редактируем /etc/samba/smb.conf. Тут я убрал немного лишнего и добавил в качестве шары директорию /srv/sambashare с правами на запись для группы samba. Как видно, здесь же есть конфигурация, которая разрешает доступ пользователям к своим домашним папкам. Здесь я не стал наворачивать какой-то хитрой конфигурации. Моя задача сейчас подмонтировать директорию на клиента и все.
Проверяем конфигурацию и включаем/запускаем сервис
Смотрим локально, что же доступно пользователю galya.
После таких манипуляций можно переходить к самому вкусному - DHCP+TFTP+Kickstart.
P.S.:
Ответ на картинку в начале поста. Это что-то похожее на swichport trunk allowed vlan.Допустим, у меня есть симлинк и я хочу его удалить. Я, как крутой и самоуверенный linux-админ, дописываю -rf к команде. Да просто потому, что так пишут в многочисленных гайдах в сети. Далее, я очень привык пользоваться tab для завершения команды. К сожалению, в этом случае tab поставит / в конце команды.
В итоге, выполнение такой команды удалит все содержимое папки по симлинку, но не сам cимлинк. Во-первых, не стоит использовать -rf там где не надо использовать rf, как видно на картинке внизу вас предупредят о том, что вы делаете что-то не то. Лучше чтобы система вас лишний раз спросила. Во-вторых, не нужно следить за / в конце команды или не использовать tab (нереально).
Комментариев нет:
Отправить комментарий