四.用户和组管理
(一).用户管理:
1.创建用户: useradd
#useradd [选项] 用户名
#useradd ding1
#useradd -u 3000 ding2指定用户的uid为3000
#useradd -g 3000 ding3指定用户的gid为3000
#useradd -c hello ding4指定用户的描述信息为hello
#useradd -d /home/haha ding5指定用户的家目录为/home/haha
#useradd -s /sbin/nologin ding6指定用户的登录shell为nologin
#useradd -M ding7不去创建家目录
#useradd -r ding8创建系统用户
uid的取值范围: 0-65535
rhel6:
0:代表超级用户
1-499:代表了系统用户
500-65535: 代表普通用户
2.删除用户:userdel
#userdel [-r]用户名
-r:删除用户的同时,还会删除家目录
#userdel ding2不删除家目录
#userdel -r ding3删除家目录
3.管理用户:修改用户的基本信息 usermod
#usermod -u 4000 ding1
#usermod -g 3003 ding1
#usermod -c welcome ding1
#usermod -d /home/douniwan ding1
#usermod -s /sbin/nologin ding1
除了命令修改,还可以直接去修改/etc/passwd文件
4.查看用户:
验证用户是否存在:
#id用户名
#id ding1
uid=505(ding1) gid=506(ding1)组=506(ding1) 该用户存在
#id ding2
id: ding2 : no such user用户不存在
5.存放用户基本信息的文件: /etc/passwd
#tail -1 /etc/passwd
ding1:x:505:506::/home/ding1:/bin/bash
该文件用冒号分隔为了7段:
第1段:用户名
第2段:用户的密码,仅仅是用来占位
第3段:用户的uid号
第4段:用户的gid号
第5段:描述信息,用来说明用户的作用,自己任意给定
第6段:用户家目录
第7段:用户登录shell,/bin/bash代表可登录系统,/sbin/nologin不可登录
6.修改用户的密码: passwd
第一种:交互式修改
#passwd修改当前用户的密码
#passwd用户名 修改其它用户的密码
注意: 只有root可以修改其它用户的密码;普通用户只能修改自己的密码
存放密码的位置:/etc/shadow
#tail /etc/shadow
loring:!!:17610:0:99999:7:::
按冒号分隔为了9段:
第1段: 用户名
第2段: 密码位置;!!还没有设定密码
第3段: 修改密码的时间,距离1970年1月1日有多少天;数据元年
第4段:密码的最小使用周期,代表必须用多久后才能再次修改密码,0代表可以随意修改
第5段:密码的最大使用周期,99999代表永不过期
第6段:密码到期前的提醒时间
第7段:密码到期-->失效;宽限时间
第8段:密码失效-->过期;一旦过期就不能使用了
第9段:保留位
#passwd loring修改loring用户的密码
#tail /etc/shadow
loring:$6$1taIIucH$huv1ji9CJExLLT8jLVTG/DL5CeiWrvtBSMUQnQt8KrxtOPtRbMu3IQHhlga64wNWRJ2jHIvvcVFzs0sXPjwZo.:17614:0:99999:7:::
修改密码后,以冒号分隔的第二段,存放了密码:
第二段中,用可以使用$分隔为3列:
第1列:加密的算法,6-->sha算法 1-->MD5算法
第2列: salt,杂质
第3列:加密的密码(只是密码的特征)
注意:密码都是靠单向加密存放,只是保存了密码的特征;只能加密,不能解密
扩展: 单向加密的命令:md5sum
#cp /etc/fstab /tmp/fstab
#md5sum /tmp/fstab
#md5sum /tmp/fstab
#md5sum /tmp/fstab
发现每次加密后的字符串都是一样的;单向加密是定长输出
单向加密,具有雪崩效应,对原内容的细小改变,会导致加密字符的巨大变化
#echo redhat | md5sum给redhat字符串加密
非交互式修改:
#echo密码 | passwd --stdin 用户名
例:
#echo redhat | passwd --stdin loring
修改loring的密码为redhat
7.查看当前登录的用户:
#whoami
8.切换用户: su
非完全切换:
#su loring
$pwd
完全切换: 加-
#su - loring
$pwd会切换到用户的家目录中
注意:非完全切换会保留原用户的一部分环境变量;但是完全切换不会保留环境变量
退出切换:
$exit
9.用户登录:
第一种:物理终端tty就是物理终端
切换物理终端:ctrl+alt+[F1-F7]
F1:图形化终端
剩下的为字符界面
第二种:虚拟终端(图像化中开启的terminal,xshell,secureCRT..)
输入账号和密码,就可以登录
10.查看当前都有哪些用户登录:
#users
loring root root 3个人登录
#who
root tty3 2018-03-24 18:20
loring tty2 2018-03-24 18:19
root pts/0 2018-03-24 16:47 (192.168.0.100)
第1列:用户名
第2列:登录的终端
第3列:登录时间和登录的地址
#w
18:25:30 up 1:48, 6 users, load average: 0.03, 0.01, 0.00
当前时间 登录的时长 用户数量 平均负载:第1分钟 第5分钟 第15分钟
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root tty3 - 18:20 5:09 0.02s 0.02s -bash
loring tty2 - 18:19 6:13 0.02s 0.02s -bash
root pts/0 192.168.0.100 16:47 1:37m 0.06s 0.06s -bash
用户名 终端 登录位置 登录时间 使用多久 占用cpu时间 动作
11.查看当前使用的是哪个终端:
#tty
/dev/pts/2
12.向某个终端,发送消息:
#echo内容 > 终端
例:
#tty
/dev/pts/2
#echo hello loring > /dev/pts/3
将hello loring发送到pts/3上
13.将某个用户,从终端中踢出:
#pkill -kill -t终端
例:
#pkill -kill -t pts/3
注意: 不用加/dev,直接写终端名
(二).组管理:
1.创建:groupadd
#groupadd组名
#groupadd group1
#groupadd -g 10008 group2创建时,指定gid号
2.查看: /etc/group文件存放组的基本信息
#tail /etc/group
验证用户组,是否添加成功
group11:x:10004:
用冒号分隔为了4段:
第1段:组名称
第2段:组密码,只是用来占位
第3段:组的ID号,gid
第4段:组中的成员(注意:该成员,是把该组当作附属组)
3.修改:groupmod
#groupmod -g 11000 group11修改组的gid
#tail /etc/group
4.删除: groupdel
#groupdel group11
5.给用户组修改密码:
#gpasswd用户组名
#gpasswd group1修改group1组的密码
存放组密码的文件:/etc/gshadow
#tail /etc/gshadow
group2:!::
用冒号分隔为4段:
第1段: 组名称
第2段: 组密码,!代表还没有修改密码
第3段: 组的管理员
第4段: 组中成员(附加组的身份)
6.给组添加管理员:
#gpasswd -A用户名 组名
#gpasswd -A loring group1
#cat /etc/gshadow
7.给组添加成员:
#gpasswd -a用户名 组名
#gpasswd -a jerry group1
#cat /etc/gshadow
第二种方式:
添加用户的同时,指定用户的附属组:
#useradd -G组名(gid) 用户名
#useradd -G group1 tom
修改用户的附属组:
#usermod -G组名 用户名
#usermod -G group2 tom
#id tom
注意:如果没加-a的选项,那么原来所有的附属组会被替换掉
给用户增加一个附属组:
#usermod -a -G组名 用户名
#usermod -a -G group1 tom
#id tom