相关文件:
/etc/passwd 用户相关信息
/etc/login.defs 设置用户创建时默认相关信息
/etc/defualt/useradd 用户添加时会创建的相关信息设置
/etc/skel 用户家目录下相关隐藏文件
/etc/group 组相关信息
/etc/gshadow 组密码
/etc/shadow 用户密码
/var/spool/mail 用户邮箱记录
添加用户就是在/etc/passwd、/etc/shadow、/etc/group中添加用户相关信息
默认属性来源:
/etc/default/useradd
/etc/skel
/etc/default/useradd**
用户类别
管理员 0 root
普通用户 1-65535,2^16个
管理用户 1-200 系统中的管理用户
系统用户 201-999,专门用来运行后台进程和服务的用户,不允许登陆系统(服务用户)
普通用户 1000-60000,后面的很少使用
用户组类别
按照用户类别的分法
管理员组 root
普通组
常用分法
(主)基本组,用户的默认组
附加组 额外组,默认组以外的其他组
文件中各个字段的含义
/etc/shadow
redhat:$6$e4FZXLbs$hgRQKtk00memafY5XWbVqGFcvEcgwFmNuKat90h9QmcBTnqeBnQR/Kg10JvmWvRXsfVzAR6HwpZjj1GXBWhYv.:17801:0:99999:7:::
用户名:加密后的密码: 最后一次修改时间:密码最短使用期限:密码最长使用期限:密码过期警告时间:密码过期宽限时限:账号过期精确时间:保留字段
最后一次修改时间:距离1970年1月1日的天数
密码最短使用期限:为0 表示不限制
密码最长使用期限:密码使用多久之后必须更改,99999表示可以不更改
密码过期警告时间:密码过期前多少天进行警告,提醒用户更改密码但不锁定用户
密码过期宽限时限:密码过期后还可以更改密码的时间,若没改则锁定用户
账号过期精确时间:若为99999则永不过期
etc/passwd
redhat:x:1088:1000:redhat:/home/redhat:/bin/bash
#用户名:密码的占位符:UID:GID:描述字段(注释):用户家目录:shell字段设置account 用户名
password 密码,x为密码占位符,目标为/etc/shadow第二个字段
UID 用户ID
GID 基本组ID,额外组信息在/etc/group文件中
CECOS 用户基本信息
HOME DIR 用户家目录,系统用户不允许登陆
shell 用户的默认shell,/etc/shells保存了所有的合法shell
用户管理
useradd
useradd USERNAME/adduser
-l
-u UID 指定UID
-g GID 指定基本组
-G GID1,GID2,... 指定附加组
-c “注释信息” 指定用户注释信息 chfn
-d /path/to/dir 指定某个目录为用户家目录
-s /shell 指定用户使用的shell
usermod 修改用户相关信息,选项同useradd
-u 修改UID
-g 修改基本组,基本组必须事先存在
-G 这个选项会覆盖之前的附加组,和-a选项配合使用
usermod -a -G 追加附加组
-c 修改用户注释信息
-s 修改用户shell
-l 修改登陆名
userdel
userdel USERNAME
-r 删除用户时删除用户家目录和用户的邮箱
id 查看用户的ID信息,选项同useradd
-u 显示UID
-G 显示附加GID
-g 显示GID
passwd 修改用户密码
--stdin
echo "redhat" | passwd --stdin USERNAME
-l 锁定用户账号密码
-u 解锁用户账号
-n 指定密码最短使用期限
-x 指定密码最长使用期限
-w 指定警告时间
-i 指定宽限动时间
-d 删除用户密码,在redhat中,空密码用户禁止登陆
chage change age
-d 指定最后一次修改密码日期
-E 过期日期
-I 宽限时间
-m 最短使用期限
-M 最长使用期限
-w 警告时间
组管理
groupadd 添加一个组
-n
-g GID
-r 添加系统组
groupdel 删除一个组 (不能删除基本组)
groupmod 修改一个组
-g GID
-n GRPNAME 修改组名
gpasswd +用户名设置组密码
-a 添加用户到组
-d 将指定用户移出本组
-M 设置组成员列表
-A 指定管理员(组长)
-r 删除组密码
-R 限制用户登录组,只有组中成员才能加入该组
newgrp 登陆一个新组
使用exit退出新组
一、
创建学习组1,学习组2 ;他们的组gid分别为1111,2222,添加成员并将uid为1088,和uid为1066的成员为两组的组长,其中一组组长有一个‘外号’laoda。
不同学习组进入需要密码才能进入(设置密码);
作为学习组长可以将指定成员拉进本组,和移出本组其他成员没有权利干涉。
(只能一个一个拉和删);即使密码泄露也不希望组之外的成员进入。
创建组1和2,并搞出来两个指定用户
groupadd learn1 -g 1111
groupadd learn2 -g 2222
usermod -u 1088 -a -G 1111 redhat
usermod -u 1066 -a -G 2222 xiaoming
将指定用户设置为组长
gpasswd -A redhat learn1
gpasswd -A xiaoming learn2
给一个组长起外号(改注释)
[root@arya test]# usermod -c "老大" xiaoming
给学习组设置密码
[root@arya test]# gpasswd learn2
Changing the password for group learn2
New Password:
Re-enter new password:
限制用户登录组,只有组中用户可以登录该组(密码泄露其他人也无法登陆)
[root@arya test]# gpasswd -R learn1
[root@arya test]# gpasswd -R learn2
二、
创建用户和用户组
请按照以下要求创建用户、用户组:
1.新建一个名为adminuser的组,组id为40000
[root@arya ~]# groupadd -g 40000 adminuser
2.新建一个名为natasha的用户,并将adminuser作为其附属组
[root@arya ~]# useradd natasha -G adminuser
[root@arya ~]# cat /etc/group | grep 40000
adminuser:x:40000:natasha
[root@arya ~]# cat /etc/passwd | grep natasha
natasha:x:1001:1001::/home/natasha:/bin/bash
[root@arya ~]# cat /etc/shadow | grep natasha
natasha:!!:17802:0:99999:7:::
[root@arya ~]# id natasha
uid=1001(natasha) gid=1001(natasha) groups=1001(natasha),40000(adminuser)
3.新建一个名为harry的用户,并将adminuser作为其基本组
[root@arya ~]# useradd -g adminuser harry
[root@arya ~]# id harry
uid=1003(harry) gid=40000(adminuser) groups=40000(adminuser)
4.新建一个名为sarah的用户,其不属于adminuser组,并将其shell设置为
不可登陆shell
[root@arya ~]# useradd sarah -s /sbin/nologin
[root@arya ~]# id sarah
uid=1002(sarah) gid=1002(sarah) groups=1002(sarah)
5.添加用户maomao,修改它的家目录为/maomao,要求切换maomao时命令提示
显示正常。
[root@arya ~]# useradd maomao -d /maomao
[root@arya ~]# su - maomao
[maomao@arya ~]$ id maomao
uid=1004(maomao) gid=1004(maomao) groups=1004(maomao)
[maomao@arya ~]$ su - root
Password:
Last login: Fri Sep 28 12:20:05 CST 2018 from 192.168.75.1 on pts/1
[root@arya ~]# cat /etc/passwd | grep maomao
maomao:x:1004:1004::/maomao:/bin/bash
6.创建std1 ,std2两个组,要求std1组中有三个用户,{1 2 3}
std2有四个用户。{a b c d}
(此处可以批量创建用户,编写一个shell脚本来实现)
先创建两个组
[root@arya test]# groupadd std1 -g 2000
[root@arya test]# groupadd std2 -g 2002
[root@arya test]# cat /etc/group | grep 2000
std1:x:2000:
[root@arya test]# cat /etc/group | grep 2002
std2:x:2002:
编写脚本:在根下创建的test目录中创建这样几个文件
-rw-r--r--. 1 root root 8 Sep 28 12:58 user1.txt
-rw-r--r--. 1 root root 304 Sep 28 12:58 useradd.sh
-rw-r--r--. 1 root root 7 Sep 28 12:47 user.txt
脚本
[root@arya test]# vim useradd.sh
[root@arya test]# vim useradd.sh
[root@arya test]# cat /etc/passwd
1:x:1005:2000::/home/1:/bin/bash
2:x:1006:2000::/home/2:/bin/bash
3:x:1007:2000::/home/3:/bin/bash
a:x:1008:2002::/home/a:/bin/bash
b:x:1009:2002::/home/b:/bin/bash
c:x:1010:2002::/home/c:/bin/bash
d:x:1011:2002::/home/d:/bin/bash
7.natasha、harry和sarah三个用户的密码均设置为glegunge
改密码的第一种方法:
[root@arya test]# passwd natasha
Changing password for user natasha.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
第二种:
[root@arya test]# echo "glegunge" | passwd --stdin harry
Changing password for user harry.
passwd: all authentication tokens updated successfully.
[root@arya test]# echo "glegunge" | passwd --stdin sarah
Changing password for user sarah.
passwd: all authentication tokens updated successfully.
8.请创建一个名为alex的用户,并满足以下要求:
用户id为3456,描述名为alian密码为glegunge
[root@arya test]# useradd -u 3456 -c "alian" alex
[root@arya test]# echo glegunge | passwd --stdin alex
Changing password for user alex.
passwd: all authentication tokens updated successfully.
[root@arya test]# id alex
uid=3456(alex) gid=3456(alex) groups=3456(alex)
[root@arya test]# cat /etc/shadow | grep alex
alex:$6$6YOVSoLi$sfvEAhkMPrI7Oc4Q/RcKt98gQbjJoxaKBUCcZj6YO8SsEzU3eezMo55gF4/MyRMvXbfyIcq7pD9.GpXUO.ZLz/:17802:0:99999:7:::
9.创建g1组,要求创建一个属于redhat用户g1组的文件redhat.txt
[root@arya test]# groupadd g1
[root@arya test]# id redhat
uid=1000(redhat) gid=1000(redhat) groups=1000(redhat)
创建文件redhat.txt并查看
[root@arya test]# touch redhat.txt
[root@arya test]# ll redhat.txt
-rw-r--r--. 1 root root 0 Sep 28 13:22 redhat.txt
更改文件的所属者和所属组
[root@arya test]# chown redhat redhat.txt
[root@arya test]# chgrp g1 redhat.txt
呜啦!呜啦啦啦啦!!!可以看到所属者变成了redhat所属组变成了g1。
[root@arya test]# ll redhat.txt
-rw-r--r--. 1 redhat g1 0 Sep 28 13:22 redhat.txt
三、
1、创建一个用户xiaoming,其ID号为2002,基本组为one(组ID为3003),附加组为linux。
[root@arya test]# groupadd -g 3003 one
[root@arya test]# groupadd -g 3004 linux
[root@arya test]# useradd -u 2002 -g 3003 -G linux xiaoming
[root@arya test]# id xiaoming
uid=2002(xiaoming) gid=3003(one) groups=3003(one),3004(linux)
2、创建一个用户fedora,其全名为Fedora Community,默认shell为tcsh。
[root@arya test]# useradd -c "Fedora Community" -s /bin/tcsh fedora
[root@arya test]# cat /etc/passwd | grep fedora
fedora:x:3457:3457:Fedora Community:/home/fedora:/bin/tcsh
3、修改xiaoming的ID号为4004,基本组为linux,附加组为one和fedora。
[root@arya test]# usermod -u 4004 -g linux -G one,fedora xiaoming
[root@arya test]# cat /etc/passwd | grep xiaomin
xiaoming:x:4004:3004::/home/xiaoming:/bin/bash
[root@arya test]# id xiaoming
uid=4004(xiaoming) gid=3004(linux) groups=3004(linux),3003(one),3457(fedora)
4、将alex的默认shell改为/bin/bash。
[root@arya test]# usermod -s /bin/bash alex
[root@arya test]# cat /etc/passwd | grep alex
alex:x:3456:3456:alian:/home/alex:/bin/bash
5、添加系统用户hbase,且不允许其登陆系统。
[root@arya test]# useradd -r hbase -s /sbin/nologin