时间:2020-03-13来源:电脑系统城作者:电脑系统城
本篇文章主要讲Linux系统下用户和组的概念,还有添加用户和组,修改用户和组的基本操作,会涉及不少与之相关的配置文件与命令的介绍,几乎所有
首先,简单提下概念,用户是操作系统的使用者,也是系统进程的所有者,也就是说其实操作系统是给一堆人使用的,就拿大家都熟悉的Windows操作系统来说,我们一般只看得见自己一个用户,或是后来又创建的来宾用户,其实还有许多不需要登陆的系统用户,如下图
他们的作用很明显,运行不同的进程,来提供相应的服务,支持程序的运行。
然后用户组的话,就是一堆用户的集合。是为了方便管理某一堆用户的权限。举个例子来理解吧,假设我在跟一个团队工作。我写了段代码,别人也写了段代码,那现在要一起调试了,结果我的代码文件创建者是我,其他人没权限运行,另一段代码文件创建者是另一个人,也没给其他人权限,那还要一个个文件改权限么,所以一个组就能避免这个问题。
一个用户可以属于多个组,然后就有主组与附加组之分,这个简单了解下就行,用户和组的概念就这些,下面讲对他们的操作
相关配置文件有/etc/passwd、/etc/shadow、/etc/default/useradd、/etc/login.defs ,下面结合具体命令一块讲下
1. useradd、usermod和userdel命令,他们分别用来添加、修改、删除用户,首先看下添加用户的例子
useradd 用户名 -m -p 密码 -s SHELL类型 -u UID号 -g GID号或组名
简单说下:-m是创建家目录,-p后面跟密码,创建用户的时候就设好了密码,-s选择用户使用的SHELL类型,-u设置用户ID号,-g设置主组的ID,-G后面跟要加的附加组名或组ID
id root
2. 然后可以用下面的命令查看用户是否创建成功
cat /etc/passwd
它会输出passwd文件内容,创建成功的话,输出的最后一行有你刚创的用户名,如下图是我刚创建的用户test4
所以 /etc/passwd 文件也知道了,他是存放用户信息的,它的格式如下
用户名:密码:用户id:主组id:用户详细信息:家目录:shell类型
3. 根据上面文件格式,可以发现用户信息那栏我们还不知道怎么改,最直接的可以在passwd文件里改,格式如下
全名,工作地址,移动电话,家庭电话
这是一种方法,当然也可以用chfn命令解决,如下所示
再介绍一个命令吧,除了直接用cat /etc/paswd查看用户信息,其实还可以用finger命令,如下图所示
是不是更直观,当然还有getent passwd等价于cat /etc/passwd,vipw等价于vi /etc/passwd,这两个也可以了解下
4. 好的,创建用户完了,但之前设的密码太简单了现在要修改了怎么办,可以用usermod解决大部分问题,如下所示
usermod 用户名 -p 新密码
用法跟useradd相似,可选项也都差不多,所以不多提了,介绍另一个可以改用户密码的命令passwd,用法如下
passwd 用户名
那怎么看密码是不是改了呢,用下面的命令可以查看
cat /etc/shadow
下图是结果,不过看到的是经过SHA512算法加密后的密码,但确实是改了。
如果锁定的话密码会是两个!!
所以 /etc/shadow 目录就是存放用户密码相关信息的地方,当然改这个文件也能得到改密码的目的,用vim编辑文件内容即可,当然涉及密码只有root用户才有查看修改这个文件的权限,他的文件格式如下:
用户名:密码:最后一次更新密码的时间:最短可以隔几天改一次密码(改密码间隔时间):隔多少天必须改密码(密码过期):提前多少天提醒密码过期:过渡期(密码过期后还能撑几天):账户过期时间(不同于密码过期,账号过期就没有这个帐号了,更别说密码了):这里是预留给以后用的,现在没什么用
这个文件会比之前的passwd更重要也更有用,大家多留意下
5. 既然对密码有这么多的配置,那么就有专门的命令可以设置,chage命令,专门负责密码期限的相关设置,用法如下
6. 最后就是删除用户的操作了,同样在passwd文件里可以改,把他那栏信息都删了就行,但是同时得在shadow文件里也把他删了,这种方法有弊端,你可以进到/home目录下可以发现用户的家目录还在,所以还得删除用户的家目录下。当然可以用userdel命令删除用户就比较方便,如下所示
userdel -rf 用户名
7. 下面讲下还没提过的 /etc/login.defs文件吧,它是控制新建默认用户的配置文件。默认用户的话,useradd 后面跟用户名加 -D 选项就能创建,那它又是怎么配置默认用户的呢,那就直接看下它的内容
这就是它的文件内容,虽然每个变量设置前都有说明,不过我还是简单讲下吧,没理解再看文件里的说明吧
8. 现在就只有 /etc/default/useradd 文件了,它的作用跟上面login.defs文件差不多,不过两者既有联系也有区别(等下会结合起来细讲),login.defs 文件针对的是用户,而现在讲的这个文件针对的是 useradd 命令,看它的路径就明白,是useradd的默认配置,看下他的文件内容
好像看不出太多,那就用之前学过的whatis配合man命令查看他的帮助吧,来看下结果,我直接把相关部分截出来了
现在这个文件的内容可以理解了,顺便可以看下他跟login.defs文件的关系了:
好了用户就介绍到这了,下面介绍组了
组的话,也有添加,修改和删除等操作,对应groupadd、groupmod、groupdel三个命令,相关配置文件有这些/etc/group、/etc/gshadow,下面来看下
1. groupadd命令,创建一个新的组,用法如下
groupadd 组名 -g GID组号 -p 密码
2. 好了创建完一个组有怎么查看呢,在 /etc/group 这文件里,它里面有组的信息,同样除了cat能查看,getent group也能实现查看,后面getent我就不多提了,只是多个方法,没必要掌握。结果如下图所示
testgrp就是我新建的组,至于这个文件的内容还是挺简单的,格式如下:
组名:密码(显示为x,安全起见):组号GID:组里面的用户
3. 好了组建完了,现在要怎么修改组呢,有多多个命令可以改,不过各有千秋。
groupmod 组名 -n 新组名 -g 新ID -p 新密码
gpasswd -a 用户名 组名
-r 选项可以去掉组的密码,这个就了解这两个些即可,具体可以查帮助前篇笔记讲过
groupmems -a 用户 -g 组
删除用户的话用 groupmems -d 用户 -g 组 可实现,groupmems -l -g 组 可以查看该组的成员。这个命令掌握这三个用法差不多了
4. 最后又是怎么删除的问题了,groupdel命令,用法如下
groupdel 组名
5. 就还剩 /etc/gshadow 这个文件没讲,这个文件存放的是安全组信息,所谓安全就是只有root用户能看,看下他的文件格式吧
组名:密码:管理员:组员
6. 最后了解一下吧,就是加密算法函数crypt(),密码就是靠这个函数加密的,用下面这个命令可以查看帮助
man 3 crypt
这是我截取的重要部分,下面id号对应一类加密算法,这样密码是哪种加密算法加密的就不用看login.defs文件了,看shadow的时候密码开头$1就是MD5算法,ok,这个理解就行,其他就先不讲了
pwck和grpck,分别是检查passwd文件和group文件格式的,可以自行体验
newusers f1
newusers命令批量创建用户使用的,f1就是我按passwd文件格式输入的要创建的用户的信息,如下图所示
可以看下passwd文件,没问题。再看下登陆界面,能登陆么,密码x输入没问题,好了这就是批量操作
对用户和组的管理介绍到此为止,希望对读者有帮助
2024-07-18
Centos 7 二进制安装配置 MariaDB数据库2024-07-18
Centos7默认firewalld防火墙使用命令大全2024-07-07
四种执行python系统命令的方法常用权限linux系统内有档案有三种身份 u:拥有者 g:群组 o:其他人这些身份对于文档常用的有下面权限:r:读权限,用户可以读取文档的内容,如用cat,more查看w:写权限,用户可以编辑文档x...
2024-07-07
然而,如果我们遵循通常的 WordPress 最佳实践,这些安全问题可以避免。在本篇中,我们会向你展示如何使用 WPSeku,一个 Linux 中的 WordPress 漏洞扫描器,它可以被用来找出你安装...
2024-07-03