• 第四天 用户管理和服务管理


    复习:
    判断题
    1、在vim命令模式中输入:q!是强制不保存退出,只有root可以使用
    2、在vim命令模式中ndd是复制多行
    3、在vim命令模式中:%s/old/new/g会把文件中所有的old替换为new
    4、rpm –ql 包全名 命令是查找包中文件的安装位置
    5、RPM包安装的服务的启动方式是/usr/local/apache2/bin/apachectl start
    6、yum –y install 包全名 命令是yum安装命令
    7、源码包删除方式是直接删除安装目录


    目录:
    
    第六章 用户和用户组管理
    	一 用户相关文件
    	二 用户和用户组管理
    	三 用户相关命令
    	四 ACL权限
    	五 输出重定向和多命令顺序执行
    第七章 服务和进程管理
    	一 进程查看
    	二 linux服务管理
    		(一)系统默认安装的服务
    		(二)源码包安装的服务
    	三 计划任务
    	四 系统运行级别
    

    第六章 用户和用户组管理

    一 用户相关文件

    用户信息文件: /etc/passwd

    aa:x:501:501::/home/aa:/bin/bash
    
    第一列:用户名
    第二列:密码位
    第三列:UID		用户ID			
      0		管理员
      1-499	伪用户(系统用户)
      >500		普通用户
    第四列:GID		初始组ID
    第五列:用户说明
    第六列:家目录
    第七列:用户登录之后的权限
    

    影子文件: /etc/shadow
    组信息文件: /etc/group

    sc:x:500:
    
    组名:组密码位:组ID:组中附加用户
    

    二 用户和用户组管理

    1 添加用户

    useradd  用户名		
    useradd  选项  用户名
    
    选项:
    	-g  组名		指定初始组	不要手工指定	
    	-G  组名		指定附加组,把用户加入组,使用附加组
    	-c  说明	添加说明
    	-d  目录	手工指定家目录,目录不需要事先建立
    	-s  	/bin/bash	手工指定用户登录之后的权限	
    
    useradd  -g  aa  bb		添加bb用户,同时指定初始组为aa
    useradd  -G  user1  aa	添加用户aa,指定附加组为user1
    useradd -c "test user"  -d  /user4  user4	
    

    初始组:每个用户初始组只能有一个,初始组只能有一个,一般都是和用户名相同的组作为初始组
    附加组:每个用户可以属于多个附加组。要把用户加入组,都是加入附加组

    2 设定密码

    passwd 用户名
    passwd 改变当前用户密码
    passwd  root 改变root密码
    

    3 删除用户

    userdel  -r  用户名
    	-r  连带家目录一起删除
    

    4 添加组

    groupadd  组名
    

    5 删除组

    groupdel  组名
    

    注意:组中没有初始用户。

    6 把已经存在的用户加入组

    gpasswd  -a  用户名  组名		用户加入组
    gpasswd  -d  用户名  组名		把用户从组中删除
    

    7、切换组
    Linux newgrp命令用于登入另一个群组。

    newgrp指令类似login指令,当它是以相同的帐号,另一个群组名称,再次登入系统。欲使用newgrp指令切换群组,您必须是该群组的用户,否则将无法登入指定的群组。单一用户要同时隶属多个群组,需利用交替用户的设置。若不指定群组名称,则newgrp指令会登入该用户名称的预设群组。

    newgrp  docker
    

    三 用户相关命令

    1 id 用户名 显示用户的UID,初始组,和附加组

    [root@localhost home]# id sc
    uid=500(sc) gid=500(sc) groups=500(sc),0(root)
    

    2 su - 用户名 切换用户身份

    参数:
    
    -	连带环境变量一起切换
    

    四 ACL权限

    ACL权限用于解决用户身份不足的问题。

    举例:
      问题描述:建立www目录,作为班级作业提交目录,每个人在该目录都有rwx权限,但不能删除其他人资料;现在还需要一用户,比如ymj,专门来查看作业,但没有修改删除(w)权限。请问如何实现?

      问题分析:
      1、首先需要建立www目录,更改权限,1770(rwxrwx----);其中1为特殊权限位,用来解决互相不能删除修改对方文件这一问题;设有组87g,将用户如user1,user2等加入87g组中,该组的成员可以具有该目录rwx权限:chown root:87g /www;
      2、新建ymj用户。此时需要acl权限才能解决最后一个需求:即单独对/www目录添加ymj可以访问但ymj不属于u/g/o成员这一功能。具体如下:

    /www
    scroot
    87g-fgroup
    o
    770		
    

    具体操作过程:

    [root@localhost ~]# mkdir /www
    [root@localhost ~]# chmod 770 /www/
    [root@localhost ~]# groupadd fgroup
    [root@localhost ~]# gpasswd -a sc fgroup
    正在将用户“sc”加入到“fgroup”组中
    [root@localhost ~]# gpasswd -a aa fgroup
    正在将用户“aa”加入到“fgroup”组中
    [root@localhost ~]# chown root:fgroup  /www
    [root@localhost ~]# ll -d  /www/
    drwxrwx--- 2 root fgroup 4096 04-25 14:56 /www/
    

    1 getfacl 文件名 查询文件的acl权限

    2 setfacl 选项 文件名 设定acl权限

    -m			设定权限
    -b			删除权限
    
    setfacl  -m  u:用户名:权限   文件名
    setfacl  -m  g:组名:权限   文件名
    
    setfacl  -m u:aa:rwx  /test		给test目录赋予aa是读写执行的acl权限
    
    setfacl -m u:cc:rx -R soft/		赋予递归acl权限,只能赋予存在的目录
    	-R  递归	
    
    setfacl  -b  /test		删除acl权限
    

    3 setfacl -m d:u:aa:rwx -R /test acl默认权限。
    注意:默认权限只能赋予目录

    注意:如果给目录赋予acl权限,两条命令都要输入

    -m  u:用户名:-R 权限		只对已经存在的文件生效
    -m  d:u:用户名:-R 权限		只对未来要新建的文件生效
    

    五 输出重定向和多命令顺序执行

    1 输出重定向
    把应该输出到屏幕的输出,重定向到文件。

    >	覆盖
    >>	追加
    
    ls  >  aa		#覆盖到aa
    ls  >>  aa		#追加到aa
    
    ls  gdlslga  2>>aa	#错误信息输出到aa
    

    强调:错误输出,不能有空格

    2	指的错误信息
    

    掌握

    ls  >>  aa  2>&1 错误和正确都输入到aa,可以追加
    ls  >>  aa  2>>/tmp/bb 正确信息输入aa,错误信息输入bb
    

    第七章 服务和进程管理

    进程管理三个主要任务:

    • 判断服务器健康状态
    • 查看所有正在运行的进程
    • 强制终止进程

    一 进程查看

    1 ps aux 查看当前系统所有运行的进程

    ps auxw 显示长路径
        -a 	显示前台所有进程
        -u	显示用户名
        -x	显示后台进程
    

    结果含义:

    user 用户名
    pid 进程id。PID 1 init  系统启动的第一个进程
    %CPU cpu占用百分比
    %MEM 内存占用百分比
    VSZ	虚拟内存占用量	 KB
    RSS	固定内存占有量
    tty	登录终端
        tty1-7	本地终端 1-6 字符  7图形(alt+F1-F7切换)	
      pts/0-255
    stat 状态
        S:睡眠
        D:不可唤醒
        R:运行
        T:停止
        Z:僵死
        W:进入内存交换
        X:死掉的进程
        <:高优先级
        N:低优先级
        L:被锁进内存
        s:含子进程	+:位于后台
        l:多线程
    start	进程触发时间
    time		占用cpu时间
    command	进程本身
    

    2 pstree 查看进程树

    3 top

    第一行:系统当前时间 系统持续时间 登录用户 1,5,15分钟之前的平均负载
    第二行:进程总数
    第三行:CPU占用率 %id 空闲百分比
    第四行:内存使用: 总共	 使用 空闲 缓存
    第五航:swap使用
    

    操作命令

    M	内存排序
    P	CPU排序
    q	退出
    

    服务原则
    服务器应该定时重启,高负载服务器最少一周重启一次,低负载服务器最少一月重启一次

    4 进程管理

    终止进程

    kill  信号  PID		结束单个进程
    -9  强制
    

    按进程名杀死:

    killall  -9  进程名	 结束一类进程
    pkill  -9  进程名
    

    剔除用户:

    w 判断登录用户
    pkill  -9  -t  终端号	把某个终端登录的用户踢出
    pkill  -9  -t tty1 	把本地登录终端1登录用户踢出
    

    二 linux服务管理

    1 分类

    1.1 系统默认安装的服务 rpm包

    • 独立的服务
    • 基于xinetd的服务,xinetd是系统超级守护进程

    1.2 源码包安装的服务

    (一)系统默认安装的服务

    1 确定服务分类

    chkconfig  --list		查看rpm包安装服务的自启动状态
    
    运行级别:0-6
    	0	关机
    	1	单用户模式
    	2	不完全多用户,不包含NFS服务
    	3	完全多用户	字符界面
    	4	未分配
    	5	图形界面
    	6	重启
    
    init  0	关机		init 5  startx 	init 3
    init  6	重启
    
    runlevel			查询系统当前运行级别
    
    vi  /etc/inittab
    id:3:initdefault:		定义系统默认运行级别
    

    2 独立的服务器管理

    1)启动

    /etc/rc.d/init.d/服务名   start|stop|restart|status
    /etc/rc.d/init.d/httpd  start
    

    或者:

    service   服务名   start|stop|restart|status
    

    2)自启动

    chkconfig  --level  2345  服务名  on|off
    

    推荐方法:

    vi  /etc/rc.local---->/etc/rc.d/rc.local
    /etc/rc.d/init.d/httpd  start
    

    3 ntsysv
    所有系统默认安装服务都可以使用ntsysv命令进行自启动管理

    (二)源码包安装的服务

    1)绝对路径启动

    /usr/local/apache2/bin/apachectl  start
    

    2)自启动

    vi /etc/rc.local
    

    三 计划任务

    Crond服务必须运行。

    循环定时任务
    crontab -e 编辑定时任务

    * * * * *  命令
    
    第一个*:一小时中第几分钟		0-59
    第二个:一天中第几个小时		0-23
    第三个:一个月中第几天		1-31
    第四个:一年第几个月			1-12
    第五个:一周中星期几			0-6	
    
    10  *  15  *  *  命令	 每月15的每小时的第10分钟执行
    10  *  *  *  *  命令	 每小时的第10分钟执行
    5  4  *  5-10  *  命令	 5-10月的每天4:05分执行
    */10  *  *  *  *  命令    每10分钟执行
    */1  *  *  *  *  命令      每1分钟执行
    5 4  1,15  *  *  命令		
    
    例 */1 * * * * echo $(date +\%F) >> /home/yjc/date.txt
    

    日期和星期不要同时指定,会超出预期:

    5 4 10 * 5 命令
    
    crontab  -l		查看系统定时任务
    crontab  -r  		删除定时任务
    

    注意事项:

    • 选项都不能为空,必须填入,不知道的值使用通配符*表示任何时间
    • 每个时间字段都可以指定多个值,不连续的值用,间隔,连续的值用-间隔
    • 间隔固定时间执行书写为*/n格式
    • 命令应该给出绝对路径
    • 星期几何第几天不能同时出现
    • 最小时间范围是分钟,最大时间范围是月

    四 系统运行级别

    1 dmesg 查看系统启动信息

    cat  /var/log/dmesg		系统启动信息日志
    
    dmesg | grep eth0		查看eth0信息
    dmesg | grep CPU		查看cpu信息
    

    2 系统运行级别

    0	关机
    1	单用户
    2	不完全多用户,不含NFS
    3	完全多用户
    4	保留
    5	图形界面
    6	重启
    
    runlevel  		查询系统运行级别
    
    init  运行级别		改变运行级别,例init 0  init  6
    

    修改系统默认运行级别

    vi  /etc/inittab			init配置文件
    id:3:initdefault:			系统默认运行级别
    

    (未完待续)

    作业:
    笔记整理
    预习:网络配置和文件服务器

  • 相关阅读:
    [leetcode]34.Find First and Last Position of Element in Sorted Array找区间
    [leetcode]278. First Bad Version首个坏版本
    [leetcode]367. Valid Perfect Square验证完全平方数
    [leetcode]45. Jump Game II青蛙跳(跳到终点最小步数)
    [leetcode]55. Jump Game青蛙跳(能否跳到终点)
    [leetcode]26. Remove Duplicates from Sorted Array有序数组去重(单个元素只出现一次)
    [leetcode]27. Remove Element删除元素
    [leetcode]20. Valid Parentheses有效括号序列
    [leetcode]15. 3Sum三数之和
    C#中的局部类型
  • 原文地址:https://www.cnblogs.com/52fhy/p/5014361.html
Copyright © 2020-2023  润新知