Linux用户管理
1. /etc/passwd 存放用户信息的文件,每一行代表一个用户信息。
name:password:uid:gid:comment:home:shell
name 用户登录名
password 用户口令。此域中的口令是加密的,常用x表示。当用户登录系统时,系统对输入的口令采取相同的算法,与此域中的内容进行比较。如果此域为空,表明该用户登录时不需要口令。
uid 指定用户的 UID。用户登录进系统后,系统通过该值,而不是用户名来识别用户。
gid GID。如果系统要对相同的一群人赋予相同的权利,则使用该值。
comment 用来保存用户的真实姓名和个人细节,或者全名。
home 指定用户的主目录的绝对路径。
shell 如果用户登录成功,则要执行的命令的绝对路径放在这一区域中。它可以是任何命令。
(1):用户名。
(2):密码(已经加密)
(3):UID(用户标识),操作系统自己用的
(4):GID组标识。
(5):用户全名或本地帐号
(6):开始目录
(7):登录使用的Shell,就是对登录命令进行解析的工具。
2./etc/shadow 存放用户密码的信息
登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
1)“登录名”是与/etc/passwd文件中的登录名相一致的用户账号
2)“口令”字段存放的是加密后的用户口令字,如果为空,则对应用户没有口令,登录时不需要口令;
星号代表帐号被锁定;
双叹号表示这个密码已经过期了。
$6$开头的,表明是用SHA-512加密的, $1$ 表明是用MD5加密的 $2$ 是用Blowfish加密的 $5$ 是用 SHA-256加密的。
3)“最后一次修改时间”表示的是从某个时刻起,到用户最后一次修改口令时的天数。时间起点对不同的系统可能不一样。例如在SCOLinux中,这个时间起点是1970年1月1日。
4)“最小时间间隔”指的是两次修改口令之间所需的最小天数。
5)“最大时间间隔”指的是口令保持有效的最大天数。
6)“警告时间”字段表示的是从系统开始警告用户到用户密码正式失效之间的天数。
7)“不活动时间”表示的是用户没有登录活动但账号仍能保持有效的最大天数。
8)“失效时间”字段给出的是一个绝对的天数,如果使用了这个字段,那么就给出相应账号的生存期。期满后,该账号就不再是一个合法的账号,也就不能再用来登录了。
3. passwd username 修改username的密码
gpasswd groupname 修改组的密码
用户自己输入passwd则可以直接修改自己的密码 ,查看 passwd
有特殊权限s,setuid的意思。
普通用户之所以可以修改密码,在于有此权限,会变成命令所有者的权限,就是修改的时候变成了root,才能将密码写入shadow,不然查看shadow文件普通用户是没有w权限的。
授予s权限:chmod u+s 或者chmod 4755 ,其中4表示s权限给所有者,如果是2755就给所有组,会变成root,
1755就是其它用户,但是是用t表示, 比如chmod o+t ,就是授予黏着位的意思。如果一个目录具有777的权限,那么a用户就可以删除b用户创建的文件,这显然不合理,利用黏着位就可以避免这种现象。
4./etc/group
组名:组密码位:GID:组内用户列表
group -g GID 组名 指定GID添加组
useradd -u UID username -g groupname -G groupname 主组,副组
将用户添加进一个组的两个方法:
gpasswd -a groupname username Linux下
usermod -G groupname username Unix下
详见http://blog.csdn.net/u011537073/article/details/51987121
5.多个用户同时对一个目录想要具有读写权限,那么只要将这几个用户放在一个组里面,把目录所属组改成这个组(用chgrp 组名 目录),然后修改组的权限即可
pwck 检测/etc/passwd文件是否有错误
vipw 可以锁定/etc/passwd文件进行编辑,防止多个用户同时修改
id 可以查看用户id和组信息
finger 查看用户详细信息
su 切换用户
passwd -S 查看用户密码状态
who 、w 查看当前登录用户信息
6. 密码锁定只是在shadow 里面加了两个感叹号,这样加密格式就被破坏了。
7.
执行pwunconv指令可以关闭用户投影密码,它会把密码从shadow文件内,重回存到passwd文件里
8.批量添加用户
(1)创建用户信息文件比如user.info,此时先不用指定密码,然后newusers < user.info
(2) 执行pwunconv,将shadow的投影密码放回passwd里面。
创建用户密码文件如passwd.info, 里面只写username:passwd,然后执行chpasswd < passwd.info就导入了passwd文件里面,
再执行pwconv就可以转换到shadow文件里头