linux初学者-用户管理篇
linux的用户管理是非常以后工作中重要的一部分,也是linux系统安全的防线。
1、用户理解
那么到底什么是用户呢?用户就是系统使用者的身份。
用户是以怎样的方式储存在计算机中的呢?在系统中用户存储为若干窜字符和若干个系统配置文件。
在linux系统中,用户的信息储存在"/etc/passwd"文件下,如下图所示,"tcpdump:x:72:72::/:/sbin/nologin"的排列顺序为"用户:密码:uid:gid:说明:家目录:用户使用的shell"。
用户的认证信息即密码等储存在"/etc/shadow"文件下,如下图,"tcpdump:!!:16261::::::"的排列顺序为"用户:密码:最后一次密码修改该时间:最短有效期:最长有效期:警告期:非活跃期:帐号到期日"。
用户的组认证信息储存在"/etc/group"文件下,如下图,"slocate:x:21:"的排列顺序"组名称:组密码:组id:附加"。
另外,还有一些文件储存着用户的信息,"/etc/gshadow"储存着组认证信息,"/home/username"是用户家目录,"/etc/skel/.* "是用户的配置文件等等。
2、用户的管理
管理用户的过程包括用户的建立、删除,组的建立、删除,用户的查看,用户信息的修改等。
2.1、用户的查看
在linux系统中,一般可以直接输入命令"id username"来查看指定用户的id信息,如下图所示,查看用户"student"的用户信息,可以看到"uid""gid"组和附加组信息。
2.2、用户的建立与删除
在系统中,用户的建立使用的是"useradd"命令,如下图,用命令直接建立一个名为"jerry"的用户,并用"id"来查看"jerry"用户的信息。
在建立用户时,加上不同的参数就可以指定所建用户不同的信息,"-u"是指定用户uid,"-g"指定用户初始组信息,但是这个组必须已经存在,"-G"指定附加组,这个组也必须存在,"-c"是添加用户说明,"-d"指定用户家目录,"-s"设置用户所使用的shell。
上图就是利用参数建立了一个"uid"是1111,"gid"是21,附加组是"72",用户说明是"student study",家目录是"/home/assassinator",使用"/bin/bash"的一个普通用户we。
在删除用户时,需要输入"userdel -r username",-r表示删除用户信息及用户的系统配置,在删除用户时是必须加上的。例如删除之前建立的用户"jerry"。
2.3、组的建立与删除
用户组的建立是通过"groupadd groupname"来实现的,加了参数"-g"后可以指定组的"gid",如下图建立一个"gid"为8888,组名字为"xian"的组。
在删除用户组时,可以直接输入命令"groupdel groupname"来删除,如删除刚才所建立的组"xian"。
2.4、用户信息的更改
用户在建立之后,所有的信息都是可以更改的,例如刚才所建立的新用户"we",可以"usermod -l wea we"来将"we"的用户名改为"wea",用"usermod -u 3333 wea"将用户的"uid"改为"3333",用"usermod -g 8888 wea"来改变用户的组信息。
又例如参数"-G"可以更改附加组,参数"-aG"可以添加附加组,参数"-c"可以更改用户说明,参数"-d"可以更改用户家目录的指定,"-md"可以更改家目录指定及家目录名称,"-s"可以更改shell,参数"-L"是用来冻结帐号的,参数"-U"来解冻帐号等等。
3、用户权力的下放
在系统中,超级用户可以进行系统的所有操作,但是普通用户因为有权力的限制,有时候无法进行操作,例如"wea"用户想在"/root"下建立一个目录,如下图,这样的操作是没有权限的,这时就需要超级用户对"wea"进行权力下放。
在超级用户登陆下执行"visudo"进入编辑/etc/sudoers模式,如下图,在其中对内容进行添加,格式是:“获得权限用户 主机名称=(获得到的用户身份)命令”,如果需要免密则要在命令前加上"NOPASSWD",如上述操作,就需要添加"wea client=(root) NOPASSWD: /usr/bin/mkdir"。
然后输入命令"sudo mkdir /root/test"即可在"/root"下建立一个名为"test"的目录。
4、用户认证信息
用户的认证信息即密码信息设置可以通过"chage"命令来实现,加入参数"-d",表示用户密码组后一次修改的时间,如果设定成0,用户登陆系统后必须修改自己的密码,参数"-m"表示最短有效期,"-M"表示最长有效期,"-W"表示警告期,"-I"表示用户非活跃天数,"-E"
表示帐号到期日。
以上就是在linux系统中用户管理的一些常用方式。
linux初学者-用户管理篇的更多相关文章
- linux初学者-网络管理篇
linux初学者-网络管理篇 linux学习中,网络管理是非常重要的一个内容,本篇将会介绍一些ip.网关.DNS配置的一些基本内容. 1.ip配置 1.1.ip查询 在linux系统中一般可以使用& ...
- linux初学者-虚拟机管理篇
linux初学者-虚拟机管理篇 之前已经介绍过,在linux系统的学习中,一般需要在虚拟机中进行操作,但是虚拟机是如何安装的呢?又是如何管理的呢?下文将对虚拟机的安装和管理进行一个简要的介绍. 1.虚 ...
- linux初学者-文件管理篇
linux初学者-文件管理篇 linux系统的所有东西都是以文件的形式存储在计算机中的,所以linux系统中对文件的管理非常重要.以下介绍一些文件管理的常用方法. 1.文件的建立 文件的建立或者修改文 ...
- linux初学者-MariaDB图形管理篇
linux初学者-MariaDB图形管理篇 MariaDB不仅有文本管理方式,也有借助工具的图形管理方式.其图形管理的工具是"phpmyadmin".这个软件可以在"p ...
- linux初学者-软件安装与管理篇
linux初学者-软件安装与管理篇 在linux的学习和工作中需要安装许多的软件.在redhat的linux操作系统下,软件一般都是rpm格式的.以下将介绍一些软件安装和管理的内容. 1.软件名称 在 ...
- linux初学者-pxe装机篇
linux初学者-pxe装机篇 PXE的网络装机是客户机从自己的网卡启动,向本网络中的DHCP服务器索取ip,并从本网络的TFTP服务器中索取启动文件进行装机.此装机需要kickstart.tftp. ...
- linux初学者-SElinux篇
linux初学者-SElinux篇 SElinux是强制访问控制(MAC)安全系统,是linux历史上最杰出的新安全系统.对于linux安全模块来说,SElinux的功能是最全面的,测试也是最充分的, ...
- linux初学者-mail篇
linux初学者-mail篇 邮件是在生活中比较常用的一个工具,在linux系统中的邮件也是.在linux中,邮件的发送所用的服务时postfix,邮件的接收所用的服务是pop(110端口).ima ...
- linux初学者-Apache篇
linux初学者-Apache篇 Apache提供了超文本传输协议http,httpd是Apache超文本传输协议的主服务器.下文将对httpd的安装和配置进行简单的叙述. ...
随机推荐
- Socket2实现tcp端口扫描
主要的界面如下: 主要代码如下: //对于每一个线程,传过去的参数 typedef struct ThreadParamStruct { CString strIP; //要扫描的IP地址 UINT ...
- SYN591-B型 转速表
SYN591-B型 转速表 光电转速表数显转速表智能转速表使用说明视频链接: http://www.syn029.com/h-pd-249-0_310_44_-1.html 请将此链接复制到浏览 ...
- 12 jQuery的ajax
什么是ajax AJAX = 异步的javascript和XML(Asynchronous Javascript and XML) 简言之,在不重载整个网页的情况下,AJAX通过后台加载数据,并在网页 ...
- Storm 学习之路(六)—— Storm项目三种打包方式对比分析
一.简介 在将Storm Topology提交到服务器集群运行时,需要先将项目进行打包.本文主要对比分析各种打包方式,并将打包过程中需要注意的事项进行说明.主要打包方式有以下三种: 第一种:不加任何插 ...
- Java NIO: Non-blocking Server 非阻塞网络服务器
本文翻译自 Jakob Jenkov 的 Java NIO: Non-blocking Server ,原文地址:http://tutorials.jenkov.com/java-nio/non-bl ...
- 【设计模式】行为型09访问者模式(Visitor Pattern)
学习地址:https://blog.csdn.net/u012124438/article/details/70537203(参考了很多博客,只有这个讲明白了核心点) 访问者模式(Visitor P ...
- ASP.NET Core on K8S学习初探(3)部署API到K8S
在上一篇<基本概念快速一览>中,我们把基本的一些概念快速地简单地不求甚解地过了一下,本篇开始我们会将ASP.NET Core WebAPI部署到K8S,从而结束初探的旅程. Section ...
- springboot+redis+Interceptor+自定义annotation实现接口自动幂等
前言: 在实际的开发项目中,一个对外暴露的接口往往会面临很多次请求,我们来解释一下幂等的概念:任意多次执行所产生的影响均与一次执行的影响相同.按照这个含义,最终的含义就是 对数据库的影响只能是一次性的 ...
- asp.net core 系列之Dependency injection(依赖注入)
这篇文章主要讲解asp.net core 依赖注入的一些内容. ASP.NET Core支持依赖注入.这是一种在类和其依赖之间实现控制反转的一种技术(IOC). 一.依赖注入概述 1.原始的代码 依赖 ...
- MyBatis从入门到精通(六):MyBatis动态Sql之if标签的用法
最近在读刘增辉老师所著的<MyBatis从入门到精通>一书,很有收获,于是将自己学习的过程以博客形式输出,如有错误,欢迎指正,如帮助到你,不胜荣幸! 本篇博客主要讲解如何使用if标签生成动 ...