[关闭]
@52fhy 2015-12-02T20:40:22.000000Z 字数 4314 阅读 486

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

Linux


复习:
判断题
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、源码包删除方式是直接删除安装目录


第五讲 用户和用户组管理

一 用户相关文件

用户信息文件: /etc/passwd

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

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

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

二 用户和用户组管理

1 添加用户

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

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

2 设定密码

  1. passwd 用户名
  2. passwd 改变当前用户密码
  3. passwd root 改变root密码

3 删除用户

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

4 添加组

  1. groupadd 组名

5 删除组

  1. groupdel 组名

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

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

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

三 用户相关命令

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

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

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

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

四 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成员这一功能。具体如下:

  1. /www
  2. scroot
  3. 87g-fgroup
  4. o
  5. 770

具体操作过程:

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

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

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

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

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

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

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

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

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

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

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

  1. 2 指的错误信息

掌握

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

第六讲 服务和进程管理

进程管理三个主要任务:
- 判断服务器健康状态
- 查看所有正在运行的进程
- 强制终止进程

一 进程查看

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

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

结果含义:

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

2 pstree 查看进程树

3 top

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

操作命令

  1. M 内存排序
  2. P CPU排序
  3. q 退出

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

4 进程管理

终止进程

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

按进程名杀死:

  1. killall -9 进程名 结束一类进程
  2. pkill -9 进程名

剔除用户:

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

二 linux服务管理

1 分类

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

1.2 源码包安装的服务

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

1 确定服务分类

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

2 独立的服务器管理

1)启动

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

或者:

  1. service 服务名 start|stop|restart|status

2)自启动

  1. chkconfig --level 2345 服务名 on|off

推荐方法:

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

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

(二)源码包安装的服务

1)绝对路径启动

  1. /usr/local/apache2/bin/apachectl start

2)自启动

  1. vi /etc/rc.local

三 计划任务

Crond服务必须运行。

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

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

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

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

注意事项:

四 系统运行级别

1 dmesg 查看系统启动信息

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

2 系统运行级别

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

修改系统默认运行级别

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

(未完待续)

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

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注