zoukankan      html  css  js  c++  java
  • Linux云自动化运维第四课

    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

  • 相关阅读:
    485串口接线
    mvc3 升级mvc5
    VB连接ACCESS数据库,使用 LIKE 通配符问题
    VB6 读写西门子PLC
    可用的 .net core 支持 RSA 私钥加密工具类
    解决 Win7 远程桌面 已停止工作的问题
    解决 WinForm 重写 CreateParams 隐藏窗口以后的显示问题
    解决安装 .net framework 发生 extracting files error 问题
    CentOS7 安装配置笔记
    通过特殊处理 Resize 事件解决 WinForm 加载时闪烁问题的一个方法
  • 原文地址:https://www.cnblogs.com/Virgo-sept/p/6606992.html
Copyright © 2011-2022 走看看