用户管理

第1章 用户的分类

 

root

皇帝

UID:0

虚拟用户

傀儡

1.每个程序、服务运行的时候都需要一个用户

2.傀儡用户不需要用来登录系统

shell:/sbin/nologin

UID:1-499

普通用户

shell:/bin/bash

UID:500+

第2章 与用户相关的配置文件

/etc/passwd         存放用户的信息

/etc/shadow         存放用户密码的信息

/etc/group           存放用户组的信息

/etc/gshadow        存放用户组密码信息

[root@dzc ~]# head -2 /etc/passwd

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

 

第一列

第二列

第三列

第四列

第五列

第六列

第七列

root:

x:

0:

0:

root:

/root:

/bin/bash

bin:                  

x:  

1:

1:

bin:

/bin:

/sbin/nologin

用户名

密码

存放密码的位置

用户的UID

用户的GID 

用户的说明信息

用户的家目录

用户使用的shell命令解释器

shell 命令解释器运行命令

  /bin/bash             ##用户的默认的命令解释器

  /sbin/nologin        ## 创建一个傀儡用户 虚拟用户

第3章 与用户相关的目录 /etc/skel

3.1 在linux下面添加一个用户

在添加用户的时候 使用的是用户老家的模板 /etc/skel

.bash_logout     #用户登出 退出的时候运行 这个文件里面的内容

.bash_profile     #/etc/profile 环境变量 别名

.bashrc          #存放用户的别名

【企业案例】

登录到某个用户下面 提示 -bash-4.1$

  第一个里程碑 -原因

这个用户里目录里面 与环境变量有关的文件被删除

.bash_profile

.bashrc

  第二个里程碑 -解决从/etc/skel中把丢失的文件 复制回来即可

 #切换到这个用户

-bash-4.1$ whoami

lidao

#重新登录

-bash-4.1$ cp /etc/skel/.bash*  ~

-bash-4.1$ logout

[root@oldboyedu-40 ~]# su - lidao

[lidao@oldboyedu-40 ~]$

环境模拟:

[root@dzc ~]# su - alex

[alex@dzc ~]$ \rm -f .bash*

[alex@dzc ~]$ logout

[root@dzc ~]# su - alex

-bash-4.1$ whoami

alex

-bash-4.1$ pwd

/home/alex

-bash-4.1$ cp /etc/skel/.bash* ~

-bash-4.1$ logout

[root@dzc ~]# su - alex

[alex@dzc ~]$

第4章 与用户有关的命令

4.1 添加用户 useradd

     -u指定新用户的uid

 

-s指定用户的命令解释器(sell)

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

-g 指定用户属于的组(组的名字) 添加用户的时候 默认创建一个与用户名一样的家庭

添加一个用户lidao指定uid为888 禁止用户登录系统 不创建家目录
添加一个虚拟用户/傀儡用户alex888 设置uid为888
[root@oldboyedu-40 ~]# useradd -u 999  -s /sbin/nologin -M  alex999

4.2 删除用户 userdel

  1. 删除用户
  2. 注释这个用户 在/etc/passwd 里面这做个用户前面加上个#

useradd alex888
su - alex888 

换另一个窗口
userdel alex888 
报错 
ps -ef |grep 进程号码  
kill -9 进程号码

    userdel 删除用户的时候不会删除用户的家目录

userdel -r 删除用户及用户的老家 邮件

4.3 修改用户的信息 usermod

修改用户的信息,这个用户已经存在了

-s 修改用户使用的shell

  -g 修改属于的家庭

  -G属于多个家庭

4.4 passwd

--stdin 从管道中获取用户的密码(非交互式设置密码)

记录密码的工具

  1. keepass----------------把密码记录到你的硬盘中
  2. lastpass----------------在线 把你的密码存放到了别人家

指纹加密

[root@dzc data]# echo hello >oldboy.txt

[root@dzc data]# md5sum oldboy.txt

b1946ac92492d2347c6235b4d2611184  oldboy.txt

[root@dzc data]# md5sum oldboy.txt >list.txt

[root@dzc data]# md5sum -c list.txt

oldboy.txt: OK

[root@dzc data]#  >oldboy.txt

 [root@dzc data]# md5sum -c list.txt

oldboy.txt: FAILED

md5sum: WARNING: 1 of 1 computed checksum did NOT match

4.5 【企业面试题】

   批量添加3个用户 stu01,stu02,stu03,并设置密码123456(禁止使用for which等循环)

  第一个里程碑-最后想要的结果 什么样子

useradd stu01;echo 123456 |passwd --stdin stu01

useradd stu02;echo 123456 |passwd --stdin stu02

useradd stu03;echo 123456 |passwd --stdin stu02

  第二个里程碑-生成用户名字

[root@oldboyedu-40 ~]# echo stu{01..3}

stu01 stu02 stu03

[root@oldboyedu-40 ~]# echo stu{01..3}|xargs -n1

stu01

stu02

stu03

#第三个里程碑-拼接出你想要的形式

[root@oldboyedu-40 ~]# echo stu{01..3}|xargs -n1|sed -r 's#(.*)#useradd \1;echo 123456|passwd --stdin \1#g'|bash

Changing password for user stu01.

passwd: all authentication tokens updated successfully.

Changing password for user stu02.

passwd: all authentication tokens updated successfully.

Changing password for user stu03.

passwd: all authentication tokens updated successfully.

第四个里程碑-检查

  tail /etc/passwd

  su - stu1    su - stu2    su - stu3    三个账户之间切换,检测密码是否正确

批量添加10个用户stu01,stu02....stu10,并设置8位随机密码(禁止使用for,while等循环)

4.6 添加一个虚拟用户用户 mysql 指定用户的uid gid都是999

[root@dzc ~]# groupadd -g 999 123

[root@dzc ~]# useradd -g 999 -M -s /sbin/nologin -u 999 mysql

[root@dzc ~]# id mysql

uid=999(mysql) gid=999(123) groups=999(123)

4.7 用户查询命令

4.7.1 w

显示谁远程登录了系统 在干啥

远程登录-以root用户的身份连接到系统

 

 

 

 

4.7.2 last

显示系统用户的登录信息

4.7.3 lastlog

显示linux中所有用户最近一次远程登录的信息

4.8 给开发拥有查看日志的权限

  1. root

su - root 与su root

  1. 修改文件的权限 加上r
  2. suid tail  chomd +s tail

suid 运行命令的时候 相当于是命令的所有者(root)

  1. 尚方宝剑-某一个用户可以临时当皇帝--sudo

给普通用户尚方宝剑 visudo

alex    ALL=(ALL)       /bin/ls, /bin/touch

[alex@dzc ~]$ ls /root

ls: cannot open directory /root: Permission denied

[alex@dzc ~]$ sudo ls /root

anaconda-ks.cfg  install.log

ett.txt           install.log.syslog

##授予某个用户sudo 并且不需要输入密码
#NOPASSWD: 给自己用.
kaifa   ALL=(ALL)       NOPASSWD: ALL

 

 visudo === vi /etc/sudoers

 crontab -e === vi /var/spool/cron/root

第5章 记录用户的操作 行为/日志审计

 

 

posted @ 2017-11-30 17:12  巴黎斜塔  阅读(189)  评论(0编辑  收藏  举报