账户和口令管理练习

理解linux中账户的实质,初步掌握创建账
户和对账户口令的管理命令;了解账户管理中涉及的相关文件,并掌握基本权限的设置。

一用户、组管理

1 观察系统中root账户的相关信息(在/etc/passwd,/etc/shadow和/etc/group中查看),并对查到的每条记录分析每个字段的含义)。

etc/passwd下每个字段的含义
 [root@bogon /etc]# cat passwd
root:x:0:0:root:/root:/bin/bash
//第一个字段是login name:登录用名root
//第二个字段是passwd(密码):x已加密
//第三个字段是UID:用户身份编号0
//第四个字段是GID:登录默认所在组编号0
//第五个字段是GECOS:用户全名或注释root;
//用户的全名和一些信息,可用finger查看(如果没有该命令需安装)chfn命令可以修改这些信息:
[root@bogon /etc]# finger root
Login: root           			Name: root
Directory: /root                    	Shell: /bin/bash
On since 日 1222 12:39 (CST) on tty1    13 minutes 3 seconds idle
On since 日 1222 12:41 (CST) on pts/0 from :0
   11 minutes 43 seconds idle
On since 日 1222 12:45 (CST) on pts/1 from 192.168.179.64
   7 seconds idle
New mail received 五 1115 16:57 2019 (CST)
     Unread since 五 1115 16:54 2019 (CST)
No Plan.
//第六个字段:用户主目录/root
//第七个字段shell:用户默认使用shell(/bin/bash)默认shell可用chsh修改 chsh -s /sbin/nologin root 测试完要修改回来
etc/shadow下每个字段的含义
[root@bogon /etc]# cat shadow
root:$6$.CzwaMWMBkNMM1dw$IJSzAObtgQ8jKejObSjaJvPljvzO4qC6ILRCGWIgFlp6m5Rz25CCjX78aI53yQpunNfQV5jUsGZ270uwg8t7m0::0:99999:7:::

//第一字段root:登录用名
//第二字段$6$.CzwaMWMBkNMM1dw$IJSzAObtgQ8jKejObSjaJvPljvzO4qC6ILRCGWIgFlp6m5Rz25CCjX78aI53yQpunNfQV5jUsGZ270uwg8t7m0:用户密码
//第三字段 :从1970年1月1日起到密码最近一次被更改的时间 表示未被更改过
//第四字段0:密码再过几天可以被变更(0表示随时可被变更)
//第五字段99999:密码再过几天必须被变更(99999表示永不过期)
//第六字段7:密码过期前几天系统提醒用户(默认为一周)
//第七组段缺省值空:该字段允许密码到期之后N天之内还依然可以登录。
//第八字段缺省值空:该字段表示一个绝对的天数,意为到期之后不允许登录,也可以理解为密码的有效存活期
etc/group字段
[root@bogon /etc]# cat group
root:x:0:
jk:x:1004:stu2,stu3

//第一字段root:用户组名
//第二字段x:一般为x 密码
//第三字段0:GID
//第四字段 :组内的成员列表。文件中显示的账户名都是将该组作为附加组,如果是主组,在此不显示。
//如用户stu2、stu3的附加组是jk
提示:可以用groups 用户名 查看所属的组有哪些

说明:
root账户和root用户组是两码事,某个账户就算是加入了root组,那么也不代表它
具备root权限。
因为在linux系统,默认情况下,用户的权限高于用户组。
Linux id命令用于显示用户的ID,以及所属群组的ID。

如 id stu2
uid=1007(stu2) gid=1007(stu2)=1007(stu2),1004(jk)
//-g或--group  显示用户所属群组的ID。
//-G或--groups  显示用户所属附加群组的ID。
[root@localhost /etc]# id -G stu2
1007 1004
[root@localhost /etc]# id -g stu2
1007
#grep ‘root’ /etc/passwd /etc/shadow /etc/group

三个文件中信息的相互关系如下图所示。
在这里插入图片描述

2 用户账户和群组账户的创建

1)创建一个与你名字同名的普通账户(例如zhanghh)

[root@localhost /etc]$useradd zhanghh
-g 属组
-u 设置uid
-m 创建家目录
-M 没有家目录
-G 指定属于多个组
-s 指定登录shell
-d 指定家目录
-c 注释
-D 改变它默认的属性
-e 指定的日期是帐号失效的日期,
在xshell中可以man一下useradd

2)创建一个班级群组账户(指定gid是556),创建一个社团群组账户(比如linux开源工作室),指定其gid是558。

groupadd -g 556  wlwclass
groupadd -g 558 linux
修改组:

groupmod 参数 用户组名

-g: GID 为用户组指定新的组标识号。

-o:与-g选项同时使用,用户组的新GID可以与系统已有用户组的GID相同。

-n:新用户组 将用户组的名字改为新名字
//将用户组名为linux改为linuxkygzs、且GID558
[root@localhost ~]# groupmod -g 558 -n linuxkygzs linux
[root@localhost ~]# cat /etc/group|grep linuxkygzs
linuxkygzs:x:558:

3)将该账户(例如zhanghh)加入到这些群组中去。

#usermod -G 556,558 zhanghh
修改用户:

usermod 参数 用户名

-c:修改用户帐号的备注文字。
-d:修改用户登入时的目录。
-e:修改帐号的有效期限。
-f: 改在密码过期后多少天即关闭该帐号。
-g:修改用户所属的群组。
-G:修改用户所属的附加群组。
-l:修改用户帐号名称。
-L:锁定用户密码,使密码无效。
-s:修改用户登入后所使用的shell。
-u:修改用户ID。
-U:解除密码锁定

4)查看zhanghh的账户信息

[root@localhost /etc]# id zhanghh
uid=1010(zhanghh) gid=1010(zhanghh)=1010(zhanghh),556(wlwclass),558(linuxkygzs)


3 口令的管理

1)设置用户的口令

[root@localhost /etc]# passwd zhanghh

2)修改用户的口令时效(假设修改为密码必须在60内更新,到期前3天进行提醒,超期后宽限7天,账户的禁用期为2021-01-01)
chage命令用于密码实效管理,该是用来修改帐号和密码的有效期限。它可以修改账号和密码的有效期

1. 命令语法:
    
    chage [options] user
    
    命令参数: 参数 描叙
    -d 指定密码最后修改日期
    -E 密码到期的日期,过了这天,此账号将不可用。0表示马上过期,-1表示永不过期。
    -h 显示帮助信息并退出
    -I 密码过期后,锁定账号的天数
    -l 列出用户以及密码的有效期
    -m 密码可以更改的最小天数。为零代表任何时候都可以更改密码。
    -M 密码保持有效的最大天数。
    -W 密码过期前,提前收到警告信息的天数。
[root@localhost /etc]#chage -M 60 -W 3 -I 7 -E 2021-01-01 zhanghh
[root@localhost /etc]# grep zhanghh /etc/shadow
zhanghh:$6$fGYWvfpa$R.0pYa.MSWbaIwlB47vy9.W9/GluRp47UZzyK0yuA4jLSB.bsTZcOeFX.jej0wMvh2p/b3U07jE7tRbvIrwlo0:18252:0:60:3:7:18628:

3)显示修改用户的口令

[root@localhost /etc]#echo 123456 |passwd --stdin zhanghh

4)修改用户口令为下次登陆必须修改

[root@localhost /etc]#chage -d 0 zhanghh
4 用户登录

1)打开一个新的虚拟终端(ctrl+alt+F1)(su - test 退出普通用户exit)并用zhanghh的身份登陆(由于上个chage -d 0 kelsey 的操作,导致登陆以后必须先修改密码,请先修改密码,然后再重新登陆,注意输入密码时是不回显的)
2)查看登陆系统的用户有哪些

[zhanghh@localhost ~]$ who
root     tty1         2019-12-22 14:08
root     pts/0        2019-12-22 14:09 (192.168.179.64)
root     pts/1        2019-12-22 14:42 (192.168.179.64)
root     pts/2        2019-12-22 15:44 (192.168.179.64)

3)查看该终端上的用户是谁

[zhanghh@localhost ~]$ whoami
zhanghh

4)查看该用户的信息

[zhanghh@localhost ~]$ id
uid=1010(zhanghh) gid=1010(zhanghh)=1010(zhanghh),556(wlwclass),558(linuxkygzs)

5)退出该用户登录

[zhanghh@localhost ~]$exit
5 观察用户,有效群组和文件之间的关系

1)以zhanghh身份登陆
Ctrl+alt+f1
2)创建一个普通用户test,并将该用户的初始群组设定为linux开源社区群组。

#useradd -g linuxkygzs test

3)给test设置密码

#passwd test

4)让test在终端2上登陆(即用ctrl+alt+f2打开的终端上登陆)
Ctrl+alt+f2
5)zhanghh用户在自己的家目录中创建一个文件k1

$ touch k1

6)观察k1文件的属性

$ll k1

7)切换zhanghh的有效群组为linux开源社区

$groups
$newgrp linuxkygzs

8)zhanghh再次创建一个新文件k2并观察该文件的属性。

$touch k2
$ll k2

9)test也在自己的家目录创建文件t1,观察t1的属性。

$touch t1
$ll t1
6 用户的注销与删除

首先要记录以下/etc/passwd、/etc/shadow和/etc/group文件中的内容,最后要做对比的。

1)zhanghh退出登录

$exit

2)test退出登录

$exit

3)root将zhanghh与test用户彻底删除

#userdel -r zhanghh
#userdel  test

4)观察/home下面是否还有zhanghh和test的家目录。

#ls /home

5)观察/etc/passwd,/etc/shadow,/etc/group中信息的变化。

二 基本权限管理

1 观察文件的基本权限。

在当前用户(以stu01的身份登陆,如果该用户不存在自己建立)的家目录中创建文件file1,并用ls命令列出该文件的属性信息,分析每个字段的含义。观察文件的默认权限并解释为何如此。

[stu01@localhost ~]$touch file1
[stu01@localhost ~]$ls -l file1
[stu01@localhost ~]$umask

2 设定file1文件的权限为仅拥有者可读写,其他人无任何操作权限。

[stu01@localhost ~]$chmod 600 file1

3 临时切换身份为root用户,将file1的拥有者改为stu02(不存在请创建),组改为jk(jk组不存在请创建),并对file1的权限加上组内用户可读写的权限设定。最后退出root身份登陆。

[stu01@localhost ~]$su
[root@localhost ~]#groupadd jk
[root@localhost ~]#useradd  stu02
[root@localhost ~]#chown stu02:jk file1
[root@localhost ~]# ll file1
-rw------- 1 stu2 jk 0 1222 18:35 file1 
[root@localhost ~]# chmod g+wr file1
[root@localhost ~]# ll file1
-rw-rw---- 1 stu2 jk 0 1222 18:35 file1
[root@localhost ~]#exit

【思考题】
假设需要的账号数据如下表所示,如何在系统中实现这样的设定。并要求用户登陆后强制先修改自己的密码chage -d 0 用户名;才能进行其他操作。
账号名称 账号全名 支持的次要群组 可否登入主机 密码
myuser1 1st user Linux 可以 123456
myuser2 2nd user Linux 可以 123456
myuser3 3rd user 无 不可以 123456

文件权限管理练习

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值