Linux操作系统,针对用户和组的常见操作,主要包括查询、创建、修改、删除。
一、查询类,即查看用户和用户组信息
专用命令getent查看用户数据库信息,显示原始数据
#查看普通用户tom的用户信息
[root@oracle etc]# getent passwd tom
tom:x:503:504::/home/tom:/bin/bash
#查看普通用户tom的密码信息
[root@oracle home]# getent shadow tom
tom:$6$I0KgJmC6$.Kj18DCqqBKBvDrufTUHJLR6HQw3dhjRTN.o2oSFM0r2qqVb3vVb7HxMeURnacEpR7IcoNIsnHRsI/Q7eSifv/:18379:3:42:14:7:19117:
第1列tom 表示当前用户名
第2列
$6*****Sifv/ 代表用户tom的密码加密后的字符串($6即代表使用加密算法)
第3列上次修改密码的天数(从1970年1月1日开始计算,到修改密码时的天数)
第4列minimum password age,在定义的天数密码不允许更改。'0’表示随时可更改。
第5列maximum password age, 在定义的天数后密码提醒用户需要更改。
第6列password warning period:密码过期前几天提醒用户更新密码。
第7列password inactivity period:实际上密码寿终后还可以继续使用,这里定义一个延长天数,超过后账户才真正被禁用。
第8列account expiration date:账户过期时间 (从1970年1月1日开始计算)
#查看tom组的成员信息
[root@oracle etc]# getent group tom
tom:x:504:
#查看tom组的密码信息
[root@oracle etc]# getent gshadow tom
tom:!::
#id 命令查看用户和组信息*
[root@oracle etc]# id tom
uid=503(tom) gid=504(tom) groups=504(tom)
#group 命令查看用户属于哪些组
[root@oracle etc]# groups tom
tom : tom
当然通过文件查看命令,也可直接读取/etc/passwd和/etc/shadow等文件
二、创建 - 即创建用户和用户组
-
useradd命令
-d, --home-dir HOME_DIR 指定用户家目录信息
-g, --gid GROUP 指定用户GID信息(所属主要组)
-G, --groups GROUPS 指定用户附加组信息(组必须实现存在)
-s, --shell SHELL 指定用户默认的shell程序类型
-u, --uid UID 指定用户UID信息 -
groupadd命令
在执行useradd命令时会根据系统配置文件默认给该新用户创建一个和用户名相同的组,并作为该用户的主要组;如果要创建新的组,可以通过groupadd命令实现
三、修改用户信息、修改组信息
- 修改用户信息 usermod,通过选项可以修改用户的描述信息、家目录、账号有效期、主组、附加组、锁定用户、shell类型、UUID等
- 修改用户登录shell类型 chsh ,
- 修改用户描述信息chfn
- 修改用户的密码信息 passwd 或 chage
[root@oracle skel]# chage mageia
Changing the aging information for mageia
Enter the new value, or press ENTER for the default
Minimum Password Age [0]: 3
Maximum Password Age [99999]: 42
Last Password Change (YYYY-MM-DD) [2020-05-04]:
Password Expiration Warning [7]: 14
Password Inactive [7]: 7
Account Expiration Date (YYYY-MM-DD) [-1]: 2021-05-04
[root@oracle skel]# getent shadow mageia
mageia:$6$Rq5OLL6k$fhb8OwkM.YmX9DDRuXknvPr9fGN6Ul./fgp3KUx.Jhr6XaULlo.W8P84YzX0YXxKJuwaJSr5sgTTN9lnCLAna.:18386:3:42:14:7:18751:
- groupmod 修改组信息
- groupmems 指定组的成员
- gpasswd 修改组密码
四、删除用户和用户组
- userdel 删除用户
-r, --remove 连同用户的家目录和mail目录一起删除 - groupdel 删除组
实验:
- 创建组distro GID 2019
[root@oracle skel]# groupadd -g 2019 distro
[root@oracle skel]# getent group distro
distro:x:2019:
- 创建用户mandriva, ID 1005; 基本组distro
[root@oracle skel]# useradd -u 1005 -g distro mandriva
[root@oracle skel]# id mandriva
uid=1005(mandriva) gid=2019(distro) groups=2019(distro)
- 创建用户mageia ID 1100 家目录/home/linux
[root@oracle skel]# useradd -u 1100 -d /home/linux mageia
[root@oracle skel]# getent passwd mageia
mageia:x:1100:1100::/home/linux:/bin/bash
- 给用户mageia添加密码,密码mageedu 设置用户密码 7天后过期
[root@oracle skel]# chage mageia
Changing the aging information for mageia
Enter the new value, or press ENTER for the default
Minimum Password Age [0]:
Maximum Password Age [99999]:
Last Password Change (YYYY-MM-DD) [2020-05-04]:
Password Expiration Warning [7]:
Password Inactive [-1]: 7
Account Expiration Date (YYYY-MM-DD) [-1]:
[root@oracle skel]# getent passwd mageia
mageia:x:1100:1100::/home/linux:/bin/bash
[root@oracle skel]# getent shadow mageia
mageia:$6$Rq5OLL6k$fhb8OwkM.YmX9DDRuXknvPr9fGN6Ul./fgp3KUx.Jhr6XaULlo.W8P84YzX0YXxKJuwaJSr5sgTTN9lnCLAna.:18386:0:99999:7:7::
- 删除mandriva 保留家目录
[root@oracle skel]# getent passwd mandriva
mandriva:x:1005:2019::/home/mandriva:/bin/bash
[root@oracle home]# userdel mandriva
[root@oracle home]# ll
drwxr-xr-x 5 root root 4096 Apr 25 12:32 john
drwx------ 4 mageia mageia 4096 May 4 12:19 linux
drwx------ 4 1005 distro 4096 May 4 12:19 mandriva
- 创建用户slackware ID 2002 基本组distro 附加组peguin
[root@oracle home]# useradd -u 2002 -g distro -G peguin slackware
[root@oracle home]# id slackware
uid=2002(slackware) gid=2019(distro) groups=2019(distro),2020(peguin)
- 创建slackware的默认Shell 为 /bin/tcsh
[root@oracle home]# usermod -s /bin/tcsh slackware
[root@oracle home]# getent passwd slackware
slackware:x:2002:2019::/home/slackware:/bin/tcsh
- 为用户slackware 新增附加组 admins
[root@oracle home]# groupadd admins
[root@oracle home]# groupmems -a slackware -g admins
[root@oracle home]# id slackware
uid=2002(slackware) gid=2019(distro) groups=2019(distro),2020(peguin),2021(admins)