Linux云自动化运维第四课

一、vim

1.vim光标移动

1)在命令模式下

:数字  ###移动到指定的行

G  ###文件最后一行

gg  ###文件第一行

2)在插入模式下

i  ###光标所在位置插入

I  ###光标所在行行首

a  ###光标所在字符的下一个位置

A  ###光标所在行行尾

o  ###光标所在行下一行

O  ###光标所在行上一行

s  ###删除光标所在字符插入

S  ###删除光标所在行插入

2.vim的退出模式

:q  ###当用vim打开文件但没有对字符作任何操作时可直接退出

:q!  ###当用vim打开文件并对字符作操作,放弃所有操作退出

:wq  ###保存退出

:wq!  ###强行保存退出,对超级用户及文件所有人生效

3.vim手册

vimtutor  ###vim的手册

:q  ###退出vimtutor

二、gedit

ctrl+n  ###在gedit中打开一个新的tab

ctrl+s ###保存文件

ctrl+o ###打开文件

ctrl+x ###剪切字符

ctrl+v ###粘贴字符

ctrl+c ###复制字符

yelp help:gedit  ###gedit的图形手册

三、用户理解

限制,共享

用户就是系统使用者的身份

在系统中用户存储为若干字符串+若干个系统配置文件

用户信息涉及到的系统配置文件:

/etc/passwd ###用户信息

用户:密码:uid:gid:说明:家目录:用户使用的shell

/etc/shadow ###用户认证信息

用户:密码:最后一次密码修改该时间:最短有效期:最长有效期:警告期:非活跃期:帐号到期日

/etc/group ###组信息

组名称:组密码:组id:附加组成员

/etc/gshadow ###组认证信息

/home/username ###用户家目录

/etc/skel/.* ###用户骨架文件

四、用户管理

1.用户建立

useradd 参数 用户名称

-u ###指定用户uid

-g ###指定用户初始组信息,这个组必须已经存在

-G ###指定附加组,这个组必须存在

-c ###用户说明

-d ###用户家目录

-s ###用户所使用的shell,/etc/shells记录了用户能使用shell的名字

eg:[root@foundation42 Desktop]# useradd westos  ###建立新用户,参数皆为默认

[root@foundation42 Desktop]# useradd -u 6666 westos  ###建立新用户,指定用户uid为6666

[root@foundation42 Desktop]# groupadd -g 9999 westo  ###建立组,指定组gid为9999

[root@foundation42 Desktop]# useradd -g 9999 westos  ###建立新用户,指定组gid为9999

[root@foundation42 Desktop]# useradd -G 21 westos  ###建立新用户,指定附加组id为21

[root@foundation42 Desktop]# useradd -c "westos user" westos  ###建立新用户,指定用户说明为westos user

[root@foundation42 Desktop]# useradd -d /home/linux westos  ###建立新用户,指定用户家目录为/home/linux/

[root@foundation42 Desktop]# useradd -s /bin/sh westos  ###建立新用户,指定用户所使用的shell

ps:[root@foundation42 Desktop]# userdel -r westos  ###删除用户westos,新建用户存在时,先删除用户,再新建

2.用户删除

userdel -r 用户名称  ###-r表示删除用户信息及用户的系统配置

eg:[root@foundation42 Desktop]# userdel -r westos  ###删除westos用户信息及其westos的系统配置

3.组的建立

groupadd -g 组名称 ###建立组

groupdel 组名字  ###删除组

ps:做以上实验的监控命令:

[root@foundation42 Desktop]# watch -n 1 'tail -n 3 /etc/passwd /etc/group;echo ====;ls -l /home;echo ===;ls -l /mnt'

eg:[root@foundation42 Desktop]# groupadd linux  ###建立组linux,参数皆为默认

[root@foundation42 Desktop]# groupadd -g 8888 westos  ###建立名称为westos,id为8888的组

[root@foundation42 Desktop]# groupdel westos  ###删除组westos

4.用户id信息查看

id 参数 用户

-u ###用户uid

-g ###用户初始组id

-G ###用户所有所在组id

-n ###显示名称而不是id数字

-a ###显示所有信息

eg:[root@foundation42 Desktop]# id -a westos  ###查看westos的所有信息

[root@foundation42 Desktop]# id -u westos  ###查看westos的用户uid

[root@foundation42 Desktop]# id -g westos  ###查看westos的用户初始组gid

[root@foundation42 Desktop]# id -G westos  ###查看westos所有所在组id

[root@foundation42 Desktop]# id -un westos  ###查看westos的用户名称

[root@foundation42 Desktop]# id -gn westos  ###查看westos的初始组名称

[root@foundation42 Desktop]# id -Gn westos  ###查看westos的所有所在组的名称

5.用户信息更改

usermod 参数 用户

-l ###更改用户名称

-u ###更改uid

-g ###更改gid

-G ###更改附加组

-aG ###添加附加组

-c ###更改说明

-d ###更改家目录指定及家目录名称

-s ###更改shell

-L ###冻结帐号

-U ###解锁

eg:[root@foundation42 Desktop]# usermod -l linux westos  ###将用户名称westos改为linux

[root@foundation42 Desktop]# usermod -u 1111 linux  ###将用户uid改为1111

[root@foundation42 Desktop]# usermod -g 72 linux  ###更改用户组id,组id要已存在的

[root@foundation42 Desktop]# usermod -G wheel linux  ###更改用户的附加组为wheel,wheel要已存在

[root@foundation42 Desktop]# usermod -aG 21 linux  ###在原有附加组的基础上,添加id为21的附加组

[root@foundation42 Desktop]# usermod -c "linux user" linux  ###更改linux用户的说明

[root@foundation42 Desktop]# usermod -d /home/linux linux  ###更改linux用户家目录指定

[root@foundation42 Desktop]# usermod -md /home/linux linux  ###更改linux用户家目录指定及家目录名称

[root@foundation42 Desktop]# usermod -s /bin/shell  ###更改shell

五、用户权力下放

1.在系统中超级用户可以下放普通用户不能执行的操作给普通用户

下放权力配置文件:/etc/sudoers

2.下放权力的方法

*)超级用户执行visudo进入编辑/etc/sudoers模式

*)格式:

获得权限用户 主机名称=(获得到的用户身份) 命令

test desktop0.example.com=(root) /usr/sbin/useradd

test用户能在desktop0.example.com以超级用户身份执行/usr/sbin/useradd

eg:[root@foundation42 Desktop]# visudo-->进入/etc/sudoers编辑模式-->kiosk foundation42.ilt.example.com=(root) /usr/sbin/useradd-->保存退出

3.执行下放权限命令

sudo 命令  ###如果第一次执行sudo需要输入当前用户密码

ps:在/etc/sudoers中如果设置如下:kiosk foundation42.ilt.example.com=(root) NOPASSWD: /usr/sbin/useradd,表示用户调用sudo命令的时候不需要自己密码

eg:[kiosk@foundation42 Desktop]$ sudo /usr/sbin/useradd linux  ###执行下放权限命令

六、用户认证信息的控制

chage 参数 用户

-d      ###用户密码组后一次修改的时间,如果设定成0,用户登陆系统后必须修改自己的密码

-m ###最短有效期

-M ###最长有效期

-W ###警告期

-I ###用户非活跃天数

-E ###帐号到期日格式 -E "YYYY-MM-DD"

eg:[root@foundation42 Desktop]# watch -n 1 tail -n 5 /etc/shadow  ###实时监控密码信息变化

[root@foundation42 Desktop]# chage -d 0 student  ###用户登陆系统后必须修改自己的密码

[root@foundation42 Desktop]# chage -m 1 student  ###最短有效期为1天,至少1天后才能修改密码

[root@foundation42 Desktop]# chage -M 30 student  ###最长有效期为30天,必须在30天内修改密码

[root@foundation42 Desktop]# chage -W 2 student  ###警告期2天,密码到期的前2天,系统发出警告,提醒修改密码

[root@foundation42 Desktop]# chage -I 1 student  ###用户非活跃天数1天,30天之后多给1天,如果还没修改密码,系统直接冻结账户

[root@foundation42 Desktop]# chage -E "2017-04-21" student  ###设定账户到期格式

七、文件属性的查看

ls -l filename

-|rw-r--r--.|1| root| root|   46 |Oct  1 05:03 |filename

— —————————  —  ————  ————    ——  ————————————  ————————

1    2      3    4      5      6      7             8

1."-":文件类型

-  ###普通文件

d  ###目录

c  ###字符设备

s  ###套接字

p  ###管道

b  ###快设备

l  ###连接

eg:[kiosk@foundation42 Desktop]$ ls -l /etc/passwd

-rw-r--r--. 1 root root 2270 Mar 20 00:45 /etc/passwd  ###普通文件

[kiosk@foundation42 Desktop]$ ls -ld /etc/

drwxr-xr-x. 134 root root 8192 Mar 23 09:04 /etc/  ###目录

2."rw-r--r--":文件读写权限

rw-|r--|r--

u   g   o

u:所有人的权限

g:所有组的权限

o:其他人的权限

3."1":

对文件:文件内容被系统记录的次数

对目录:目录中文件属性的字节数

eg:[kiosk@foundation42 Desktop]$ ls -l /etc/passwd

-rw-r--r--. 1 root root 2270 Mar 20 00:45 /etc/passwd  ###文件内容被系统记录1次,1次可删除

[kiosk@foundation42 Desktop]$ ls -ld /etc/

drwxr-xr-x. 134 root root 8192 Mar 23 09:04 /etc/  ###/etc目录中文件属性的字节数

4."root":文件所有人

eg:[kiosk@foundation42 Desktop]$ ls -l file

-rw-rw-r-- 1 kiosk kiosk 0 Mar 23 10:12 file  ###文件所有人是用户kiosk

5."root":文件所有组

eg:[kiosk@foundation42 Desktop]$ ls -l file

-rw-rw-r-- 1 kiosk kiosk 0 Mar 23 10:12 file  ###文件所有组是组kiosk

6."46":文件内容的大小

eg:[kiosk@foundation42 Desktop]$ ls -l file

-rw-rw-r-- 1 kiosk kiosk 0 Mar 23 10:12 file  ###文件是空文件,文件内容大小为0

7."Oct  1 05:03":文件最后一次被修改的时间

eg:[kiosk@foundation42 Desktop]$ ls -l file

-rw-rw-r-- 1 kiosk kiosk 0 Mar 23 10:12 file  ###文件最后一次修改时间是03-23 10:12

8."filename":文件名字

eg:[kiosk@foundation42 Desktop]$ ls -l file

-rw-rw-r-- 1 kiosk kiosk 0 Mar 23 10:12 file  ###文件名称为file

八、文件所有人所有组的管理

chown  username file|dir ###更改文件的所有人

chown  username:groupname file|dir ###更改所有人所有组

chown -R username dir ###更改目录本身及里面所有内容的所有人

chgrp -R groupname dir ###更改目录本身及里面所有内容的所有组

eg:[root@foundation42 Desktop]# watch -n 1 ls -lR /mnt  ###实时监控/mnt中文件和目录的信息变化

[root@foundation42 Desktop]# chown student /mnt/file  ###将file文件的所有人更改为student

[root@foundation42 Desktop]# chown student.wheel /mnt/dir ###将dir目录的所有人更改为student,所有组更改为wheel

[root@foundation42 Desktop]# chown student:wheel /mnt/dir  ###和上条命令效果相同

[root@foundation42 Desktop]# chown -R student /mnt/dir  ###更改dir目录本身及里面所有内容的所有人为student

[root@foundation42 Desktop]# chgrp -R wheel /mnt/dir  ###更改dir目录本身及里面所有内容的所有组为wheel

九、文件普通权限

rw-|r--|r--

u   g   o

u:文件所有人对文件可以读写

g:文件组成员对文件可读

o:其他人对文件可读

u优先匹配,g次优先,o当u,g不匹配时匹配

1.r

对文件:可以查看文件中的字符

对目录:可以查看目录中文件的信息

2.w

对文件:可以更改文件内字符

对目录:可以在目录中添加删除文件

3.x

对文件:可以运行文件内记录的程序动作

对目录:可以进入目录中

4.字符方式修改该文件权限

chmod [-R] <u|g|o><+|-|=><r|w|x> file|dir

chmod u-x file1 ###file1拥有者去掉x权限

chmod g+w file1 ###file1拥有组添加w权限

chmod u-x,g+w file1 ###file1拥有者去掉x权,file1拥有组添加w权限

chmod ugo-r file2 ###file2的用户组其他人去掉r权限

chmod ug+x,o-r file3 ###file3用户和组添加x权限,其他人去掉r权限

eg:[root@foundation42 Desktop]# watch -n 1 ls -lR /mnt  ###实时监控/mnt中文件和目录的信息变化

[root@foundation42 Desktop]# chmod u-x /mnt/dir  ###dir拥有着student去掉x权限,切换到student用户,无法进入目录

[root@foundation42 Desktop]# chmod g+w /mnt/dir  ###dir拥有组wheel添加w权限,wheel组内其他用户拥有在dir目录内添加删除文件的权力

[root@foundation42 Desktop]# chmod u-x,g+w /mnt/dir  ###和上两条命令效果相同

[root@foundation42 Desktop]# chmod ugo-r /mnt/dir  ###给dir目录的拥有者,用户组和其他人都去掉r权限,无法查看目录中文件的信息

[root@foundation42 Desktop]# chmod ug+x,o-r /mnt/dir  ###dir目录的拥有者和用户组添加x权限,拥有者和用户组可进入目录,其他人去掉r权限,无法查看目录中文件的信息

5.数字方式修改该文件权限

在linux中:r=4,w=2,x=1

文件权限数字表示方式

rw-|r--|r--

u   g   o

u=rw-=4+2+0=6

g=r--=4+0+0=4

o=r--=4+0+0=4

所以文件权限表示为644

7=rwx,6=rw-,5=r-x,4=r--,3=-wx,2=-w-,1=--x,0=---

eg:[root@foundation42 Desktop]# chmod 640 /mnt/file  ###file文件的拥有者对其可读可写,所有组对其可读,其他人对其什么也没法干

十、系统默认权限的设定

从系统存在角度来说,开放权力越大,系统存在意义越高

从系统安全角度来说,开放权力越少,系统安全性越高

所以系统设定新建文件或目录会去掉一些权限

设定方式

umask ###查看系统保留权限默认为022

umask 077 ###修改该系统保留权限为077,此设定为临时设定,只当前shell中生效

永久设定方式:

vim /etc/bashrc ###shell,进入编辑

if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then

umask 002 ###普通用户umask

else

umask 077       ###超级用户umask,修改为077

fi

vim /etc/profile ###系统,进入编辑

if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then

umask 002 ###普通用户umask

else

umask 077    ###超级用户umask,修改为077

fi

以上两个文件umask设定值必须保持一致

source /etc/bashrc

source /etc/profile

让设定立即生效

ps:修改umask之前,新建文件默认参数为644,拥有者可读可写,所有组和其他人仅可读。修改参数后,变为600,仅拥有者可读可写,所有组和其他人没有任何权限

十一、特殊权限

1.suid ###冒险位

只针对二进制可执行文件,

文件内记录的程序产生的进程的所有人为文件所有人

和进程发起人身份无关

设定方式:

chmod u+s file

suid=4

chmod 4xxx file

2.sgid ###强制位

对文件:只针对二进制可执行文件,

任何人运行二进制文件

程序时程序产生的进程的所有组都是文件的所有组

和程序发起人组的身份无关

对目录:当目录有sgid权限后,目录中新建的所有文件的所有组

都自动归属到目录的所有组之中,和文件建立者所在的组无关

设定方式:

chmod g+s file|dir

sgid=2

chmod 2xxx file|dir

3.sticky ###粘制位

t权限:

只针对与目录,当一个目录上有t权限,那么目录中的文件只能被所有人删除

设定方式:

chmod o+t direcotry

t=1

chmod 1777 direcotry

unit4-作业

1.新建用户组shengchan,caiwu,jishu

[root@localhost Desktop]# groupadd shengchan

[root@localhost Desktop]# groupadd caiwu

[root@localhost Desktop]# groupadd jishu

2.新建用户要求如下:

*)tom是shengchan组的附加用户

*)harry是caiwu组的附加用户

*)leo是jishu组的附加用户

*)新建admin用户,此用户不属于以上提到的三个部门

[root@localhost Desktop]# useradd -G shengchan tom

[root@localhost Desktop]# useradd -G caiwu harry

[root@localhost Desktop]# useradd -G jishu leo

[root@localhost Desktop]# useradd admin

3.新建目录要求如下:

*)/pub目录为公共存储目录对所有用户可读可写可执行,但用户只能删除属于自己的文件

*)/sc目录为生产部存储目录,只能对生产部门人员可写,并且生产部人员所建立的文件都自动归属到shengchan组中

*)/cw目录为财务部存储目录,只能对财务部人员可写,并且财务部人员所建立的文件都自动归属到caiwu组中

*)admin用户能用touch工具在/sc目录和/cw目录中任意建立文件,但不能删除文件

[root@localhost Desktop]# mkdir /pub

[root@localhost Desktop]# chmod 777 /pub

[root@localhost Desktop]# chmod o+t /pub

ps:上面两条命令可以合为一条[root@localhost Desktop]# chmod 1777 /pub

[root@localhost Desktop]# mkdir /sc

[root@localhost Desktop]# chgrp shengchan /sc

[root@localhost Desktop]# chmod 770 /sc

[root@localhost Desktop]# chmod g+s /sc

ps:上面两条命令可以合为一条[root@localhost Desktop]# chmod 2770 /sc

[root@localhost Desktop]# mkdir /cw

[root@localhost Desktop]# chgrp caiwu /cw

[root@localhost Desktop]# chmod 770 /cw

[root@localhost Desktop]# chmod g+s /cw

ps:上面两条命令可以合为一条[root@localhost Desktop]# chmod 2770 /cw

[root@localhost Desktop]# visudo-->进入编辑状态,添加-->

admin localhost=(root) NOPASSWD: /bin/touch

[root@localhost Desktop]# su - admin

[admin@localhost ~]$ sudo /bin/touch /sc/file

4.设定普通用户新建文件权限为"r--r-----"

[root@localhost Desktop]# vim /etc/profile-->进入编辑状态-->

59 if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then

60     umask 002   ###修改为226

61 else

62     umask 022

63 fi

[root@localhost Desktop]# vim /etc/bashrc-->进入编辑状态-->

70     if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then

71        umask 002  ###修改为226

72     else

73        umask 022

74     fi

[root@localhost Desktop]# source /etc/profile

[root@localhost Desktop]# source /ect/bashrc

5.设定admin用户可以通过sudo自由建立新用户

[root@localhost Desktop]# visudo-->进入编辑状态,添加-->

admin localhost=(root) NOPASSWD: /usr/sbin/useradd

[root@localhost Desktop]# su - admin

[admin@localhost ~]$ sudo /usr/sbin/useradd xyh

Linux云自动化运维第四课的更多相关文章

  1. Linux云自动化运维第三课

    Linux云自动化运维第三课 一.正则表达式 1.匹配符 * ###匹配0到任意字符 ? ###匹配单个字符 [[:alpha:]] ###匹配单个字母 [[:lower:]] ###匹配单个小写字母 ...

  2. Linux云自动化运维第五课

    Linux云自动化运维第五课 一.进程定义 进程就是cpu未完成的工作 二.ps命令 ps a ###关于当前环境的所有进程 x ###与当前环境无关的所有进程 f ###显示进程从属关系 e ### ...

  3. Linux云自动化运维第八课

    第十三单元 软件安装 一.软件名称识别 [abrt-addon-ccpp]-[2.1.11-19].[el7].[x86_64].rpm ###rpm结尾的适用与redhat操作系统 ||       ...

  4. Linux云自动化运维第二课

    一.Linux系统结构 1.Linux是一个倒树结构.Linux中所有的东西都是文件.这些文件都在系统的顶级目录中"/","/"是根目录."/&quo ...

  5. Linux centosVMware 自动化运维认识自动化运维、启动salt相关服务、saltstack配置认证、salt-key命令用法、saltstack远程执行命令、saltstack - grains、saltstack – pillar

    一.认识自动化运维 传统运维效率低,大多工作人为完成 传统运维工作繁琐,容易出错 传统运维每日重复做相同的事情 传统运维没有标准化流程 传统运维的脚本繁多,不能方便管理 自动化运维就是要解决上面所有问 ...

  6. [Linux]Ansible自动化运维① - 入门知识

    目录 一.Ansible 概述 1.1 Ansible 是什么 1.2 Ansible 优势 1.3 Ansible 特性 二.Ansible 入门 2.1 Ansible 架构 2.2 Ansibl ...

  7. Linux轻量级自动化运维工具— Ansible

    Ansible 是什么 ? ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.cfengine.chef.func.fabric)的优点,实现了批量系统配 ...

  8. (转)实验文档5:企业级kubernetes容器云自动化运维平台

    部署对象式存储minio 运维主机HDSS7-200.host.com上: 准备docker镜像 镜像下载地址 复制 12345678910111213141516 [root@hdss7-200 ~ ...

  9. Linux centosVMware 自动化运维Ansible介绍、Ansible安装、远程执行命令、拷贝文件或者目录、远程执行脚本、管理任务计划、安装rpm包/管理服务、 playbook的使用、 playbook中的循环、 playbook中的条件判断、 playbook中的handlers、playbook实战-nginx安装、管理配置文件

    一.Ansible介绍 不需要安装客户端,通过sshd去通信 基于模块工作,模块可以由任何语言开发 不仅支持命令行使用模块,也支持编写yaml格式的playbook,易于编写和阅读 安装十分简单,ce ...

随机推荐

  1. js精要之模块模式

    // 模块模式是一种用于创建拥有私有数据的单件对象的模式,基本做法是使用立调函数(IIFE)来返回一个对象 var yourObjet = (function(){ // 私有数据 return { ...

  2. 自己开发轻量级ORM(三)

    上一篇中简单分享了下ORM的设计思路.现在开始讲如何用代码来实现上篇的设计模型. 我们建2个类库来分别抽象数据库表结构关系映射和SQL增删改查操作. 打开VS2010,新建2个类库.分别起名为Mode ...

  3. PHP面向对象(OOP)----分页类

    > 同验证码类,分页也是在个人博客,论坛等网站中不可缺少的方式,通过分页可以在一个界面展示固定条数的数据,而不至于将所有数据全部罗列到一起,实现分页的原理其实就是对数据库查询输出加了一个limi ...

  4. android jni 总复习(转载)

    本文全文转载自:http://www.cnblogs.com/shuqingstudy/p/4909089.html,非常感谢 package com.test.androidjni; import ...

  5. java 文件操作 读取字节级数据(读取)

    package com.swust; import java.io.*; /* * 功能:按照双精度浮点型.整型.布尔型.字符型.和字符串型的顺序从名为sample.dat文件读取数据 * 分析:用F ...

  6. 从头开始搭建一个Spring boot+RabbitMQ环境

    *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: 0 !important; } /* ...

  7. BZOJ 1019 :[SHOI2008]汉诺塔(递推)

    好吧蒟蒻还是看题解的 其实看到汉诺塔就该想到是递推了 设f[i][j]表示i个在j杆转移到另一个杆的次数 g[i][j]表示i个在j杆转移到那个杆上 可得 f[i][j]=f[i-1][j]+1+f[ ...

  8. 2017-2-23 C#基础 中间变量

    用中间变量做这个题 1."请输入年份:"(1-9999) "请输入月份:"(1-12) "请输入日期:"(要判断大小月,判断闰年) 判断输入 ...

  9. 关于synchronized、wait、notify已经notifyAll的使用

    前言:关于synchronized.wait.notify已经notifyAll大家应该不陌生,现在我大致说一下我的理解. 一:synchronized synchronized中文解释是同步,那么什 ...

  10. TempDB问题定位与解决

    步骤1.TempDB压力诊断 等待类型诊断 TempDB的争用压力在等待篇中已经简单介绍,等待的表现为 pagelatch_类等待,等待的资源是 “2: X :X ” tempDB所在磁盘的响应时间 ...