时间:2023-06-02 16:16:41 来源: 人气:
当用户登陆Linux系统时,Linux将做如下检查:, 1)在/etc/passwd文件里匹配输入的用户名,获取该用户名的UID和GID(其中GID和/etc/group关联)、Home目录和Shell设置, 2)在/etc/shadow里核对该用户的密码, /etc/passwd文件结构, 这个文件的每一行代表一个账号,如下所示:oracle:x:501:501::/home/oracle:/bin/bash, 1. 用户名 2. 密码:早期的密码放在该字段,但如今的密码已单独放在/etc/shadow里,所以该字段已经没有意义,用x占位 3. UID: 0:root 1~499:系统账号,如bin,daemon,adm,nobody等 >=500:普通用户账号 4. GID:与/etc/group关联 5. 用户信息说明:一般没什么用,为空 6. 主文件夹 7. 默认shell, /etc/shadow文件结构, oracle:$6$AsOW5s9y$1JhRl0RYwGN48TVNMqF6sFrTKbo9.tvdHUR.xeFHzoFIqtzWnTrBE7oa99qlXOIRidfQyNPcGyS9eX2Ajy.Od0:16024:0:99999:7:::, 1. 用户名 2. 加密过的密码 3. 最近更改密码的日期:改日期是一个整数,表示从1970年1月1日开始累加的天数。 4. 密码不可被更改的天数(与第3个字段相比):0表示密码随时可被修改。 5. 密码需要更改的天数(与第3个字段相比):表示用户必须在这个天数内更改密码,否则将不可用,99999(273年)表示无需更改 6. 密码需要更改期限前的警告天数(与第5个字段相比) 7. 密码过期后的账号宽限天数(与第5个字段相比) 8. 账号失效日期 9. 保留字段, /etc/group文件结构, oinstall:x:501:, dba:x:503:oracle, 1. 用户组名, 2. 用户组密码:已移至/etc/gshadow, 3. GID, 4. 属于该用户组的账号, 上面的例子中,oracle同时属于oinstall和dba两个组,但为什么oinstall的第4列为空呢?这是因为它是初始用户组(即oracle登陆后的用户组),而dba不是。, 下面我们再看看什么是有效用户组,虽然某个用户可以属于多个用户组,但同一时刻,只能有一个有效用户组(默认情况下为初始用户组),我们可以通过groups命令查看:, [oracle@lx16 ~]$ groups, oinstall dba如上所示,排在第一位的就是有效用户组,如果你想改变当前的有效用户组,可以通过newgrp命令:, [oracle@lx16 ~]$ newgrp dba, [oracle@lx16 ~]$ groups, dba oinstall, 账号管理, useradd, useradd用于新建用户,它的默认值可以通过如下命令获得:, # useradd -D, GROUP=100, HOME=/home, INACTIVE=-1, EXPIRE=, SHELL=/bin/bash, SKEL=/etc/skel, CREATE_MAIL_SPOOL=yes也就是说,当你使用useradd username命令添加用户时,将采用以上的默认值。下面看几个例子:, useradd zhuxj --创建一个默认的用户, useradd -u 700 -g users zhuxj --指定uid为700,用户组为users, useradd -r zhuxj --创建一个系统用户, passwd, 在用useradd创建了账户之后,默认情况下,该账户是被锁住的,需要通过passwd命令为该用户设置密码。, passwd zhuxj --修改zhuxj的密码, passwd --修改自己的密码, usermod, 和useradd很像,用于修改用户, userdel, 删除用户,其用法如下:, userdel [-r] username, -r:连同home目录一起删除,