linux帐户安全管理与技巧

实验内容和步骤

任务一:建立与删除普通用户账户,管理组

    管理帐户的俱行工具及功能如下:

    useradd [] 添加新用户

    usermod [] 修改已存在的指定用户

    userdel [-r] 删除已存在的指定帐户,-r参数用于删除用户自家目录

    groupadd [] 加新组

    groupmod [] 修改已存在的指定组

    groupdel 删除已存在的指定组

1)创建一个新用户user1

    useradd user1

    查看用户是否创建成功

2)创建一个新组group1

    groupadd group1

3)创建一个新用户user2并将其加入用户组group1中

    useradd -G group1 user2

4)创建一个新用户user3,指定登录目录为/www,不创建自家用户目录(-M)

    useradd -d /www -M user3

5)将用户user2添加到附加组group1中

    usermod -G group1 user1

    至此,group1组中有user1,user2两个用户,用命令查看/etc/group文件如下图:

(注:用户user3不属于组group1中的用户)

6)删除用户user3,用户uers3从用户组中消失

    userdel user3      

 7)删除用户user2,同时删除自家目录   

userdel -r user2

 8)删除组group1,则组group1中的用户则被分配到其自己分配的私有组中。

 groupdel group1

任务二:用户口令管理与口令时效管理

(1)passwd命令

    passwd命令用来设置用户口令,格式为:passwd [] []

    用户修改自己的用户密码可直接键入passwd,若修改其他用户密码需加用户名。超级用户还可以使用如下命令进行用户口令管理:

    passwd -l //禁用用户帐户口令

    passwd -S //查看用户帐户口令状态

    passwd -u //恢复用户帐户口令

    passwd -d //删除用户帐户口令

    在创建完用户user1后,没给用户passwd口令时,账户默认为禁用状态:

 1. 给用户user1创建口令,设置为:111111

  passwd user1   

接下来我们再次查看user1状态时,则为如下图所示:

   密码已经设置,且为MD5加密

2. 禁用账户user1

    passwd -l user1

3. 恢复账户user1的账户口令:   

   passwd -u user1

 4. 删除用户账户口令   

   passwd -d user1

 用户user1的密码即为空。

(2)chage命令

    口令时效是系统管理员用来防止机构内不良口令的一种技术。在Linux系统上,口令时效是通过chage命令来管理的,格式为:chage []

    下面列出了chage命令的选项说明:

    -m days: 指定用户必须改变口令所间隔的最少天数。如果值为0,口令就不会过期。

    -M days: 指定口令有效的最多天数。当该选项指定的天数加上-d选项指定的天数小于当前的日期时,用户在使用该帐号前就必须改变口令。

    -d days: 指定从1970年1月1日起,口令被改变的天数。

    -I days: 指定口令过期后,帐号被锁前不活跃的天数。如果值为0,帐号在口令过期后就不会被锁。

    -E date: 指定帐号被锁的日期。日期格式YYYY-MM-DD。若不用日期,也可以使用自1970年1月1日后经过的天数。

    -W days: 指定口令过期前要警告用户的天数。

    -l: 列出指定用户当前的口令时效信息,以确定帐号何时过期。

    例如下面的命令要求用户user1两天内不能更改口令,并且口令最长的存活期为30天,并且口令过期前5天通知用户

    chage -m 2 -M 30 -W 5 user1

    可以使用如下命令查看用户user1当前的口令时效信息:chage -l user1

任务三:PAM可插拔验证模块

    PAM(Plugable Authentication Module,可插拔验证模块)是由Sun提出的一种认证机制。管理员通过它可以灵活地根据需要给不同的服务配置不同的认证方式而无需更改服务程序,同时也便于向系统中添加新的认证手段。不少应用软件都可以与PAM进行集成,当然,操作系统的登录验证过程也可以通过对PAM进行配置来进行。如指定密码复杂性、指定用户试图登录的失败次数等,以下列出对这些账号的安全性配置。

1. 指定密码复杂性

    修改/etc/pam.d/system-auth配置:(注意:在root用户下进行,其余用户对这个文件只有读的权限)

    vi /etc/pam.d/system-auth

    限制密码最少有:2个大写字母,3个小写字母,3个数字,2个符号

    文件中有一行为:

    password requisite pam_cracklib.so try_first_pass retry=3

    在其后追加如下参数:

    ucredit=-2 lcredit=-3 dcredit=-3 ocredit=-2

2. 验证时若出现任何与pam_tally有关的错误则停止登录

    auth required pam_tally.so onerr=fail magic_root

3. 账号验证过程中一旦发现连续5次输入密码错误,就通过pam_tally锁定此账号600秒

    account required pam_tally.so deny=5 lock_time=600 magic_root reset

 分析与思考

1)思考还有哪些加强linux账户安全的管理方法?

1.引导程序安全
Linux系统的root密码是很容易破解的,当然前提是你没有设置引导程序密码,如GRUB或LIlLO,为了防止通过引导程序破译root密码,强烈建议设置GRUB或LILO的引导密码,可以编辑其配置文件/etc/grub.conf或/etc/lilo.conf,设置password参数。
2.不安全权限设置
大家常见的Linux下文件权限是r w x,其实还有一种权限叫s,如果给某个文件赋予的s权限,那么这个文件在执行的时候就会拥有相应宿主用户或宿主组用户的权限,例如:
#chmod u+s testfile
#ls -la testfile
rwsr----- root root 10 testfile
这样,当这个文件被其它用户执行的时候,此用户就具有了此文件宿主用户root的对testfile的执行权限。类似,当文件的宿主组具有s权限后,执行此文件的用户就具有了此文件宿主组用户对此文件的权限,这是相当危险的。
大家可以试想下,如果命令chmod的文件被赋予了s权限,那么其它用户还有什么事情是不能做的呢?那它就可以更改任何文件的权限了,当然,s权限需要和x权限结合使用,没有x权限的s权限是没有任何意义的。

3.自动注销
当某个用户使用服务器后忘记注销,也是很危险的事情,此时,管理员可以设
置/etc/profile文件的timeout参数,当用户一段时间不做任何操作时,系统自动注销此用
4.设置口令复杂度.
为了防止系统用户口令过于简单而被破译,可以编辑/etc/login.defs文件, 设置系统用
户令复杂度,例如口令最长,最短,过期时间等。
5.禁止不必要用户登陆系统
为了防止其它非系统用户登陆系统,可以在添加用户时,赋予此用户不存在的主目录和
不存在的shell环境,当然,最好还更改/etc/passwd和/etc/shadow两个文件的访问权限,
使之后root用户可以访问。

2)比较一下linux账户跟unix账户管理的异同。
Unix

作为一个操作系统,Unix主要用于服务器、工作站,也可以用于个人电脑。它在创建互联网,创建计算机网络或者客户端,服务器模型方面发挥非常重要的作用。

Unix系统支持多任务,与Multics对比控制简单、所有数据都纯文本形式存储、保存单根文件、可以同时访问多个账户。

Linux

Linux的基石就是Unix,它基于Unix的基本特性以及POSIX和Single UNIX Specification的标准。

Linux系统也支持多任务,程序可能由一个或者多个进程组成,每个进程可能有一个或者多个进程;多用户,它可以运行多个用户程序、个人账户受适当权限保护、所以账目已经精确定义了系统控制权。

心得体会

  通过这次实验让我掌握了linux管理账户的基本命令,了解了linux用户管理的一般原则,收获很大。

posted @ 2021-09-13 23:08  帮大忙了  阅读(253)  评论(0编辑  收藏  举报