В самом современном дистрибутиве Linux используется очень настраиваемый и настраиваемый инструмент sudo. Возможно, вы уже слышали об этом. В Windows при установке программы вам необходимо предоставить пароль Adminsitrators.
В Ubuntu пользователь Administrator (root) по умолчанию отключен. Вы даже не знаете его пароль, никто не делает, пока вы не измените свой пароль с помощью sudo. Пользователь может получить привилегии root за короткий промежуток времени или за одну задачу (например, установку программы). У этого пользователя должны быть права на использование sudo (настроено в /etc/sudoers). С sudo выполняемая программа выполняется как пользователь root.
Затем в графических сеансах, управляемых gnome, существуют другие механизмы для выполнения административных задач. Один из них - sudo . В фоновом режиме есть демон, с привилегиями root. Если, например, пользователь хочет выключить машину (что может делать только root), пользователь разговаривает с этим демоном через безопасный контекст (называемый D-Bus). Если предоставлено, демон выполняет команду отключения системы. Эти правила определены в /usr/share/polkit-1/actions/*.
Gnome часто поставляется с однонаправленным решением, называемым D-Bus . В этом ключевом ключе ваши кредитные данные могут быть сохранены. Когда вы выполняете аутентификацию через общий сетевой ресурс (например, в наутилусе), вам будет предложено ввести пароль, и у вас есть флажок, чтобы запомнить пароль. Это будет храниться в keyring, базе данных, защищенной паролем. Эта база данных будет разблокирована во время графического процесса входа через PAM.
Тогда есть PAM , который основан на SELinux. AppArmor определяет профили для разных приложений, работающих в системе. Эти профили обрабатывают и ограничивают доступ, который требуется конкретному приложению.
Все эти механизмы также реализованы в операционных системах Windows.
Я действительно могу порекомендовать лекцию вышеупомянутых механизмов, чтобы понять, как они работают вместе.
SELinux
sudo policyKit Gnome Keyring PAM - подключаемые модули аутентификации AppArmor SELinuxКукольный - это немного монстр, чтобы одеть голову, так что изучение на примере - это не плохо. В нижеследующем я предполагаю, что вы используете модули - скажите в комментарии, если вы этого не сделали, или вам нужно больше узнать о том, как сместить модуль.
Допустим, вы начинаете новый модуль называется mymodule. В домашнем каталоге марионетки (обычно /etc/puppet) на марионеточном мастере вы должны создать каталог манифеста модулей и файлов:
mkdir -p modules/mymodule/manifests
mkdir -p modules/mymodule/files
Затем создайте файл в этом каталоге с именем init.pp и введите: [ ! d2]
class myfile {
file { '/home/operator1/Desktop/Backup':
ensure => directory,
mode => '0755',
owner => 'operator1',
group => 'operator1',
}
file { "/home/operator1/Desktop/Backup/datas.xls":
mode => "0644",
owner => 'operator1',
group => 'operator1',
source => 'puppet:///modules/module_name/datas.xls',
}
}
Затем поместите файл datas.xls в каталог files модуля - в этом примере в modules/mymodule/files/. (Примечание: там также может быть каталог templates для шаблонов).
В файле manifests/site.pp вам нужно импортировать модуль и включить класс, выполнив что-то вроде:
import 'mymodule'
node base {
include myfile
}
node server1 inherits base {}
node server2 inherits base {
# extra config here
}
Убедитесь, что все ваши узлы наследуются от базы, и это должно быть все, что вам нужно сделать. Как и марионетка 0.25, вы можете использовать регулярные выражения в имени узла, например:
node server[0-9] inherits base {}
. Дайте мне знать в комментариях, если вам потребуются дополнительные разъяснения.
sudo apt-get install puppet
Затем отредактируйте /etc/default/puppet и измените START=no на START=yes.
Также отредактируйте /etc/puppet/puppet.conf и добавьте строку в раздел [main], чтобы указать, где найти марионеточного мастера:
server=puppet.mydomain.com
Затем мы можем выполнить тестовый прогон с sudo puppetd --test. Если вы получите ключевые ошибки, вам может потребоваться перейти на мастер-сервер кукол и подписать ключ клиента. Чтобы проверить точное имя, вы можете сделать sudo puppetca --list, а затем sudo puppetca --sign server1.mydomain.com (или что бы имя сервера не было из команды списка).
Теперь запустите кукольный сервис с помощью sudo service puppet start, и вы должны быть в отъезде ,
Я отмечаю в исходном вопросе, который вы хотели знать. как удалить файлы. Вы отредактировали бы manifests/init.pp как
file { "/home/operator1/Desktop/Backup/datas.xls":
ensure => absent,
}
Если у вас возникли проблемы, вы можете сделать несколько вещей. На любой машине с марионеткой вы можете проверить свой синтаксис, выполнив
puppet --parseonly --ignoreimport myfile.pp
или проверить всю партию, вытащив флаг --ignoreimport, хотя это может привести к некоторым смешным сообщениям об ошибках, которые не являются действительно ошибки, которые я нашел. Вы также можете запустить кукольный концерт на марионеточной машине, выполнив:
sudo puppetd --test
, который показывает различные полезные результаты с ошибками и предупреждениями, выделенными разными цветами. Если вы хотите получить еще более подробную информацию, вы можете запустить:
sudo puppetd --test --debug
, но, как правило, генерирует так много результатов, что трудно пропустить, так что сделайте это, только если вы уже пробовали предыдущие шаги и
Обратите внимание, что это основано на марионетке 0.25.x, которую я использую на работе в настоящее время, а также версия в Ubuntu 10.04. Марионеточный код в главном разделе определенно будет работать, но более поздние версии марионетки имеют новые флаги, которые могут помочь в отладке вывода.