四、账号管理
1.新增用户useradd:
语法:useradd [-u UID] [-g 初始用户组] [-G 次要用户组] [-mM][-c 用户说明] [-d 用户主文件夹(绝对路径)] [-s shell] 用户账号
参数:
[-u]:后面接UID,是一组数字,直接指定一个待定的UID给这个账号
[-g]:后面接用户初始用户组名initialgroup
[-G]:后面接次要组名,即此账号还可以加入的组名
[-m]:强制!要创建用户主文件夹(普通账号默认)
[-M]:强制!不要创建用户主文件夹(系统账号默认)
[-c]:
[-d]:指定某个目录为用户的主文件夹,而不使用默认值,必需使用绝对路径
[-r]:创建一个系统账号,这个账号的UID会有限制(参考/etc/login.defs)
[-s]:后面接shell,若没有指定刚默认是/bin/bash
[-e]:后面接一个日期,设置此账号的失效日,格式为“YYYY-MM-DD”此项会写入shadow的第八个字段
[-f]:后面接shadow的第七个字段,指定密码是否会失效,0为立刻失效,-1为永远不失效
[-D]:查看useradd命令的默认值
查看useradd命令的默认值:
[root@hs-uf21 etc]# useradd -D
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
新用户user1(使用系统默认参数):
[root@hs-uf21 etc]# useradd user1
[root@hs-uf21 etc]# grep user1 passwd shadow groupgshadow
passwd:user1:x:502:503::/home/user1:/bin/bash
shadow:user1:!!:15817:0:99999:7:::
group:user1:x:503:
gshadow:user1:!::
给用户user1设置密码:
[root@hs-uf21 etc]# passwd user1
Changing password for user user1.
New UNIX password:
BAD PASSWORD: it is too short
Retype new UNIX password:
passwd: all authentication tokens updatedsuccessfully.
查看user1用户的主文件夹:默认权限是700
[root@hs-uf21 etc]# ll -d /home/user1
drwx------ 4user1 user1 4096 Apr 22 21:27 /home/user1
注意:使用root用户设置其它用户的密码
说明:创建普通用户时,UID默认是大于500的,并且会新建一个跟用户名相同的用户组做为此用户的初始用户组
新用户user2,并指定UID为114,指定初始用户组为users,强制不创建主文件夹:
[root@hs-uf21 etc]# useradd -u 114 -g users -M user2
[root@hs-uf21 etc]# ll -d /home/user2
ls: /home/user2: No such file or directory
[root@hs-uf21 etc]# grep user2 passwd shadow group
passwd:user2:x:114:100::/home/user2:/bin/bash
shadow:user2:!!:15817:0:99999:7:::
注意:指定初始用户组后,group文件中没有user2的相关信息
使用-r参数创建一个系统账号:
[root@hs-uf21 etc]# useradd -r user3
[root@hs-uf21 etc]# ll -d /home/user3
ls: /home/user3: No such file or directory
[root@hs-uf21 etc]# grep user3 passwd shadow group
passwd:user3:x:115:115::/home/user3:/bin/bash
shadow:user3:!!:15817::::::
group:user3:x:115:
注意:默认创建系统账号的UID是小于500的,并且没有创建用户主文件夹,同时新创建跟用户同名的用户组做为此用户的初始用户组
创建新用户涉及的文件:
用户账号与密码参数方面的文件:/etc/passwd、/etc/shadow
用户组相关方面的文件:/etc/group 、/etc/gshadow
用户主文件夹:/home/账号名称
useradd参考文件:/etc/default/useradd(也可以使用命令useradd -D查看)
[root@hs-uf21 etc]# cat /etc/default/useradd
# useradd defaults file
GROUP=100 <<==默认用户组
HOME=/home <<==默认主文件夹所有目录
INACTIVE=-1 <<==密码失效日
EXPIRE= <<==账号失效日
SHELL=/bin/bash <<==默认shell
SKEL=/etc/skel <<==指定用户主文件夹的参考基准目录
UID/GID及密码参数的参考文件:/etc/login.defs
[root@hs-uf21 etc]# cat /etc/login.defs
MAIL_DIR /var/spool/mail <<==用户默认邮件信箱放置目录
PASS_MAX_DAYS 99999 <<==/etc/shadow内的第5列,设置多久需要更改密码的天数
PASS_MIN_DAYS 0 <<==/etc/shadow内的第4列,设置多久不可重新设置密码的天数
PASS_MIN_LEN 5 <<==密码最短的字符长度,已经被pam模式替代,失去效用
PASS_WARN_AGE 7 <<==/etc/shadow内的第6列,设置密码过期前的警告天数
UID_MIN 500 <<==用户最小的UID,小于500的UID为系统保留
UID_MAX 60000 <<==用户最大的UID
GID_MIN 500 <<==用户自定义组的最小GID,小于500的为系统保留
GID_MAX 60000 <<==用户自定义组的最大GID
CREATE_HOME yes <<==在不加-M及-m时,是否主动创建用户主文件夹
2.用户设置密码:passwd/chage
passwd:
语法:passwd[--stdin][-l][-u][-S][-n 日数][-x 日数][-w日数][-i 日期] 账号
参数:
[--stdin]:
[-l]:Lock的意思,会将/etc/shadow第二列最前面加上“!”使用密码失效
[-u]:与-l是相对的,Unlock的意思
[-S]:列出密码的相关参数,即shadow文件内的大部分信息
[-n]:后面接天数,修改shadow文件的第4列,多久不可以修改密码的天数
[-x]:后面接天数,修改shadow文件的第5列,多久必需要改动密码的天数
[-w]:后面接天数,修改shadow文件的第6列,密码过期前的警告天数
[-i]:后面接日期,修改shadow文件的第7列,密码失效日期
修改Oracle用户的密码:
[root@hs-uf21 ~]# passwdoracle
Changing password for user oracle.
New UNIX password:
BAD PASSWORD: it is based on a dictionary word
Retype new UNIX password:
passwd: all authentication tokens updatedsuccessfully.
注意:要修改其它用户的密码,需要使用“passwd 账号”的格式,passwd后面不接用户表示修改自己的密码。但一般用户修改自己的密码时,需要先输入自己的原密码,而root用户不用。Linux使用pam模式来管理密码,这个管理的机制写在/etc/pam.d/passwd当中。
使用标准输入修改用户的密码:
[root@hs-uf21 ~]# echo "oracle" | passwd --stdin oracle
Changing password for user oracle.
passwd: all authentication tokens updated successfully.
注意:使用--stdin修改用户密码时,不需要再次输入密码。但是修改信息会被记录到history中。
chage:change user password expiry information
语法:chage [-ldEImMW] 账号
参数:
[-l]:列出该账号的详细密码参数。
[-d]:后面接日期,修改shadow文件的第3列(最近一次更改密码的日期),格式“YYYY-MM-DD”。
[-E]:后面接日期,修改shadow文件的第8列(账号失效日期),格式“YYYY-MM-DD”。
[-I]:后面接天数,修改shadow文件的第7列,密码失效日期
[-m]:后面接天数,修改shadow文件的第4列,多久不可以修改密码的天数
[-M]:后面接天数,修改shadow文件的第5列,多久必需要改动密码的天数
[-W]:后面接天数,修改shadow文件的第6列,密码过期前的警告天数
查看oracle用户的密码信息:
[root@hs-uf21 ~]# chage -l oracle
Minimum: 0
Maximum: 99999
Warning: 7
Inactive: -1
Last Change: Apr 24, 2013
Password Expires: Never
Password Inactive: Never
Account Expires: Never
3.usermod:
语法:usermod[-cdegGlsuLu] username
说明:usermod的参数基本要useradd相同。
4.userdel:
语法:userdel[-r] username
参数:
[-r]:连同用户的主文件夹也删除
删除user3用户及其主文件夹:
[root@hs-uf21 ~]# userdel -r user3
userdel: error removing directory /home/user3
[root@hs-uf21 ~]# ll -a /home/user3
ls: /home/user3: No such file or directory
5.id命令:查看用户的或者自己相关的UID/GID等信息
语法:id[username]
查看oracle用户的UID/GID等信息:
[root@hs-uf21 ~]# id oracle
uid=501(oracle) gid=502(oinstall)groups=502(oinstall),501(dba)
查看当前用户的UID/GID等信息:
[root@hs-uf21 ~]# id
uid=0(root) gid=0(root)groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel)
You have new mail in /var/spool/mail/root
