本章正题:用户管理

1.1 企业面试题

1.1.1  让一个命令或脚本开机自启动有什么方法?

1/etc/rc.local

2chkconfig

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

注:1UID user id = 500-60000 ×××号码

 2GID =groupd id =用户组的id

 

1.2.2 用户相关的配置文件

1. /etc/passwd 用户的信息

注:每一列的含义要知道,/bin/bash = /bin/sh

 cat /etc/shells下有许多shelldashubuntu默认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/profileunset  -fpathmunge  -f后面少了一个空格

  解决方法1. vim /etc/profile 修改最后一行为unset  -f  pathmunge

1.2.6 用户管理的命令

1. 创建用户useradd

参数:-u 指定uid

   -s 指定用户使用的shell

    -M 表示不创建家目录,一般创建虚拟用户使用

    -g  指定用户的属组

    -G 指定用户的附加组,用逗号隔开

    -c 添加用户说明信息

1[root@georgekai ~]# useradd -u 888  -M -s /bin/nologin alex1

 

2. 删除用户

建议使用:在/etc/passwd中用户的那一行前面加上#注释

【删除用户用userdel(默认会删除家目录的文件,不建议使用)】

参数:-r (连窝端)会删除家目录

 

3. 修改用户信息(针对已存在的用户)usermod

    参数: -u 修改uid

    -s 修改用户使用的shell

    -g 修改用户的属组

    -c 修改用户说明信息

    -G  添加用户的附加组,用逗号隔开

1[root@georgekai ~]# usermod -c "hello oldbaby" -s /bin/bash alex

  [root@georgekai ~]# 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.png

    注: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. 查看系统性能命令,系统管理命令,进程管理命令

 

更新比51cto慢一些,不过要方便许多

小伙伴们可以关注我的微信公众号:linux运维菜鸟之旅

qrcode_for_gh_5ecc48d3d14a_258.jpg

关注“中国电信天津网厅”公众号,首次绑定可免费领2G流量,为你的学习提供流量! 

qrcode_for_gh_d20dccd1c74b_258.jpg