热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Ubuntu中的用户管理(四)密码管理

密码是Linux安全的重要组成部分,通过这部分的学习,你应该学会怎样为你的Linux系统建立一个密码策略,密码保存在什么地方,怎样为你的用户管理密码等。有效的密码策略是一个好的系统管理计划的重要组成部分。这个策略需要包括以下几点:允许的密码组成和禁止的密码组成修改密码的频率取回或重置丢失的密码用户对密码的操作密码文件是/etc/passwd,它是系统上所有用户的数据库文件。每一行的形式如

密码是Linux安全的重要组成部分,通过这部分的学习,你应该学会怎样为你的Linux系统建立一个密码策略,密码保存在什么地方,怎样为你的用户管理密码等。

有效的密码策略是一个好的系统管理计划的重要组成部分。这个策略需要包括以下几点:

允许的密码组成和禁止的密码组成
修改密码的频率
取回或重置丢失的密码
用户对密码的操作
密码文件是/etc/passwd,它是系统上所有用户的数据库文件。每一行的形式如下:

username:password:uid:gid:gecos:homedir:shell

简要介绍下gecos字段。这个字段是为了记录用户的多样性的信息。例如,用户的全名,办公室的位置,办公室电话,家庭电话,简单备注等。出于安全和隐私上的考虑,这个字段目前已经越来越少的被使用到了。但是,系统管理员要知道这个字段,因为传统的Unix程序例如finger,mail会用到这个字段。因此gecos字段通常被成为finger information field。这个字段是逗号界限格式,可以通过chfn(change finger)命令更改。如果密码字段出现一个星号,那么这个用户将不能登陆Linux系统。系统管理员可以通过修改密码字段或者使用passwd -l命令锁住用户。一些系统用户通常有root权限,因此系统管理员不希望这些用户可以登陆Linux系统,可以通过将这些系统用户的shell设置为sbin/nologin或者bin/false阻止这些账户的登陆。

下面给出/etc/passwd文件的内容形式:

www.linuxidc.com@linuxidc:~$cat /etc/passwd

root:x:0:0:root:/root:/bin/bash

daemon:x:1:1:daemon:/usr/sbin:/bin/sh

bin:x:2:2:bin:/bin:/bin/sh

sys:x:3:3:sys:/dev:/bin/sh

sync:x:4:65534:sync:/bin:/bin/sync

games:x:5:60:games:/usr/games:/bin/sh

man:x:6:12:man:/var/cache/man:/bin/sh

lp:x:7:7:lp:/var/spool/lpd:/bin/sh

mail:x:8:8:mail:/var/mail:/bin/sh

news:x:9:9:news:/var/spool/news:/bin/sh

uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh

cindy:x:1000:1000:cindy,,,:/home/cindy:/bin/bash

……

我们注意到没有一个用户显示了密码,而是在密码字段有一个x。这是因为用户密码是阴影密码(shadow passwords),这属于Linux中的一个安全增强机制。真正的密码保存在文件/etc/shadow中。/etc/shadow文件只对于系统管理员和PAM可读。Ubuntu中自动启用了shadow password。下面给出/etc/shadow文件的内容形式:

www.linuxidc.com@linuxidc:~$sudo cat /etc/shadow

[sudo]password for cindy:

root:$7$h9pRtnF/$Zf8pynVBJ/m.DfAl.Q1lgw8ZCmeGYqKCe/47sNfEV6FUq59UnB1CTcZVr4.7AwtyLpizdnwlqxe0f2J/mD6th.:15536:0:99999:7:::

daemon:*:15453:0:99999:7:::

bin:*:15453:0:99999:7:::

sys:*:15453:0:99999:7:::

sync:*:15453:0:99999:7:::

games:*:15453:0:99999:7:::

man:*:15453:0:99999:7:::

lp:*:15453:0:99999:7:::

cindy:$6$/IMKHjoh$osdeLeLwe3f11QXlRts2huVISmSKUpTyaDeXihtYV39.7OAqakAeLda4WAWXpIeeopBmrU/zCDaKhp/aL1gqW1:15536:0:99999:7:::

……

冒号分开的各个字段的解释:

第1个字段是用户名。
第2个字段是编码后的密码。
第3个字段是上次修改密码的时间,这个时间是从1970年1月1日起计算。这个日子在UNIX领域被成为epoch。
第4个字段是再过多少天密码才可以被再次修改的时间(避免修改密码到新密码后快速修改会原始密码)
第5个字段是再过多少天密码必须被再次修改的时间。
第6个字段是密码过期前多少天,用户会收到警告。
第7个字段是密码过期后多少天,用户会被禁用。
第8个字段是从1970年1月1日起,该帐号disabled的天数。
第9个字段为保留字段。
需要注意的是密码过期日期和警告在Ubuntu中是默认禁用的。如果需要启用相应的密码策略,需要系统管理员建立相应的密码策略。etc/shadow的权限时600,常规用户不可读。

系统管理员可以手动编辑/etc/shadow文件或者使用chage命令更改密码规则(详细信息请参考shadow和chage的man页)。

系统管理员可通过命令chpasswd批量修改用户密码。命令接受的输入为用户名/密码对:

sudo chpasswd username:password

可以通过重定向文件输入来批量工作。此外,Ubuntu还提供了newusers命令,批量增加文本文件中的用户,并为用户分配群组,分配/home目录等。


推荐阅读
  • 成功安装Sabayon Linux在thinkpad X60上的经验分享
    本文分享了作者在国庆期间在thinkpad X60上成功安装Sabayon Linux的经验。通过修改CHOST和执行emerge命令,作者顺利完成了安装过程。Sabayon Linux是一个基于Gentoo Linux的发行版,可以将电脑快速转变为一个功能强大的系统。除了作为一个live DVD使用外,Sabayon Linux还可以被安装在硬盘上,方便用户使用。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • imx6ull开发板驱动MT7601U无线网卡的方法和步骤详解
    本文详细介绍了在imx6ull开发板上驱动MT7601U无线网卡的方法和步骤。首先介绍了开发环境和硬件平台,然后说明了MT7601U驱动已经集成在linux内核的linux-4.x.x/drivers/net/wireless/mediatek/mt7601u文件中。接着介绍了移植mt7601u驱动的过程,包括编译内核和配置设备驱动。最后,列举了关键词和相关信息供读者参考。 ... [详细]
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
  • Ubuntu安装常用软件详细步骤
    目录1.GoogleChrome浏览器2.搜狗拼音输入法3.Pycharm4.Clion5.其他软件1.GoogleChrome浏览器通过直接下载安装GoogleChro ... [详细]
  • 本文介绍了Linux Shell中括号和整数扩展的使用方法,包括命令组、命令替换、初始化数组以及算术表达式和逻辑判断的相关内容。括号中的命令将会在新开的子shell中顺序执行,括号中的变量不能被脚本余下的部分使用。命令替换可以用于将命令的标准输出作为另一个命令的输入。括号中的运算符和表达式符合C语言运算规则,可以用在整数扩展中进行算术计算和逻辑判断。 ... [详细]
  • 本文讨论了在Linux系统中,使用chown命令将django项目目录下的static目录的拥有者从root改为eureka的问题。作者尝试了多种命令,包括chown和sudo chown等,但都没有成功修改拥有者。文章提供了相关目录的权限信息,并补充了项目所在磁盘和操作系统的信息。 ... [详细]
  • 本文总结了Linux下多线程执行shell脚本的4种方法,包括切换到工作目录执行、使用绝对路径执行、直接使用bash或sh执行。同时介绍了为什么需要加上"./"来执行脚本的原因。 ... [详细]
  • Vagrant虚拟化工具的安装和使用教程
    本文介绍了Vagrant虚拟化工具的安装和使用教程。首先介绍了安装virtualBox和Vagrant的步骤。然后详细说明了Vagrant的安装和使用方法,包括如何检查安装是否成功。最后介绍了下载虚拟机镜像的步骤,以及Vagrant镜像网站的相关信息。 ... [详细]
  • STM32与FPGA的对比及学习建议
    本文对比了野火STM32F103指南针板和Xilinx的PYNQ-Z2板(ZYNQ-7020),介绍了野火STM32F103指南针板的学习资料和讲解视频的详细程度,建议初学者学习野火的资料。同时,介绍了STM32开发所用的Keil程序和C指针的重要性。对于ZYNQ-7020的开发,提到了其自带的Linux、Ubuntu18.4系统以及使用SD卡烧入镜像的方法。 ... [详细]
  • 2016 linux发行版排行_灵越7590 安装 linux (manjarognome)
    RT之前做了一次灵越7590黑苹果炒作业的文章,希望能够分享给更多不想折腾的人。kawauso:教你如何给灵越7590黑苹果抄作业​zhuanlan.z ... [详细]
  • Windows7企业版怎样存储安全新功能详解
    本文介绍了电脑公司发布的GHOST WIN7 SP1 X64 通用特别版 V2019.12,软件大小为5.71 GB,支持简体中文,属于国产软件,免费使用。文章还提到了用户评分和软件分类为Win7系统,运行环境为Windows。同时,文章还介绍了平台检测结果,无插件,通过了360、腾讯、金山和瑞星的检测。此外,文章还提到了本地下载文件大小为5.71 GB,需要先下载高速下载器才能进行高速下载。最后,文章详细解释了Windows7企业版的存储安全新功能。 ... [详细]
  • 本文介绍了在Android Studio中使用命令行build gradle的方法,并解决了一些常见问题,包括手动配置gradle环境变量和解决External Native Build Issues的方法。同时提供了相关参考文章链接。 ... [详细]
  • 本文介绍了在Ubuntu系统中清理残余配置文件和无用内容的方法,包括清理残余配置文件、清理下载缓存包、清理不再需要的包、清理无用的语言文件和清理无用的翻译内容。通过这些清理操作可以节省硬盘空间,提高系统的运行效率。 ... [详细]
  • 本文介绍了在Ubuntu 11.10 x64环境下安装Android开发环境的步骤,并提供了解决常见问题的方法。其中包括安装Eclipse的ADT插件、解决缺少GEF插件的问题以及解决无法找到'userdata.img'文件的问题。此外,还提供了相关插件和系统镜像的下载链接。 ... [详细]
author-avatar
mobiledu2502927147
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有