1.用户的理解
用户就是系统使用者的身份,我们可以使用一个用户的身份去使用或管理属于这个用户的文件,在系统中用户存储为若干串字符+若干个系统配置文件,用户信息涉及到的系统配置文件:
username用户名:password密码:uid用户ID:gid组ID:说明文字:家目录:用户使用的shell
**每一行代表一个账号,很多帐号例如bin,daemon,adm,nobody等为系统帐号,不能随意删掉
**因为这个文件所有程序都能够读取,很容易造成密码数据被窃取,所以密码数据一般放在/etc/shadow中,此处显示x
**默认的用户家目录在/home/username中
(a)用户:(b)密码:(c)密码可使用的时间:(d)最短有效期:(e)最长有效期:(f)警告期:(g)非活跃期:(h)帐号到期日
**(b)无密码时显示双感叹号,帐号锁定后密码前显示一个感叹号,解锁后感叹号消失
**(c)设置为零时每次登陆前都要修改一次密码
**(d)m天内不能再次修改密码
**(e)M天后帐号会被冻结
**(f)帐号到期前W天提醒用户更改密码
**(g)帐号到期后还给用户I(大写i)天时间修改密码,设置为-1时到期立即冻结账户
**(h)其他参数在修改一次密码后会被重置,该参数不会,到设置日期后立即冻结账户,用参数E设置
组名称:组密码:组id:附加组成员
/etc/gshadow ##组认证信息
/home/username ##用户家目录
/etc/skel/.* ##用户骨架文件
2.用户管理(需要超级用户权限)
(1)用户建立
useradd 参数 用户名
-u ##指定用户uid
-g ##指定用户初始组信息,这个组必须存在
-G ##指定附加组,这个组必须存在
-c ##用户说明
-d ##用户家目录
-s ##用户所使用的shell,/etc/shells记录了用户能使用shell的名字
(2)用户删除
userdel [-r] 用户名 ## -r表示删除用户信息及用户的系统配置文件
(3)组的建立
groupadd -g 组名 ##建立组
groupdel 组名 ##删除组
**作以上实验的监控命令(用另一个shell作监视窗口):
watch -n 1 'tail -n 3 /etc/passwd /etc/group;echo ==home==;ls -l /home;'
**监控单引号内的内容,每隔一秒更新一次
**列出用户信息和组信息的后三行(如有新用户加入,用户信息会加在/etc/passwd文档末行,同时产生一个同名的组,组信息加在/etc/group文档末行),及普通用户家目录信息(加入新用户时/home中会添加一个与用户同名的家目录)
(4)用户id信息查看
id 参数 用户名
-u ##用户uid
-g ##用户初始组id
-G ##用户所有所在组id
-un/gn/Gn ##显示名称而不是id数字
-a ##显示所有信息
(5)用户信息更改
usermod 参数 用户
-l ##更改用户名称
-u ##更改uid
-g ##更改gid
-G ##更改附加组
-aG ##添加附加组
-c ##更改说明
-d ##更改家目录指定
-md ##更改家目录指定及家目录名称
-s ##更改shell
-L ##冻结帐号
-U ##解锁
*)开启监控窗口
**)在另一个窗口创建一个新用户,执行加入用户信息的命令
***)用户信息和家目录分别生出一条信息文件(没出现组信息文件是因为我将这个用户的初始组设为student了),查看下用户的各项信息,然后执行删除命令
****)因为加了-r参数,所以与这个用户有关的配置文件都被删除
3.用户权力下放
(1)在系统中超级用户可以下放普通用户不能执行的操作给普通用户
**下放权力配置文件:/etc/sudoers
(2)下放权力的方法
*)超级用户执行visudo进入编辑/etc/sudoers模式(不用加参数)
*)格式:
获得权限用户 主机名称=(获得到的用户身份) 命令
sumin foundation150.ilt.example.com=(root) /usr/sbin/useradd
**sumin用户能在foundation150.ilt.example.com主机上以超级用户身份执行/usr/sbin/useradd
**用hostname命令获得主机号
(3)执行下放权限命令
sudo 命令全称 ##如果第一次执行sudo需要输入当前用户密码
**在/etc/sudoers中如果设置如下:
sumin foundation150.ilt.example.com=(root) NOPASSWD: /usr/sbin/useradd
**NOPASSWD表示用户调用sudo命令的时候不需要输入密码
4.用户认证信息的控制
chage 参数 用户
-d ##用户密码组后一次修改的时间,如果设定成0,用户登陆系统时必须修改一次密码
-m ##最短有效期,该期限内不能再次修改密码
-M ##最长有效期,该期限过后会冻结帐号
-W ##警告期,设置在帐号过期前多少天通知用户修改密码
-I ##(大写i)用户非活跃天数,帐号过期后还允许用户修改密码的天数,该期限过后才冻结帐号
-E ##帐号到期日格式 -E "YYYY-MM-DD"
-l ##(小写L)列出该帐号的详细密码参数