1. 用户的创建、删除以及监控
/etc/passwd
用户信息文件
例如:root : x : 0 : 0 : root : /root : /bin/bash
用户名称(root):密码(x):用户id(0):组id(0):用户说明信息(root):用户家目录(/root):用户默认使用的shell(/bin/bash)
上面的密码(x)只是一个占位符号,密码存在别的地方/etc/group
-用户组信息
如main:x:12:postfix
组名称:组密码:组id:附加组成员
/etc/skel
-用户的骨信息(用户环境配置模板,在用户建立时会自动被复制到家目录)
1)创建用户
/etc/login.defs
此文件中包含创建用户时的默认信息
指令 | 作用 |
---|---|
useradd username | 用默认配置创建用户 |
useradd -u UID username | 指定uid创建用户 |
useradd -g UID username | 指定初始组id创建用户,这个初始组必须是存在的 |
useradd -G Gid username | 指定附加组id创建用户,这个附加组必须存在 |
useradd -c “Stirng” username | 指定说明文字创建用户 |
useradd -d /mnt/username username | 指定家目录创建用户 |
useradd -s /bin/tcsh username | 指定shell创建用户 |
在创建用户的时候可以根据以上列表中的指令去制定用户的信息
2)用户查看
指令 | 参数 | 使用对象 | 作用 |
---|---|---|---|
whoaml | 查看当前的名称 | ||
id | username | 查看用户的id信息 | |
id | -u | username | 查看用户的uid |
id | -g | username | 查看用户的gid |
id | -G | username | 查看用户所在的所有组的id |
id | -n | username | 以名称显示信息 |
因为以上创建用户时未自定义用户的信息,所以用户数据按照系统默认来处理
3)监控命令
watch -n 1 'tail -n 3 /etc/passwd /etc/group;echo ====;ls -l /home/'
该指令是进入监控用户画面,其中的watch指令是:每隔2秒执行引号内的指令;”-n 1”:是指每隔1秒执行引号内的指令;”echo ====”:是指用====将用户信息分割开
ls -l /home/:这里是将系统中的用户数据以长列表的形式展现出来
4)删除用户
userdel username:删除了用户身份
当你以上述方法删除用户的时候,系统不会报错,但是你只是删除了用户的身份,并没有删除该用户其中的配置文件,相当于没有删除干净
在监控的时候,依旧还有已经删除掉的linux用户的相关文件,所以我们还需要删除它的那些相关配置
这样就可以彻底删除linux用户以及它的相关文件
提示:
当你删除用户的残留文件的时候,rm -fr /home/linux这里的/home/linux是指你的用户所在的目录路径,这里不能写错,不然又可能会删错其他文件
userdel -r username:删除用户身份及用户涉及的配置文件
当你用这个方法时就可以直接彻底的删除用户了,所以我们在删除用户的时候,记得不要忘记中间的 “-r”
5) 系统中的shell
查看系统中安装的shell,指定shell创建用户只能从系统中已有的shell选择
cat /etc/shells
/sbin/nologin
/usr/sbin/nologin
这两个shell没有交互界面,用这两个shell创建的用户不能操作系统
6)创建组
指令 | 用户 | 作用 |
---|---|---|
groupadd | groupname | 建立组 |
groupadd | -g GID groupname | 建立组指定id |
groupdel | groupname | 删除组 |
这里的创建组只是在 用户组/etc/group该目录下多创建了一个组,当我们vim 进入该目录时就会看见你新创建的组
2.用户的修改
指令 | 作用 |
---|---|
userdom -l newusername username | 修改用户的名字 |
usermod -u UID username | 修改uid |
usermod -g GID username | 修改用户的初始组id,初始组必须时已存在 |
usermod -G Gid username | 修改附加组,但是会清空原来的附加组 |
usermod -aG Gid username | 追加附加组,并会保留之前的附加组 |
usermod -G “” username | 清空附加组 |
usermod -c “String” username | 修改说明文字,为空代表清楚说明文字 |
usermod -d /home/lee username | 修改家目录指向,这个只是修改只是修改了配置文件的目录地址,但是并没有修改目录本身 |
usermod -md /home/lee username | 修改家目录并修改目录本身的名字 |
usermod -s /bin/tcsh username | 修改shell |
- 修改用户的名字:
可以从下图看出我们的用户姓名从linux改为hello
我把上面的修改过的用户姓名又修改过来成linux,当我们修改用户的初始组以及附加组
由下图可以看出我们将初始组已经修改成72,附加组修改成21,但是无论是初始组还是附加组都必须在已存在的用户组中挑选一个id去执行
usermod -aG 1001 linux
由上图可以看出linux用户在id为21和1001的用户组中,但是当我们用-G去添加的时候就会把附加组改为1001,之前的id为21的附加组就会被替换,而-aG就是可以使一个用户同时在多个用户组中,这就是二者的区别
- 修改文字说明:
usermod -c "hello" westos
只需要我们在引号中写入说明文字就可以了
- 修改家目录
usermod -d /home/amazing linux
usermod -md /home/amazing linux
接下来让我们看看二者的区别:
由上图可以看出家目录已经被修改成amazing,但是当我们去查询这个目录的时候却被告知该目录不存在:
这个就是只是更改了用户所在的家目录地址,但是并没有修改目录本身
举个例子:当一个学生使用-d与厨师互换了身份,这个学生只是变成了厨师的样子,但是他却不会做饭只是改变了样子而已,但是使用-md互换后,这个学生不但变成了厨师的样子,而且还会做饭,这就是二者的区别
3.用户的切换
前面我们学习了创建用户,修改用户,接下来我们看看用户的切换,当我们进入linux系统,打开shell既可以操作切换用户了
su - username
提示:
- 但我们从高级用户切换到低级用户时不需要密码
- 但是从低级用户切换到高级用户时或者切换到平级用户,就需要密码了
- 再进行用户的切换时,切换完后需要退出(exit)然后再去切换下一个用户,否则一直重复切换会出现错误
- 当我们进行用户切换的时候,会发现su - username和su username都可以进行切换,但是二者的且别与上面的学生厨师互换有点相似,su username只是切换了用户的姓名但是该有的权限却没有切换过来,而su - username就代表互换了用户身份跟用户权限,所以我们在进行用户的切换时一定要注意。
4.用户的认证信息
tail -n 1 /etc/shadow
这条指令是查看用户的认证信息
由上图的用户认证信息由8个”:”可以分为9部分:
指令 | 含义 |
---|---|
linux | 代表的是用户 |
!! | 这里是你的密码,因为我没有设置密码所以会出现!! |
17753 | 这里代表的是密码最后被修改的时间 |
0 | 密码的最短有效期 |
99999 | 密码的最长有效期 |
7 | 密码的过期警告 |
倒数第三个空白 | 密码非活跃期(就是当你的密码到期后但还没有修改会再给你几天时间等你去修改,这几天就是非活跃期) |
倒数第二个空白 | 帐号到期时间(到达该时间就会冻结帐号无法使用) |
最后一个空白 | 这里没有设定,用户可以自定义填写 |
1)密码的修改
指令 | 含义 |
---|---|
passwd username | 设置密码(只有是超级用户才可以随意修改密码) |
passwd | 普通用户修改密码,修改时会要求密码有一定的强度 |
passwd -d username | 清空密码 |
passwd -l username | 高强度冻结密码 |
passwd -U username | 解锁密码 |
usermod -L username | 冻结密码 |
- 设置密码:
当你创建一个用户时需要设置密码:
- 冻结密码的两种方式区别:
由上图可以看出passwd方法冻结密码在密码部分前面有俩个!,而usermod方法只有一个!,代表的冻结强度不同(usermod方法中间的字母是大写字母)
2)修改密码最后被修改的时间
chage -d 4 username
这里可以修改为其他数字
passwd -e username
这里不能添加数字,上述指令是指定修改时间为0
提示:
当我们将密码的最后修改时间修改为0的时候,就会在用户登陆时会被强制修改密码
3)修改最短有效期
chage -m 3 username
passwd -n 4 username
watch tail -n 1 /etc/shadow
输入以上指令就可以在有效期部分看见修改后的数字了
4)修改最长有效期
chage -M 30 username
passwd -x 40 username
5)修改非活跃天数
chage -I 2 username
passwd -i 3 username
6)修改过期集警告:
chage -W 2 username
passwd -w 3 username
7)修改帐号到期时间
chage -E 2018-11-11 username
提示:
这里的日期要以data形式去写,系统会自动换算成天数去增加
5.用户权力的下放
前面我们了解如何进行用户切换,我们知道超级用户可以创建新的用户,可以作好多普通用户做不了的事情,那么当我们切换到普通用户的时候怎么才能创建用户和做一些超级用户可以去完成的事情呢?
这就要需要我们去更改用户的权力了
1)首先我们先查看当前的主机名
2)然后进行配置命令
visodu进入代码页面
上面界面中##代表的是注释,然后我们选择在100行左右添加我们需要让执行的权力
3)执行的命令:用户名称 主机名=(执行程序的身份)命令
- 给普通用户添加创建新用户的方法:
linux localhost=(root) /usr/sbin/useradd
上述方法完成后创建新用户时是需要进行密码登陆的
4)用户名称 主机名称=(执行者身份) NOPASSWD:命令1, 命令2
- 给普通用户执行创建和删除新用户,并不用密码登陆
linux localhost=(root) NOPASSWD:/usr/sbin/useradd, /usr/sbin/userdel
像上图一样输入黑条代码完成指令
5)切换普通用户
- 在切换成功后记住得在普通用户前面添加sudo才可以创建新用户,当我们不写sudo去执行命令时就会出现以下情况:
提示:
以上操作我们只是添加了普通用户添加新用户和删除用户的指令,如果想让我们的普通用户做更多的事情,就需要去步骤2中去添加更多的指令