用户管理
1、新建用户
1.1 创建一个普通账户
新建用户主要用useradd这个命令
[[email protected] ~]$ ls -al /usr/sbin/useradd
-rwxr-x---. 1 root root 103096 Aug 2 2011 /usr/sbin/useradd
以上我们可知useradd的操作权限,只有管理员用户组的才能操作。
[[email protected] weijie]# useradd [option] david
-u uid -g groupname username 创建一个自定义uid和group的user 可登录账户 uid 在500~2^31-1
-G minor group 次要用户组 将修改/etc/group 最后一个字段
-r 创建一个系统账户(不可登录账户) uid 在1~499
1.2 给账户添加密码
-root给用户设置密码
[[email protected] david]# passwd david
Changing password for user david.
New password:
另一种方法
[[email protected] weijie]# echo "abc543CC" | passwd --stdin david
Changing password for user david.
passwd: all authentication tokens updated successfully.
passwd 选项
-l 锁定该用户
-u 解锁该用户
-S 列出密码相关参数
-用户添加/修改自己的密码
[[email protected] weijie]$ passwd
Changing password for user david.
Changing password for david.
(current) UNIX password:
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
-查看/修改用户密码参数
chage [-ldEIMW value] 账号名
-l: 列出账号详细密码参数
[[email protected] weijie]# chage -l weijie
Last password change : Jan 25, 2015
Password expires : never
Password inactive : never
Account expires : never
Minimum number of days between password change : 0
Maximum number of days between password change : 99999
Number of days of warning before password expires : 7
另外各个参数后面直接加值修改相应字段
1.3 查看新增用户
-查看三个配置文件
[[email protected] david]# grep david /etc/passwd /etc/shadow /etc/group
/etc/passwd:david:x:501:501::/home/david:/bin/bash
文件结构:[从左边起]
1) 账户名称
2) 密码 现在密码都已经用x标示了,加密后的密码在shadow文件中
3) UID 用户标示符
4) GID 组标示符
5) 用户描述
6) 用户主目录
7) 默认shell
/etc/shadow:david:!!:16467:0:99999:7:::
文件结构:[从左边起]
1) 账号名称
2) 密码 加密后的 目前版本的Linux使用的是MD5单向加密
3) 最近密码更新日期 Linux时间戳(1970.1.1至今的秒数)
4) 密码不可变更的天数
5) 密码需要更新的天数
6) 密码需要更改期限前的告警天数
7) 密码过期后账号宽限时间(天)
8) 账号失效日期
9) 保留字段
/etc/group:david:x:501:
文件结构:[从左边起]
1) 用户组名称
2) 用户组密码
3) GID
4) 此用户组支持的账号名称,多个用逗号隔开
-id 命令查看当前用户信息
[[email protected] ~]$ id
uid=500(weijie) gid=500(weijie) groups=500(weijie) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
1.4 修改默认新增用户的配置
配置文件的路径 /etc/default/useradd
[[email protected] david]# useradd -D #查看配置
GROUP=100 # 默认group 为GID100的users组
HOME=/home #默认用户家目录,创建用户是自动在这个目录下新增一个以用户名为名称的目录
INACTIVE=-1 #密码过期后账户是否失效 0为立刻失效 -1为永不失效 对应shadow文件中的第七个字段
EXPIRE= #账号失效日期 对应shadow的第八个字段
SHELL=/bin/bash #默认使用的shell程序文件名,可以设置为/sbin/nologin,那么这个用户将不能登录,在邮件服务器中可以这样设置
SKEL=/etc/skel #用户主文件夹参考基准目录,用户环境变量默认从这个目录下的.bashrc拷贝到新建目录/home/username #ls -al /home/username可以看到这个隐藏文件
CREATE_MAIL_SPOOL=yes #是否创建用户的mail box, no为不创建。在这个目录下/var/spool/mail 可以看到这个用户的邮箱文件
2、修改用户信息
2.1 命令修改
usermod [-cdegGlsuLU value] username
-l 修改账号名称
-g 修改账户所属组GID
-G 加groupname修改用户组的支持
-a 与G合用新增用户进入组的支持
-L 加锁
-U 解锁
2.2 直接修改配置文件
可以直接修改这三个文件
/etc/passwd
/etc/shadow
/etc/group
3、删除用户
3.1 命令删除
userdel [-r] username
加-r 是把user的家目录一起删除
3.2 删除配置文件中的信息
可以直接修改这三个文件
/etc/passwd
/etc/shadow
/etc/group
4、操作用户组
4.1 groupadd 添加
groupadd [-g gid] [-r] 组名
-g 后加GID
-r 新建系统用户组
4.2 修改用户组
groupmod [-g gid] [-n groupname] 组名
-g 后加GID
-n 组名
4.3 删除用户组
groupdel [groupname]
不加groupname默认删除当前组,删除组前要确认该组没有用户。
4.4 新建用户组管理员
gpasswd groupname
gpasswd [-A user1,..] [-M user3,..] groupname
gpasswd [-rR] groupname
没有参数个groupname 一个密码 (密码保存在/ect/gshadow 第二个字段)
-A 将主权交给这些用户-M 某些用户加入这个组中
-r 将groupname 密码删除
-R 让groupname 密码失效
4、切换用户
4.1 su 命令
su [-lm] [-c command] [username] 用于切换用户登陆
- 不加username 表示切换到root(以login shell登录)-l 与-类似需要加用户名切换
4.2 sudo命令
临时以某用户身份执行命令
sudo [-u user] command
-u 加用户名 若无此项以root身份执行
-修改sudo 使用者
使用visudo命令
/root 查找root 复制一行新增一行
root ALL=(ALL) ALL
david ALL=(ALL) ALL
1)第一个字段用户账号为需要的账号
2)=前的ALL可替换登录者的来源主机名 ALL标识任何主机都可
3)=后标识可切换的身份账号
4)最后一个字段标识可执行的命令 ALL表示所有命令都可
5、高级主题
5.1 PAM模块
待续
5.2 用户信息传递
待续
5.3 ACL使用
待续
6、总结
本文简单地介绍了Linux用户管理,高级主题部分有待补充,用户管理命令需要反复练习,用多了会找到更多的便捷方式管理账户。大家有兴趣可以去找找红帽认证的复习题,把此作为作业练习用户管理。另外我也会再后面几篇文章中发布一些应用实例来复习一下这章的内容。
7、参考资料
《鸟哥的私房菜Linux基础篇》