首页
技术博客
PHP教程
数据库技术
前端开发
HTML5
Nginx
php论坛
新用户注册
|
会员登录
PHP教程
技术博客
编程问答
PNG素材
编程语言
前端技术
Android
PHP教程
HTML5教程
数据库
Linux技术
Nginx技术
PHP安全
WebSerer
职场攻略
JavaScript
开放平台
业界资讯
大话程序猿
登录
极速注册
取消
热门标签 | HotTags
sftp
ftp
server
linux
log4j
debian
shell
dns
crontab
devops
centos7
容器
touch
docker
sudo
交换机
grafana
压力测试
tengine
centos
port
路由器
运维
stdout
负载均衡
apache
4层
grep
fabric
awk
syslog
zsh
服务器
ssh
k8s
kubectl
service
7层
unix
nginx
vagrant
curl
colors
cron
tomcat
jenkins
当前位置:
开发笔记
>
运维
> 正文
Linux学习日记之用户管理详解
作者:手机用户2502855967 | 来源:互联网 | 2017-11-13 17:58
Linux学习日记之用户管理详解--Linux通用技术-Linux技术与应用信息,下面是详情阅读。
作者:秋日惜枫
在Linux系统中,所有的用户和组像一个国家。如果国家要繁荣昌盛的话,需要治理得当,需要有主席或者总统,以及地方官员和老百姓组成。在linux中如果你对安全需求比较苛刻,完全可以限制用户的各种行为,不同用户的权限是不同的。
在linux中系统中,它并不认识帐号名称。它认识的是我们的帐号ID,帐号ID保存在/etc/passwd文件中。我们在登录linux主机时,在输入完帐号和密码时,linux会先查找/etc/passwd文件中是否有这个帐号,如果没有则跳出,如果有的话,他会读取该帐号的user ID和group ID同时该帐号的根目录和shell也读了出来。然后在去核对密码表,在/etc/shadow中找出我们刚刚输入的帐号和userID,核对我们输入密码是否正确。一切正确我们可以登录到当前用户shell。那么,我们首先了解一下用户帐号文件。
1./etc/passwd我们使用more查看一下这个文件
我们首先看第一行root这一行,一共有七项,每一项使用:分开,他们代表的意思如下:
帐号名称:帐号名称由于对应用户ID,这个是系统默认用户root超级管理员,在同一个系统帐号名称是唯一的,长度根据不同的linux系统而定,一般是8位。
密码:由于系统中还有一个/etc/shadow文件用于存放加密后的口令,所以在这里这一项是“x”来表示,如果用户没有设置口令,则该项为空。
用户ID:这个是系统内部用于来识别不同的用户的,不同的用户识别码不同,其中用户ID有以下几种:
0代表系统管理员,如果你想建立一个系统管理员的话,可以建立一个普通帐户,然后将该账户的用户ID改为0即可。
1-500系统预留的ID,500以上是普通用户使用。
组ID:其实这个和用户ID差不多,用来规范群组,他与/etc/group有关。
描述信息:这个字段几乎没有什么作用,只是用来解释这个帐号的意义。
用户根目录:就是用户登录系统的起始目录,用户登录系统后将首先进入该目录。root用户默认的是/root,普通用户的是/home/用户名。
用户登录shell:就是用户登录系统时使用的shell,关于shell我们会在以后专门的研究一下。
2./etc/shadow
在早期的unix操作系统中,用户的帐号信息和口令信息都保存在passwd文件中,尽管系统已经对口令进行了加密,并且以密文的方式保存在passwd文件中,但是由于passwd文件对于系统中的所有用户是可读的,口令比较容易破解,存在较大的安全隐患。现在使用“shadow”文件保存密文的用户口令,使用passwd文件保存用户帐号其它信息。“shadow”文件只有管理员用户才可以读取其中的内容。由于这个文件可能被破解,所以一定不要将该文件内容泄露给他人,保证系统安全。
同样,我们还是分析第一行,一共有九项,分别说明一下:
帐户名称:和passwd对应,和passwd的意思相同。
密码:这才是真正的密码,并且已经加密过了,只能看到一些特殊符号。需要注意的是这些密码很难破解,但是不等于不能。还有密码栏的第一个字符为“*”表示这个用户不用来登录,如果那个用户不想让他登录了,可以在他前面加个星。
上次改动密码的日期:这段记录了改动密码的最后日期,为什么是13798呢?这是因为linux计算日期的方法是以1970年1月1日作为1,1971年1月1日就是366,依次类推到我修改密码的日期表示为13798了。
密码不可被改动的天数:由于害怕密码被人盗取而危害到整个系统的安全,所以安排了这个字段,你必须在这个时间内重新修改密码,否则这个帐号将暂时失效。上面的99999,表示密码不需要重新输入,最好设定一段时间修改密码。确保系统安全。
密码变更期期限快到前的警告期:当帐号的密码失效期限快到时,系统依据这个字段的设定发出警告,提醒用户“再过n天您的密码将过期,请尽快重新设定密码。默认的是七天。
帐号失效期:如果用户过了警告期没有重新输入密码,使得密码失效,而该用户在这个字段限定的时间内又没有向管理员反映,让帐号重新启用,那么这个帐号将暂时失效。
帐号取消日期:这个日期跟第三个字段一样,都是使用1970年以来的日期设定方法。这个字段表示:这个帐号在此字段规定的日期之后将无法再使用。这个字段通常用于收费服务系统中,可以规定一个日期让该帐号不能再使用。
保留:最后一个字段是保留的,看以后有没有新功能加入。
3. /etc/group查看一下这个文件
我们还是分析第一行,一共有四项,依次为:
群组名称:就是群组的名称了。
群组密码:通常不需设定,因为我们很少使用群组登录。不过这个密码也被记录在/etc/gshadow中了。
群组ID:也就是组ID了。
支持帐号的名称:这个群组的所有帐号。如果你想让用户qiuri也属于root这个群组,就在第一行最后加上“,qiuri”注意添加的时候没有空格。
4. adduser添加用户
如果没有特殊的要求,通常我们使用adduser 用户名称直接创建用户帐号。例如我们创建qiuri帐户:
由于一般新创建的帐号都会在刚才我们说的三个文件的最后一行添加一行内容,我们验证一下:
我们使用这条命令是通过/etc/login.defs和/etc/default/useradd这两个默认帐号设定文件来实现创建用户的。
这个文件中我们有必要了解一下,SKEL这个选项,用户的根目录内容是从/etc/skel这个目录下复制过去的。在手动添加用户的时候有用。查看一下这个目录下的内容:
这条命令还有好多的参数举例几个,供大家参考一下:
adduser [-u uid][-g group][-d home][-s shell]
-u:直接给出userID -g:直接给出GID
-d:直接将根目录建立在已存在目录 -s:定义shell
5.passwd设置用户密码
默认的情况下,在添加完用户后并没有设置用户的密码,因此建立的用户帐号即使存在也不能登陆系统。需要使用passwd命令对用户帐号设置密码才可以用于登陆系统。这条命令分为管理员给用户修改密码和用户自己登录系统自己修改密码。
管理员root给用户修改密码,例如:创建用户qiuri,然后设置密码
管理员给用户设置密码以命令passwd [用户名]来设置密码,在输入密码的过程中为了避免输入错误,将连续输入两次。如果两次输入的密码相同,表示输入的密码正确,同时将密码以加密的方式保存到了shadow文件中。设置完以后我们可以使用用户qiuri登录。qiuri用户自己修改一下密码。
linux
安全
写下你的评论吧 !
吐个槽吧,看都看了
会员登录
|
用户注册
推荐阅读
运维
去控件化在线文档处理,推动高效信创办公环境
探讨在线文档处理去控件化的趋势及其对构建高效信创办公生态的影响。 ...
[详细]
蜡笔小新 2024-11-27 17:18:04
docker
重新审视Kubernetes的必要性
近期,我注意到不少人误以为我是Kubernetes的推广者。实际上,我只是分享了一些适合用Kubernetes解决的案例。本文旨在探讨Kubernetes的适用场景,并提供一些替代方案。 ...
[详细]
蜡笔小新 2024-11-27 12:00:04
linux
程序员必备:深入解析分布式文件系统
本文深入探讨了分布式文件系统的核心概念及其在现代数据存储解决方案中的应用,特别是针对大规模数据处理的需求。文章不仅介绍了多种流行的分布式文件系统和NoSQL数据库,还提供了选择合适系统的指导原则。 ...
[详细]
蜡笔小新 2024-11-27 09:49:40
apache
MySQL 安装指南
本文档提供了详细的MySQL安装步骤,包括解压安装文件、选择安装类型、配置MySQL服务以及设置管理员密码等关键环节,帮助用户顺利完成MySQL的安装。 ...
[详细]
蜡笔小新 2024-11-27 09:10:30
linux
使用WinSCP实现两台电脑间高效安全的文件传输
FTP作为一种传统的文件传输协议,广泛用于不同设备间的文件交换。然而,随着网络安全需求的提升及传输效率的要求,选择合适的FTP客户端变得尤为重要。本文将介绍如何利用WinSCP这款强大且安全的工具,实现两台电脑之间的文件高效传输。 ...
[详细]
蜡笔小新 2024-11-26 14:07:18
centos
Minetest 0.4.9 开源游戏在 Ubuntu 下通过 PPA 安装指南
本文介绍了如何在 Ubuntu 系统上安装最新版本的 Minetest 0.4.9,包括添加 PPA、更新软件包列表以及安装过程,适合所有 Ubuntu 及其衍生系统的用户。 ...
[详细]
蜡笔小新 2024-11-27 19:24:25
centos
如何在7贷金融平台完成实名认证?
为了确保投资贷款的安全与便捷,7贷金融平台要求用户进行实名认证。本文将详细介绍7贷金融实名认证的具体步骤及借款流程,帮助用户顺利完成操作。 ...
[详细]
蜡笔小新 2024-11-27 09:04:13
port
Navicat Premium中MySQL用户管理:创建新用户及高级设置
本文作为Navicat Premium用户管理系列的第二部分,主要介绍如何创建新的MySQL用户,包括设置基本账户信息、密码策略、账户限制以及SSL配置等。 ...
[详细]
蜡笔小新 2024-11-26 19:43:05
port
Golang与微服务架构:构建高效微服务
本文探讨了Golang在微服务架构中的应用,包括Golang的基本概念、微服务开发的优势、常用开发工具以及具体实践案例。 ...
[详细]
蜡笔小新 2024-11-26 19:21:09
port
六大Java特性为何应谨慎使用
本文探讨了六项Java特性,它们虽然强大,但在不当使用时可能会给应用程序带来严重问题。文章基于作者Nikita Salnikov Tarnovski多年的应用性能调优经验,提供了对这些特性的深入分析。 ...
[详细]
蜡笔小新 2024-11-26 18:39:40
port
FTX 闪崩,4 小时暴跌 80%,熊市的最后一跌?区块链已死?
FTX 闪崩,4 小时暴跌 80%,熊市的最后一跌?区块链已死? ...
[详细]
蜡笔小新 2024-11-26 17:21:32
port
配置PicGo与Gitee结合Typora打造高效写作环境
本文详细介绍了如何通过PicGo和Gitee搭建个人图床,并结合Typora实现高效的文章撰写。包括创建图床项目、生成访问令牌、安装配置PicGo和Typora等步骤。 ...
[详细]
蜡笔小新 2024-11-26 16:42:35
port
手机遗失时如何保护支付宝与微信账户安全?6大策略确保资金无忧
在手机不慎丢失的情况下,如何有效保护支付宝和微信账户中的资金安全?本文提供六大实用策略,帮助用户在手机丢失后迅速采取行动,防止财产损失。 ...
[详细]
蜡笔小新 2024-11-26 16:34:52
port
优化Selenium并行测试中的AutoIT实例管理
本文探讨了如何在使用Cucumber JVM和Selenium WebDriver进行自动化测试时,有效地管理AutoIT实例,特别是在并行测试环境中处理文件上传的问题。 ...
[详细]
蜡笔小新 2024-11-26 15:30:47
port
深入浅出:Hadoop架构详解
Hadoop作为大数据处理的核心技术,包含了一系列组件如HDFS(分布式文件系统)、YARN(资源管理框架)和MapReduce(并行计算模型)。本文将通过实例解析Hadoop的工作原理及其优势。 ...
[详细]
蜡笔小新 2024-11-26 13:26:40
手机用户2502855967
这个家伙很懒,什么也没留下!
Tags | 热门标签
sftp
ftp
server
linux
log4j
debian
shell
dns
crontab
devops
centos7
容器
touch
docker
sudo
交换机
grafana
压力测试
tengine
centos
port
路由器
运维
stdout
负载均衡
apache
4层
grep
fabric
awk
RankList | 热门文章
1
php中Zend框架的介绍
2
JavaWeb笔记(8):Filter过滤器/ThreadLocal
3
路由网关转发配置
4
H5页面微信自动登录,和微信页面自定义分享样式
5
20155317王新玮《网络对抗技术》实验8 WEB基础实践
6
JavaScript中的基础数据类型
7
面试准备【第一天】
8
yield生成器;raise异常、assert断言;os.system、subprocess执行shell
9
小程序 跳转问题 (来源见注明)
10
MyBATIS_MyBatis 简介
11
两台服务器上SQL Server数据库数据互操作示例
12
力扣刷题之路 1496. 判断路径是否相交 Python解
13
Ubuntu18.04.4TLSServer版本系统安装andUbuntu18.04.4Desktop版本安装
14
Matlab 命令记录
15
ASP.NET,C#,日期格式为什么会自动加入1900-01-01 00:00:00.000到数据库?
PHP1.CN | 中国最专业的PHP中文社区 |
DevBox开发工具箱
|
json解析格式化
|
PHP资讯
|
PHP教程
|
数据库技术
|
服务器技术
|
前端开发技术
|
PHP框架
|
开发工具
|
在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved |
京公网安备 11010802041100号
|
京ICP备19059560号-4
| PHP1.CN 第一PHP社区 版权所有