作者:George
归档:学习笔记
2018/1/5
本章正题:用户管理
1.1 企业面试题
1.1.1 让一个命令或脚本开机自启动有什么方法?
1)/etc/rc.local
2)chkconfig
1.1.2 一个脚本或命令通过chkconfig开启自启动
1. 把这个脚本放在/etc/init.d下面
vim /etc/init.d/kai
echo "georgekai"
2. 脚本要有执行权限
chmod +x /etc/init.d/kai
查看:ll /etc/init.d/kai
3. 让chkconfig进行管理
chkconfig --add kai
注:会提示 service kai does not support chkconfig (kai脚本不支持)
解决方法:1. 模仿其他命令脚本,需要加入“# chkconfig: 2345 99 99” ,注意#号后面有空格
2. 第一个99表示开机的顺序,最后一个99表示关机的顺序
4. 自己写的脚本都是99也没什么问题,系统都不一样
小结:
1. 必须放在/etc/init.d下面,赋予它执行权限
2. 开头要有chkconfig要求格式:# chkconfig: 2345 99 99
3. 添加到chkconfig管理
1.2 用户管理
1.2.1 用户分类
1. root UID :0
2. 虚拟用户 UID :1-499 1) shell是/sbin/nologin
2)不能登录系统
3. 普通用户 UID :500-65535
注:1)UID user id = 500-60000 ×××号码
2)GID =groupd id =用户组的id
1.2.2 用户相关的配置文件
1. /etc/passwd 用户的信息
注:每一列的含义要知道,/bin/bash = /bin/sh
cat /etc/shells下有许多shell,dash是ubuntu默认shell
2. /etc/shadow 用户密码信息
3. /etc/group 用户组信息
4. /etc/gshadow 用户组密码信息
实例1-1 root用户密码忘记如何解决?
1. 单用户模式
2. 救援模式
1.2.3 查看用户属于哪个用户组
id george
1.2.4 查看用户组中有哪些用户
cat /etc/group
1.2.5 与用户相关的目录/etc/skel
1. /etc/skel作用:新用户家目录的模板(相当于cp /etc/skel /home/oldboy)
1)~/.base_logout :用户退出系统的时候会运行这个文件中的内容
2)~/.base_profile :作用和/etc/profile一样
3)~/.base_baserc :作用和/etc/basere一样
2. 常见故障一::-bse-4.1$ -bse-4.2$
原因:这个用户家目录下面与环境变量有关的文件没了
解决方法:1. 切换到故障用户
2. cp /etc/skel/.bash* /home/geogred/
注:别用.* 复制,因为包含.. ,表示上级目录
常见故障二:-bash: /etc/profile: Permission denied
原因:/etc/目录的权限不是755,导致权限不足
解决方法:chmod 755 /etc/
常见故障三:-bash: unset: -p: invalid option
unset: usage: unset [-f] [-v] [name ...]
原因:/etc/profile中 unset -fpathmunge -f后面少了一个空格
解决方法:1. vim /etc/profile 修改最后一行为unset -f pathmunge
1.2.6 用户管理的命令
1. 创建用户useradd
参数:-u 指定uid
-s 指定用户使用的shell
-M 表示不创建家目录,一般创建虚拟用户使用
-g 指定用户的属组
-G 指定用户的附加组,用逗号隔开
-c 添加用户说明信息
例1:[[email protected] ~]# useradd -u 888 -M -s /bin/nologin alex1
2. 删除用户
建议使用:在/etc/passwd中用户的那一行前面加上#注释
【删除用户用userdel(默认会删除家目录的文件,不建议使用)】
参数:-r (连窝端)会删除家目录
3. 修改用户信息(针对已存在的用户)usermod
参数: -u 修改uid
-s 修改用户使用的shell
-g 修改用户的属组
-c 修改用户说明信息
-G 添加用户的附加组,用逗号隔开
例1:[[email protected] ~]# usermod -c "hello oldbaby" -s /bin/bash alex
[[email protected] ~]# tail -1 /etc/passwd
alex:x:888:999:hello oldbaby:/home/alex:/bin/bash
4. 管理密码passwd
1)非交互式设置密码(不需要一问一答)
echo '123456'|passwd --stdin george
注:history -c 清楚命令历史记录
2)交互式
passwd george
3)密码保险柜:
keepass(本地保险柜) lastpass(在线保险柜)
4) 如何让系统更安全
1.最小化安装系统
2.禁止root登录,修改ssh端口号
3.文件系统权限 +i +a
4.给重要文件或命令做一个指纹md5sum(指定随着文件内容改变)
1)创建指纹
touch oldboy.txt
md5sum oldboy.txt (会自动生成一个密文密码)
2)记录指纹
md5sum oldboy.txt > police.log
echo oldboy >> oldboy.txt
md5sum oldboy.txt
3)根据指纹库 对比
md5sum --c police.log
提示:oldbot.txt FAILED 说明指纹变化了,(显示OK)说明没变
注:指纹是用来验证数据是否发生变化了,不会影响访问文件
4)定时任务+md5sum定时检查
1.2.7 组用户相关命令
1)创建用户组groupadd
参数:-g 指定gid号
2)删除用户组groupdel
1.2.8 用户查询命令
1. id 查看用户是否存在
如:id georgekai
2. w 查看当前登录的用户
注:1.FROM 表示从哪登录的
2.FROM 中 “-” 表示在机房服务器中直接登录的
3. 查看系统负载的命令
w uptime top
4. top 查看动态进程 (相当于uptime / ps aux /w /free )
P : 按照CPU使用率排序
M :按照内存使用率排序
K : 杀死进程,指定PID号
5. ps 查看静态
-ef 显示所有正在运行的进程
aux 显示进程详细信息
6. sort 自动排序
ps aux | sort -rhk4
注:-r 倒叙
-n 把内容当做数字进行排序
-k4 表示第4列
-h 以人类可形式排序(带单位,按单位大小显示)
7. last 显示用户最近登录的情况
8. lastlog 显示系统中每个用户最近一次的远程登录情况
注:只有远程登录的用户才会查看到,切换过去的不算
总结:
1. 面试题-让一个脚本开机自动的方法 etc/rc.local chkconfig
2. 如何让一个脚本被chkconfig管理
3. 与用户有关的文件和目录
4. 案例提示:-bash-4.1$ 原因和解决过程
5. 一堆命令:用户,磁盘
6. 添加虚拟用户
7. 查看系统性能命令,系统管理命令,进程管理命令
原文地址:http://blog.51cto.com/13055758/2057899