1.用户及组的概念
(1)查看当前用户的信息 # id 查看当前用户:whoami
(2)查看运行进程的username : # ps aux
(3)用户组信息存储的文件
1. ls /etc/passwd (7列)
用户名:x:uid:gid:描述:HOME:shell
x-> 密码 shell --->/bin/bash
2. /etc/shadow (8列)
3. /etc/group root:x:0: ---> 组名:密码:组ID:默认用户本身
2.用户/组管理
(1)用户
1.创建用户 useradd user01
2.创建用户(指定选项)
创建用户并指定shell : #useradd user01 -s /sbin/nologin
创建用户并指定该用户的主目录为/home/test: #useradd user01 -d /home/test
创建用户,指定附加组为hr,it,fd : # useradd user07 -G hr,it,fd
3.删除用户
userdel -r user01 --->删除用户user01,同时删除用户家目录和/var/spool/mail
4.用户密码
root修改其他用户密码 #passwd user01
用户自己登陆自己修改密码: $ passwd
5.其它选项管理 更改时用usermod
#usermod -s /sbin/nologin user01 --->修改user01的登录shell
6.查看已经建立的用户
#cat /etc/passwd
(2)组
1.创建组 hr
#groupadd hr 查看 # grep hr /etc/group
2.创建一个组net01 并指定组ID为2000
# groupadd net01 -g 2000
3.删除net01这个组
#groupdel net01
4.修改组的组id
# groupmod -g 1003 net01 修改net01组的组id为1003
5.组的分类
基本组 -g #id + 组名
附加组 -G #cat /etc/group 查看附加组(用户加入的其他的组)
例题
1.#usermod -g CCC user01 把用户user01的基本组改为CCC
2.#usermod -G CCC user01 把用户user01的附加组改为CCC
(-G每次更改用户的附加组会对附加组进行覆盖,更改后用户就不在属于以前的附件组,针对组来说的)
(再用#usermod -G CCC user02 这样会一个附加组有两个用户)
3.增加新的附加组而且不覆盖 #usermod -aG DDD user01-->这样用户user01就拥有CCC和DDD两个附加组
4.# usermod -G AAA,BBB user02 --->一次为user02添加两个附加组(一个用户有两个附加组)
特例
1.使一个用户拥有多个附加组的命令
(1)#usermod -G CCC user01
#usermod -aG DDD user01
(2)# usermod -G AAA,BBB user02
(3)# gpasswd -a user02 AAA ----->把用户user02加入到AAA组中
(注意:gpasswd -a + 用户 + 组名 而 usermod -G + 组名+用户)
2.gpasswd的其他用法(对组中的用户进行添加删除和替换)
(1)替换某个组的所有成员
gpasswd -M +用户 + 组名
(2)删除某个组的某个成员
gpasswd -d +用户 + 组名
3.提权
(1)永久提权 su - root
[alice@tianyun ~]$ useradd u1
-bash: /usr/sbin/useradd: 权限不够
[alice@tianyun ~]$ su - root
password:
[root@tianyun ~]# useradd u1
成功
(2)临时提权sudo
# vim /etc/sudoers
--->编辑 %wheel ALL=(ALL) NOPASSWD:ALL
#usermod -G wheel user01
---> 切换user01
$ sudo useradd user02 ---->user02获得root权限可以新建用户
4.扩展
(1) /etc/default/useradd 是设置添加用户的规则如路径
/etc/login.defs 是设置用户账号密码限制的文件
(2) 创建用户 #useradd user05
免会话配置密码 #echo 123456 | passwd --stdin user05 (把123456设置为user05用户的密码)
强制用户下次登录时修改密码 #chage -d 0 user05