Linux云自动化运维第九课

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux云自动化运维第九课相关的知识,希望对你有一定的参考价值。

第一单元 自动安装RED HAT ENTERPRISE LINUX

 

一、Kickstart 概述

1.使用kickstart,系统管理员可以创建一个包含安装期间所有常见问题的答案的文件,以自动安装Red Hat Enterprise Linux

2.Kickstart类似于Oracle solaris中的Jumpstart或Microsoft Windows的无人值守安装

 

二、Kickstart制作工具安装

1.软件包

#system-config-kickstart

2.安装

#yum install system-config-kickstart

eg:[[email protected] mnt]$ ssh [email protected] -X

[email protected]‘s password:

Last login: Fri Mar 31 21:25:25 2017 from foundation42.ilt.example.com

[[email protected] ~]# yum install system-config-kickstart -y

 

三、创建kickstart文件

1.使用system-config-kickstart工具

2.使用文本编辑器

#模板:/root/anaconda-ks.cfg

#编辑完成后使用ksvalidator命令校验正确性

eg:[[email protected] ~]# system-config-kickstart

/usr/share/system-config-kickstart/kickstartGui.py:104: GtkWarning: GtkSpinButton: setting an adjustment with non-zero page size is deprecated

  xml = gtk.glade.XML ("/usr/share/system-config-kickstart/system-config-kickstart.glade", domain="system-config-kickstart")

/usr/lib/python2.7/site-packages/scdate/core/zonetab.py:241: RuntimeWarning: Untranslated time zone: Antarctica/Troll

  entry = ZoneTabEntry(code, lat, long, tz, comments)

/usr/lib/python2.7/site-packages/scdate/core/zonetab.py:241: RuntimeWarning: Untranslated time zone: Europe/Busingen

  entry = ZoneTabEntry(code, lat, long, tz, comments)

/usr/lib/python2.7/site-packages/scdate/core/zonetab.py:241: RuntimeWarning: Untranslated time zone: Asia/Khandyga

  entry = ZoneTabEntry(code, lat, long, tz, comments)

/usr/lib/python2.7/site-packages/scdate/core/zonetab.py:241: RuntimeWarning: Untranslated time zone: Asia/Ust-Nera

  entry = ZoneTabEntry(code, lat, long, tz, comments)

已加载插件:langpacks

[[email protected] ~]# vim /mnt/kss.cfg

[[email protected] ~]# cd /mnt/

[[email protected] mnt]# ls

file1  file2  file3  ks.cfg  kss.cfg  mailbackup

[[email protected] mnt]# ksvalidator kss.cfg

[[email protected] mnt]# yum install httpd -y

已加载插件:langpacks

软件包 httpd-2.4.6-17.el7.x86_64 已安装并且是最新版本

无须任何处理

[[email protected] mnt]# systemctl stop firewalld.service

[[email protected] mnt]# systemctl start httpd

[[email protected] mnt]# ls

file1  file2  file3  ks.cfg  kss.cfg  mailbackup

[[email protected] mnt]# cp kss.cfg  /var/www/html/

[[email protected] mnt]# cd /var/www/html/

[[email protected] html]# ls

ks.cfg  kss.cfg

 

四、选择明细

–basic configuration------------基本信息设定

–installation method------------安装模式选择

–boot loader options------------引导程序选项

–partition information------------分区划分策略

–authentication------------认证加密方式

–firewall configuration------------火墙配置信息

–display configuration------------图形界面选择

–package selection------------软件包选择

–pre-installation------------安装前执行脚本

–post-installation------------安装后执行脚本

 

五、Kickstart文件参数解析

1.%end------目的结束

2.%packages------安装包

3.%pre------安装前执行脚本

4.%post------安装后执行脚本

5.url------安装源路经

6.repo yum------源地址

7.text------文本安装

8.vnc------安装时开启vnc

9.Askmethod------交互模式

10.clearpart------删除分区

11.part------分区策略

12.ignoredisk------跳过磁盘

13.bootloader------引导程序设定

14.volgroup-------lvm组设定

15.logvol------lvm设定

16.zerombr------清空 mbr

17.network------网路设定

18.firewall------火墙设定

19.lang------语言设定

20.keyboard------键盘设定

21.timezone------时区设定

22.auth------认证方式选择

23.rootpw------root 密码

24.selinux------selinux 设定

25.services------开机启动服务

26.group, user------用户组建立

27.logging------安装日志设定

28.firstboot------首次启动设定

29.reboot, poweroff, halt------安装完成动作

eg:vim /mnt/kss.cfg

#%packages

#@base

#lftp

#%end

 

六、为安装程序提供kickstart文件

1.网络服务器 :FTP 、 HTTP 和 NFS

2.DHCP/TFTP 服务器

3.USB 磁盘或 CD-ROM

4.本地磁盘

 

七、创建引导介质

1.安装磁盘

2.PXE

3.boot.iso

 

八、使安装程序指向kickstart文件

1.ks=http://server/dir/file

2.ks=ftp://server/dir/file

3.ks=nfs:server:/dir/file

4.ks=hd:device:/dir/file

5.ks=cdrom:/dir/file

 

第二单元 控制对文件的访问

 

一、权限列表的读取

[[email protected] Desktop]# getfacl file

# file: file   ###文件名称

# owner: root   ###文件所有人

# group: root   ###文件所有组

user::rw-   ###用户权限

user:student:rwx   ###特殊指派student用户及读写执行权限   

group::r--   ###组权限

mask::rwx   ###可指派最大权限

other::r--   ###其他人权限

 

二、setfacl用于设置或修改文件的ACL

1.setfacl -m u:bob:rw filename   ###授予用户bob读写权限

2.setfacl -m g:westos:rw filename   ###授予组westos读写权限

3.setfacl -m g:redhat:r filename   ###授予组redhat读的权限

4.setfacl -x u:bob filename   ###删除用户bob的ACL权限

5.setfacl -m o::- filename   ###修改其他所有人的权限为空

eg:[[email protected] Desktop]# setfacl -m u:bob:rw file

[[email protected] Desktop]# setfacl -m g:westos:rw file

[[email protected] Desktop]# setfacl -m g:redhat:r file

[[email protected] Desktop]# getfacl file

# file: file    ###文件名称file

# owner: root   ###文件所有人root

# group: root   ###文件所有组root

user::rw-   ###所有人权限读写

user:student:rwx   ###特殊指派student用户及读写执行权限

user:bob:rw-   ###特殊指派bob用户及读写权限

group::r--   ###所有组权限读

group:westos:rw-   ###特殊指派westos组及读写权限

group:redhat:r--   ###特殊指派redhat组及读权限

mask::rwx   ###可指派最大权限读写执行

other::r--   ###其他人权限读

[[email protected] Desktop]# setfacl -x u:bob file   ###删除bob用户的ACL权限

[[email protected] Desktop]# getfacl file

# file: file

# owner: root

# group: root

user::rw-

user:student:rwx

group::r--

group:westos:rw-

group:redhat:r--

mask::rwx

other::r--

[[email protected] Desktop]# setfacl -m o::- file   ###修改其他人权限为空

[[email protected] Desktop]# getfacl file

# file: file

# owner: root

# group: root

user::rw-

user:student:rwx

group::r--

group:westos:rw-

group:redhat:r--

mask::rwx

other::---

 

三、ACL 掩码及继承

1.具有 ACL 的文件拥有一个“mask”(掩码),这个掩码既能够限制拥有该文件的组的最大权限,有能够限制ACL中的补充用户和组所拥有的最大权限

#setfacl -m m:rwx file

2.目录可以有“默认ACL”条目,系统自动针对在该目录中创建的新文件设置这些条目,这类似setgid权限的方法(针对目录时),使得在该目录中创建的新文件归拥有该目录的组所有

#setfacl -m d:u:bob:rw directory

 

四、设备权限列表加载

1.挂载文件系统之后,必须启用对POSIX ACL条目的支持

2.安装程序会配置它创建的所有ext4文件系统,以自动启用ACL支持

#tune2fs -l /dev/sda1 |grep "Default mount"

Default mount options:

user_xattr acl

3.如果手动格式化文件系统,则需要使用acl挂载选项挂载该系统

#tune2fs -o user_xattr,acl /dev/sda1

 

eg:[[email protected] lianxi]# ll file

-rw-r--r--. 1 root root 0 Apr  1 01:43 file

[[email protected] lianxi]# setfacl -m u:student:rw file   ###授予用户student读写权限

[[email protected] lianxi]# ll file

-rw-rw-r--+ 1 root root 0 Apr  1 01:43 file

[[email protected] lianxi]# getfacl file

# file: file

# owner: root

# group: root

user::rw-

user:student:rw-

group::r--

mask::rw-

other::r--

[[email protected] lianxi]# su - student

上一次登录:Sat Apr  1 01:41:49 EDT 2017pts/0 上

[[email protected] ~]$ echo www>/lianxi/file   ###student用户可写

[[email protected] ~]$ cat /lianxi/file    ###student用户可读

www

[[email protected] ~]$ exit

logout

[[email protected] lianxi]# setfacl -m g:kiosk:rw file     ###授予组kiosk读写权限

[[email protected] lianxi]# getfacl file

# file: file

# owner: root

# group: root

user::rw-

user:student:rw-

group::r--

group:kiosk:rw-

mask::rw-

other::r--

 

[[email protected] lianxi]# su - kiosk

[[email protected] ~]$ echo aaa >>/lianxi/file    ###kiosk组用户可写

[[email protected] ~]$ cat /lianxi/file   ###kiosk用户可读

www

aaa

[[email protected] ~]$ exit

logout

[[email protected] lianxi]# setfacl -x u:student file   ###删除student用户权限

[[email protected] lianxi]# setfacl -x g:kiosk file   ###删除kiosk组用户权限

[[email protected] lianxi]# getfacl file

# file: file

# owner: root

# group: root

user::rw-

group::r--

mask::r--

other::r--

[[email protected] lianxi]# ll file

-rw-r--r--+ 1 root root 8 Apr  1 01:46 file

[[email protected] lianxi]# setfacl -b file   ###删除file文件附加权限

[[email protected] lianxi]# ll file

-rw-r--r--. 1 root root 8 Apr  1 01:46 file

 

unit9-作业

 

1.新建用户并满足以下条件

1)asasin、uid=2000

2)sareo、uid=2001

3)这两个用户都属于deho组

4)这两个用户的密码为westos0oll

5)新建用户taromati

6)此用户为系统用户,没有交互式shell

eg:[[email protected] ~]# groupadd deho

[[email protected] ~]# useradd -g deho -u 2000 asasin

[[email protected] ~]# useradd -g deho -u 2001 sareo

[[email protected] ~]# echo westos0oll | passwd --stdin asasin

Changing password for user asasin.

passwd: all authentication tokens updated successfully.

[[email protected] ~]# echo westos0oll | passwd --stdin sareo

Changing password for user sareo.

passwd: all authentication tokens updated successfully.

[[email protected] ~]# useradd taromati

[[email protected] ~]# usermod -s " " taromati

[[email protected] ~]# tail -n 3 /etc/passwd

asasin:x:2000:1004::/home/asasin:/bin/bash

sareo:x:2001:1004::/home/sareo:/bin/bash

taromati:x:2002:2002::/home/taromati:

 

2.新建文件/public并满足以下条件

1)所有用户都可以在此目录中建立文件

2)除sareo用户外任何人在此目录中建立的文件都自动归属到deho组中

3)sareo对此目录中新建所有文件均不能做任何操作

4)任何人在此目录中只能删除属于自己的文件

eg:[[email protected] ~]# mkdir /public

[[email protected] ~]# cd /

[[email protected] /]# ls

bin   dev  home  lib64  mnt  proc    root  sbin  sys  usr

boot  etc  lib   media  opt  public  run   srv   tmp  var

[[email protected] /]# chmod 3777 /public

[[email protected] /]# chgrp deho /public

[[email protected] /]# getfacl /public

getfacl: Removing leading ‘/‘ from absolute path names

# file: public

# owner: root

# group: deho

# flags: -st

user::rwx

group::rwx

other::rwx

[[email protected] /]# setfacl -m u:sareo:- /public

[[email protected] /]# getfacl /public

getfacl: Removing leading ‘/‘ from absolute path names

# file: public

# owner: root

# group: deho

# flags: -st

user::rwx

user:sareo:---

group::rwx

mask::rwx

other::rwx

default:user::rwx

default:group::rwx

default:mask::rwx

default:other::rwx

[[email protected] /]# su - sareo

Last login: Tue Apr  4 22:21:46 EDT 2017 on pts/0

[[email protected] ~]$ cd /public

-bash: cd: /public: Permission denied

 

以上是关于Linux云自动化运维第九课的主要内容,如果未能解决你的问题,请参考以下文章

Linux运维第九课----目录结构之etc目录内容

Linux云自动化运维第四课

Linux云自动化运维第十六课

Linux云自动化运维第二课

Linux云自动化运维第二十课

Linux云自动化运维第二十一课