马哥linux运维实战练习案例(一)

1、创建一个10G的文件系统,类型为ext4,要求开机可自动挂载至单独数据/data目录

第一步:首先使用df -h 命令,查看本机磁盘分区使用情况

[root@centos7 ~]# df -h

文件系统        容量  已用  可用 已用% 挂载点

/dev/sda3        18G 4.3G   14G   25% /

devtmpfs        482M    0  482M    0% /dev

tmpfs           490M   80K 490M    1% /dev/shm

tmpfs           490M 7.0M  483M    2% /run

tmpfs           490M     0 490M    0% /sys/fs/cgroup

/dev/sda1       497M 121M  377M   25% /boot

第二步:使用fdisk -l 命令查看所有的挂载点

[root@centos7 ~]# fdisk -l /dev/sd[a-z]

磁盘 /dev/sda21.5 GB, 21474836480 字节,41943040 个扇区

Units = 扇区 of 1 * 512 = 512bytes

扇区大小(逻辑/物理)512 字节 / 512 字节

I/O 大小(最小/最佳)512 字节 / 512 字节

磁盘标签类型:dos

磁盘标识符:0x000bd9cb

   设备 Boot      Start         End      Blocks  Id  System

/dev/sda1  *        2048     1026047     512000   83  Linux

/dev/sda2         1026048     5220351    2097152   82  Linux swap / Solaris

/dev/sda3         5220352    41943039   18361344   83  Linux

磁盘 /dev/sdb21.5 GB, 21474836480 字节,41943040 个扇区

Units = 扇区 of 1 * 512 = 512bytes

扇区大小(逻辑/物理)512 字节 / 512 字节 

I/O 大小(最小/最佳)512 字节 / 512 字节 

第三步:用fdisk命令对新的磁盘进行分区:

[root@centos7 ~]# fdisk /dev/sdb    ←fdisk后面不跟任何参数接设备文件进入磁盘分区操作

欢迎使用 fdisk (util-linux 2.23.2)

更改将停留在内存中,直到您决定将更改写入磁盘。

使用写入命令前请三思。

Device does not contain a recognized partitiontable

使用磁盘标识符 0xf245c75d 创建新的 DOS 磁盘标签。

命令(输入 m 获取帮助)使用m来查看fdisk所有操作指令

命令操作

  a   toggle a bootable flag

  b   edit bsd disklabel

  c   toggle the dos compatibilityflag

  d   delete a partition

  g   create a new empty GPTpartition table

  G   create an IRIX (SGI) partitiontable

  l   list known partition types

  m   print this menu

  n   add a new partition

………………………………………………

命令(输入 m 获取帮助)使用n来创建新的磁盘分区

Partition type:

  p   primary (0 primary, 0extended, 4 free)   ← p 主分区

  e   extended       ← e 扩展分区

Select (default p): p

分区号 (1-4,默认 1)1

起始扇区 (2048-41943039,默认为 2048)

将使用默认值 2048

Last 扇区, +扇区 or+size{K,M,G} (2048-41943039,默认为 41943039)+10G           使用+给分区设定大小为10G   

分区 1 已设置为 Linux 类型,大小设为 10 GiB

命令(输入 m 获取帮助)P   ← 使用P来查看已经创建好的分区

磁盘 /dev/sdb21.5 GB, 21474836480 字节,41943040 个扇区

Units = 扇区 of 1 * 512 = 512bytes

扇区大小(逻辑/物理)512 字节 / 512 字节

I/O 大小(最小/最佳)512 字节 / 512 字节

磁盘标签类型:dos

磁盘标识符:0xf245c75d

   设备 Boot      Start         End     Blocks   Id  System

/dev/sdb1            2048    20973567   10485760   83  Linux

命令(输入 m 获取帮助)W   使用W保存执行的操作后退出,也可以使用q放弃当前所有操作

The partition table has been altered!

Calling ioctl() to re-read partition table.

正在同步磁盘。     表明磁盘分区创建完毕

第四步:再次使用fdisk -l 命令查看挂载点

[root@centos7 ~]# fdisk -l /dev/sd[a-z]

磁盘 /dev/sda21.5 GB, 21474836480 字节,41943040 个扇区

Units = 扇区 of 1 * 512 = 512bytes

扇区大小(逻辑/物理)512 字节 / 512 字节

I/O 大小(最小/最佳)512 字节 / 512 字节

磁盘标签类型:dos

磁盘标识符:0x000bd9cb

   设备 Boot      Start         End      Blocks  Id  System

/dev/sda1  *        2048     1026047      512000  83  Linux

/dev/sda2         1026048     5220351    2097152   82  Linux swap / Solaris

/dev/sda3         5220352    41943039   18361344   83  Linux

 

磁盘 /dev/sdb21.5 GB, 21474836480 字节,41943040 个扇区

Units = 扇区 of 1 * 512 = 512bytes

扇区大小(逻辑/物理)512 字节 / 512 字节

I/O 大小(最小/最佳)512 字节 / 512 字节

磁盘标签类型:dos

磁盘标识符:0xf245c75d

   设备 Boot      Start         End      Blocks  Id  System

/dev/sdb1            2048    20973567   10485760   83  Linux

第五步:使用mke2fs命令对新的分区进行格式化,创建文件系统,卷标等信息:

[root@centos7 ~]# mke2fs -t ext4  /dev/sdb1

mke2fs 1.42.9 (28-Dec-2013)

文件系统标签=

OS type: Linux

块大小=4096 (log=2)

分块大小=4096 (log=2)

Stride=0 blocks, Stripe width=0 blocks

655360 inodes, 2621440 blocks

131072 blocks (5.00%) reserved for thesuper user

第一个数据块=0

Maximum filesystem blocks=2151677952

80 block groups

32768 blocks per group, 32768 fragments pergroup

8192 inodes per group

Superblock backups stored on blocks:

         32768,98304, 163840, 229376, 294912, 819200, 884736, 1605632

Allocating group tables: 完成                           

正在写入inode: 完成                           

Creating journal (32768 blocks): 完成

Writing superblocks and filesystemaccounting information: 完成

第六步:创建新的挂载空目录;

第七步:将文件系统挂载到新创建的/data目录下:

[root@centos7 ~]# mkdir /data    新建/data挂载目录

[root@centos7 ~]# mount /dev/sdb1/data  将文件系统挂载到/data目录下

[root@centos7 ~]# df -h    查看文件系统使用情况

文件系统        容量  已用  可用 已用% 挂载点

/dev/sda3        18G 4.3G   14G   25% /

devtmpfs        482M    0  482M    0% /dev

tmpfs           490M   80K 490M    1% /dev/shm

tmpfs           490M 7.0M  483M    2% /run

tmpfs           490M     0 490M    0% /sys/fs/cgroup

/dev/sda1       497M 121M  377M   25% /boot

/dev/sdb1       9.8G  37M  9.2G    1% /data

第八步:使用mount命令查看已挂载的所有设备

[root@centos7 ~]# mount

proc on /proc type proc(rw,nosuid,nodev,noexec,relatime)

……

 

/dev/sda1 on /boot type xfs(rw,relatime,seclabel,attr2,inode64,noquota)

/dev/sdb1 on /data type ext4(rw,relatime,seclabel,data=ordered)

第九步:想要开机自动挂载设备,必须编辑/etc/fstab文件

[root@centos7 ~]# ls -l/dev/disk/by-uuid/   查看UUID

总用量 0

lrwxrwxrwx. 1 root root 10 12 30 19:281120ff5e-8ec9-4a19-bd9f-b97732c49bb7 -> ../../sda3

lrwxrwxrwx. 1 root root  9 12 30 19:282015-03-31-23-50-00-00 -> ../../sr0

lrwxrwxrwx. 1 root root 10 12 30 19:283e0c7287-7a32-4fab-b6cc-5945e4fd083c -> ../../sda2

lrwxrwxrwx. 1 root root 10 12 30 19:285d97147b-798d-4316-9381-acf7d8f8bdfb -> ../../sdb1

lrwxrwxrwx. 1 root root 10 12 30 19:28fbac508c-2ca0-48d1-a74a-6ee4be99ca89 -> ../../sda1

wKiom1aFPCiSH0ueAAEXxxU3R_Y076.png


2、显示`netstat -tan`命令结果中以‘LISTEN’后跟0个、1个或者多个空白字符结尾的行;

wKiom1aFPGvSJpfdAAFa7ZxgeTU482.png

3、添加用户nginxzabbixtomcatnologin以及hadoop用户(nologin用户的shell/sbin/nologin);而后找出/etc/passwd文件中用户名与其shell名相同的行;

[root@centos7 ~]# useradd nginx

[root@centos7 ~]# useradd zabbix

[root@centos7 ~]# useradd tomcat

[root@centos7 ~]# useradd nologin

[root@centos7 ~]# useradd hadoop

[root@centos7 ~]# tail -l /etc/passwd

avahi:x:70:70:Avahi mDNS/DNS-SDStack:/var/run/avahi-daemon:/sbin/nologin

sshd:x:74:74:Privilege-separatedSSH:/var/empty/sshd:/sbin/nologin

postfix:x:89:89::/var/spool/postfix:/sbin/nologin

tcpdump:x:72:72::/:/sbin/nologin

lu:x:1000:1000:lu:/home/lu:/bin/bash

nginx:x:1001:1001::/home/nginx:/bin/bash

zabbix:x:1002:1002::/home/zabbix:/bin/bash

tomcat:x:1003:1003::/home/tomcat:/bin/bash

nologin:x:1004:1004::/home/nologin:/bin/bash

hadoop:x:1005:1005::/home/hadoop:/bin/bash

^:行首锚定;用于模式的最左侧;

$:行尾锚定;用于模式的最右侧;

\>:词尾锚定;用于单词模式的右侧;

\1: 从左侧起,第一个左括号以及与之匹配右括号之间的模式所匹配到的字符;

[root@centos7 ~]# grep"^\([[:alnum:]]\+\>\).*\1$" /etc/passwd

sync:x:5:0:sync:/sbin:/bin/sync

shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown

halt:x:7:0:halt:/sbin:/sbin/halt


4、找出/etc/rc.d/init.d/functions文件中某单词(单词中间可以存在下划线)后面跟着一组小括号的行;

# grep �Co "\([[:alpha:]_*[:alpha:]]\)\+()"  etc/rc.d/init.d/functions

wKioL1aFPZaRljXhAADyYdKszPI602.png

5、使用echo输出一个路径,而后egrep找出其路径基名;进一步的使用egrep取出其目录名(注意是目录名,而非目录路径)

[root@localhost ~]# echo"/etc/init.d/functions/" | egrep -o "[[[:alpha:]]*/?$" |cut-d/ -f1

functions 


6、查找/usr目录下不属于rootbinhadoop的所有文件;

# find /usr -not \( -user root -o -user bin-o -user hadoop \)


7、某天系统被入侵了,黑客在你系统下留下木马文件:现需要查找当前系统上没有属主或属组,且最近一周内曾被访问过的所有文件;

另外,需要查找/etc目录下大于20k且类型为普通文件的所有文件;

[root@localhost ~]# man find

-nogroup      没有属组

              No group corresponds to file’snumeric group ID.

-nouser       没有属主

              No user corresponds to file’snumeric user ID.

-atime n      访问时间

              File was last accessed n*24 hoursago.  When find fig-

              ures out how many 24-hourperiods  ago  the file  was

              last  accessed, any fractional part is ignored, so to

              match -atime +1, a file has tohave been  accessed  at

              least two days ago.

-size n[cwbkMG]    文件大小

             File  uses n  units of space.  The following suffixes

              can be used:

              ‘b’    for 512-byte blocks (this is the defaultif  no

                     suffix is used)

              ‘k’    for Kilobytes (units of 1024 bytes)

             ‘M’    for Megabytes (units of 1048576 bytes)

              ‘G’    for Gigabytes (units of 1073741824 bytes)

-type c    文件类型

              File is of type c:

            f      regular file     常规类型

组合条件:   与:-a         或:-o     非:-not

[root@localhost ~]# find / -nouser -o-nogroup -atime -7

find: ‘/proc/40532/task/40532/fd/6’: 没有那个文件或目录

find: ‘/proc/40532/task/40532/fdinfo/6’: 没有那个文件或目录

find: ‘/proc/40532/fd/6’: 没有那个文件或目录

find: ‘/proc/40532/fdinfo/6’: 没有那个文件或目录

[root@localhost ~]# find /etc -size +20k-type f

/etc/pki/ca-trust/extracted/java/cacerts

/etc/pki/ca-trust/extracted/openssl/ca-bundle.trust.crt

/etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem

/etc/pki/ca-trust/extracted/pem/email-ca-bundle.pem

/etc/pki/ca-trust/extracted/pem/objsign-ca-bundle.pem

/etc/pki/nssdb/cert8.db

/etc/ssh/moduli

…………………………………..


8、创建目录/test/data,让某组内普通用户对其有写权限,且创建的所有文件的属组为目录所属的组;此外,每个用户仅能删除自己的文件。 

[root@localhost ~]# groupadd works        添加works用户组

[root@localhost ~]# chown works/test/data/     改变属组

[root@centos6 ~]# chown lu /test/data/          改变属主

[root@centos6 ~]# usermod -G works lu          改变用户所在的组

[root@centos6 ~]# su - lu

[lu@centos6 ~]$ groups

lu works

[root@centos6 ~]# ls -ld /test/data/

drwxr-xr-x. 2 lu works 4096 Dec 31 16:54/test/data/

[root@centos6 ~]# chmod g+ws,o+t /test/data

[root@centos6 ~]# ls -ld /test/data/

drwxrwsr-t. 2 lu works 4096 Dec 31 16:54/test/data/

[root@centos6 ~]# su - lu

[lu@centos6 ~]$ cd /test/data/

[lu@centos6 data]$ touch a

[lu@centos6 data]$ rm a

[lu@centos6 data]$ touch a.txt

[lu@centos6 data]$ su -

Password:

[root@centos6 ~]# useradd -G worksmage      新建一个mage用户并且登录,实验一下能不能删除lu用户创建的a.txt文件

[root@centos6 ~]# su - mage

[mage@centos6 ~]$ groups

mage works

[mage@centos6 ~]$ rm /test/data/a.txt

rm: cannot remove `/test/data/a.txt':Operation not permitted   ←mage用户不能删除



你可能感兴趣的:(linux,系统运维)