1. 创建组
增加oinstall组,指定组ID。 [root@localhost ~]# groupadd -g 1023 oinstall 增加oper系统组。 [root@localhost ~]# groupadd -r oper
2. 删除组
[root@localhost ~]# groupdel oper
3. 修改组
修改oinstall组的组ID为1024 [root@localhost ~]# groupmod -g 1024 oinstall 修改oracleinstall组的组名为oinstall [root@localhost ~]# groupmod -n oinstall oracleinstall
4. 创建用户
创建oracle用户,用户ID为1010,主组为oinstall,附加组为dba和oper,家目录为/home/oracle,shell为bash。 [root@localhost ~]# useradd -u 1010 -g oinstall -G dba,oper -m /home/oracle -s /usr/bin/bash oracle 增加系统用户,系统用户仅用于启动系统进程,不能登录交互式shell环境,不会为其创建家目录和邮箱。 [root@localhost ~]# useradd -r centos
在不指定这些选项时,useradd会按照默认选项创建用户。
[root@localhost ~]# useradd -D GROUP=100 HOME=/home INACTIVE=-1 EXPIRE= SHELL=/bin/bash SKEL=/etc/skel CREATE_MAIL_SPOOL=yes
这些默认选项实际是记录在/etc/default/useradd文件中,另外/etc/login.defs也会影响useradd、userdel等命令的默认动作。
这些默认选项中需要注意的是SKEL=/etc/skel,这是帮助手册中对它的说明。
骨架目录,包含使用 useradd 创建用户时,要复制到用户主目录中的文件和目录。 这个选项只有在指定 -m (或 --create-home) 选项时才有效。 如果此项没有设置,骨架目录使用 /etc/default/useradd 中的 SKEL 的变量或默认为 /etc/skel。 如果可以,也复制 ACL 和扩展属性。
用户都记录在/etc/passwd当中,以冒号分隔各字段。这里的password只是占位符,并非真正的用户口令。
name:password:UID:GID:GECOS:directory:shell
用户口令信息会加密存放在/etc/shadow当中,而且文件权限是000,但这个对root是无效的,也就是说这个文件只有root能打开。
[root@localhost ~]# ls -l /etc/shadow ---------- 1 root root 1080 Mar 3 20:35 /etc/shadow
口令加密成如下形式,$为分隔符。第1段为加密方式(6),第2段为salt(Ma./WVpA),第3段为加密后的结果。
$6$Ma./WVpA$DQACbc90xxddaTTTjcpMgHPs3b5z5mC2VVpZphO5jspk6ggW4B4nVQRIadrVRg2KoMPPzJ0vBS38qpOvFzY1F0
加密方式对应表
ID | Method --------------------------------------------------------- 1 | MD5 2a | Blowfish (not in mainline glibc; added in some | Linux distributions) 5 | SHA-256 (since glibc 2.7) 6 | SHA-512 (since glibc 2.7)
/etc/shadow文件中有几个字段是对账户或口令的期限设定,具体说明参照man手册。
[root@localhost ~]# man 5 shadow
lastday 为口令最近一次修改时间
mindays 为口令最短使用期限,这段时间内不得修改口令。
maxdays 为口令最长使用期限,到期后用户应该修改口令。
warndays 为警告期,口令马上就要过期,提前一段时间提醒用户修改口令。
inactive 为非活动期,口令到期后仍留有一段时间让用户可以登录,但登录之后只能修改口令,不能做其他任何事情。
过了非活动期用户仍然没有修改口令,用户将被锁定不能再登录。
以上为口令期限,还有一个字段是账户期限,二者是不同的概念。man手册中的解释是这样的。
Note that an account expiration differs from a password expiration. In case of an acount expiration, the user shall not be allowed to login. In case of a password expiration, the user is not allowed to login using her password.
5. 修改账户或口令的期限设定
口令最短使用期限7天,最长使用期限30天,警告期3天,非活动期3天。 [root@localhost ~]# chage -m7 -M30 -W3 -I3 mageedu 修改口令最近一次修改时间为2016-03-06 [root@localhost ~]# chage -d 2016-03-06 mageedu 设置账户过期时间为2016-06-06 [root@localhost ~]# chage -E 2016-06-06 mageedu
6. 删除用户
删除用户,默认不会删除用户的家目录和邮箱。 [root@localhost ~]# userdel mageedu 删除用户,同时删除用户的家目录和邮箱。 [root@localhost ~]# userdel -r mageedu
7. 修改用户
[root@localhost ~]# usermod -u 1020 -g oinstall -G dba,oper -m /home/oracle -s /usr/bin/bash oracle [root@localhost ~]# usermod -l rhel RedHatEnterpriseLinux#改用户名 [root@localhost ~]# usermod -L test#锁定用户账户 [root@localhost ~]# usermod -U test#解锁用户账户
8. 用户密码管理
修改当前用户自己的密码 [root@localhost ~]# passwd 修改其他用户的密码 [root@localhost ~]# passwd mageedu
注意:
只有root用户可以修改其他用户的密码,其他用户只能修改自己的密码。
root修改密码时不需要输入原始密码,其他用户修改密码时需要先输入原始密码验证身份。
root用户可以使用任意字符串作为密码,而其他用户密码必须满足一定的复杂度要求。
锁定用户的密码 [root@localhost ~]# passwd -l mageedu 解锁用户的密码 [root@localhost ~]# passwd -u mageedu 清除用户的密码 [root@localhost ~]# passwd -d mageedu
9. 组管理
给组设定密码 [root@localhost ~]# gpasswd mageedu 删除组密码 [root@localhost ~]# gpasswd -r mageedu 给组增加用户成员 [root@localhost ~]# gpasswd -a twoyang mageedu 从组中删除用户成员 [root@localhost ~]# gpasswd -a twoyang mageedu
10. 查看用户ID信息
[root@localhost ~]# id uid=0(root) gid=0(root) groups=0(root) -u, --user print only the effective user ID -g, --group print only the effective group ID -G, --groups print all group IDs -n, --name print a name instead of a number, for -ugG
11. 切换用户
切换至mageedu用户身份,仍使用root用户的环境变量。 [root@localhost ~]# su mageedu 切换至mageedu用户身份,并加载mageedu用户的环境变量。 [root@localhost ~]# su - mageedu 使用mageedu用户身份执行命令"date +%H:%M:%S",并将结果返回。 [root@localhost ~]# su - mageedu -c "date +%H:%M:%S" 16:21:33
12. 登录一个新组
[root@localhost ~]# id uid=0(root) gid=0(root) groups=0(root) [root@localhost ~]# newgrp mageedu [root@localhost ~]# id uid=0(root) gid=1000(mageedu) groups=0(root),1000(mageedu) 注意:如果登录的新组设置有组密码,就需要验证密码后才能登录。当然对root来说是没有用的。