用户及用户组的相关文件


当用户输入帐号密码时,系统处理了什么?

在 /etc/passwd文件中是否有该帐号---->读取该帐号对应的UID(/etc/passwd)和GID(/etc/group),同时将 该帐号的主文件夹与shell设置也一并读出来---->核对密码表:在/etc/shadow文件中找出对应的帐号与UID,然后核对密码是否正 确---->一切OK,则进入shell

控管的阶段


/etc/passwd

[kiosk@foundation44 Desktop]$ head -n 4 /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
[kiosk@foundation44 Desktop]$

取“root:x:0:0:root:/root:/bin/bash“用作说明:

/etc/passwd文件每行使用“:”分隔开,共有七个字段,也可以认为是七列;

第一列:root        ##帐号名称##

第二列:x        ##密码##

            以防密码数据被窃取,将密码数据存放在/etc/shadow中,故该处只显示x

第三列:0        ##UID##

            通常0为系统管理员即超级用户UID;1~499为系统帐号UID,其中1~99由distributions自行创建的系统帐号UID,100~499则是当用户有系统帐号需求时可以使用的UID;500~65535为可登陆账户UID,给一般用户使用的UID

第四列:0            ##GID##

            与/etc/group有关,/etc/passwd用来规定组名与GID的对应

第五列:root            ##用户信息说明##

第六列:/root            ##用户家目录##

第七列:/bin/bash            ##shell##

            /sbin/nologin该shell可以使用户无法交互式登陆


/etc/shadow

[root@foundation44 ~]# head -n 4 /etc/shadow
root:$6$TKuPL7p4$1/vVJP.e5d7I.3BHYumeRMsSnJbFup5s/q7d9aPWgL6N2f.mh6XCqZSxjNovgdQKGAE.4ut4Fcbsln5RfUkrs1:17212:0:99999:7:::
bin:*:16579:0:99999:7:::
daemon:*:16579:0:99999:7:::
adm:*:16579:0:99999:7:::
[root@foundation44 ~]#

任取一行数据用作说明:

/etc/shadow文件每行使用“:”分隔开,共有九个字段,也可以认为是九列;

第一列:帐号名称

            必须与/etc/passwd文件一致

第二列:密码

            经过不编码的密码(加密),该文件默认权限是“-rw-------”或“-r--------”,切不可随意改动该文件权限

第三列:最近更改密码的日期(最后一次密码修改时间)

第四列:密码不可被改动的天数(最短有效期)

            与最近更改密码的日期相比

第五列:密码需要重新更改的天数(最长有效期)

            与最近更改密码的日期相比

第六列:密码需要更改期限前的警告天数(警告期)

            与密码需要重新更改的天数

第七列:密码过期后的帐号宽限时间(密码失效日,又叫非活跃期)

            与密码需要重新更改的天数相比,区分密码过期与密码失效

第八列:帐号失效日期(帐号到期日)

第九列:保留

            该列保留,看以后有没有新字段加入


/etc/group

[root@foundation44 ~]# head -n 4 /etc/group
root:x:0:
bin:x:1:
daemon:x:2:
sys:x:3:
[root@foundation44 ~]#

任取一行数据用作说明:

/etc/group文件每行使用“:”分隔开,共有四个字段,也可以认为是四列;

第一列:用户组名称

第二列:用户组密码

            密码转存于/etc/gshadow中,故该字段只显示x

第三列:GID

第四列:此用户组支持的帐号名称(附加组成员)


补充:

/home/username            ##用户家目录##
/etc/skel/.*            ##用户骨架文件##


用户及用户组的创建和管理

useradd         ##新建用户##
useradd -u      ##指定用户uid##
useradd -g      ##指定用户初始组信息,这个组必须已经存在##
useradd -G      ##指定附加组,这个组必须存在##
useradd -c      ##用户说明##
useradd -d      ##用户家目录##
useradd -s      ##用户所使用的shell,/etc/shells记录了用户能使用shell的名>字(/sbin/nologin表示该用户不能使用交互式登陆)##

id      ##查看用户信息##
id -u   ##用户uid##
id -g   ##用户初始组id##
id -G   ##用户所有所在组id##
id -n   ##显示名称而不是id数字##
id -a   ##显示所有信息##

usermod         ##用户参数修改##
usermod -l      ##更改用户名称##
usermod -u      ##更改uid##
usermod -g      ##更改gid##
usermod -G      ##更改附加组##
usermod -aG     ##添加附加组##
usermod -c      ##更改说明##
usermod -d      ##更改家目录指定##
usermod -md     ##更改家目录指定及家目录名称##
usermod -s      ##更改shell##
usermod -L      ##冻结帐号##
usermod -U      ##解锁##

echo lee | passwd --atdin westos    ##给lee用户一个密码##
passwd -d westos    ##清空密码##
chage -d    ##多少天后修改密码,如果参数为0则用户登陆是就必须修改密码##
chage -m    ##最短有效期##
chage -M    ##最长有效期##
chage -W    ##警告期##
chage -I    ##用户非活跃期##
chage -E    ##帐号到期日##




练习题:
新建用户组:shengchan,caiwu,jishu
要求:    *tom是shengchan组的附加用户
    *harry是caiwu组的附加用户
    *leo是jishu组的附加用户
    *新建admin用户,此用户不属于以上提到的三个部门


[root@localhost ~]# groupadd shengchan
[root@localhost ~]# groupadd jishu
[root@localhost ~]# groupadd caiwu
[root@localhost ~]# useradd tom -G shengchan
[root@localhost ~]# useradd harry -G caiwu
[root@localhost ~]# useradd leo -G jishu
[root@localhost ~]# useradd admin

查看用户信息cat /etc/passwd(也可用id命令查看用户信息)
查看用户组信息cat /etc/group




权力下放

1.在系统中超级用户可以下放普通用户不能执行的操作给普通用户
下放权力配置文件:/etc/sudoers

2.下放权力的方法
*)超级用户执行visudo进入编辑/etc/sudoers模式
*)格式:
获得权限用户    主机名称=(获得到的用户身份)   命令
例如:test    desktop0.example.com=(root)     /usr/sbin/useradd
##test用户能在desktop0.example.com以超级用户身份执行/usr/sbin/useradd
3.执行下放权限命令
sudo    命令    ##如果第一次执行sudo需要输入当前用户密码##
在/etc/sudoers中如果设置如下:
test    desktop0.example.com=(root)     NOPASSWD: /usr/sbin/useradd
表示用户调用sudo命令的时候不需要自己密码