linux账号与身份管理
发布日期:2021-09-30 04:14:40 浏览次数:2 分类:技术文章

本文共 3588 字,大约阅读时间需要 11 分钟。

Linux账号与身份管理

 

1.      linux账号与用户组

用户标识符:UID与GID

虽然我们平时在登录linux主机的时候,会输入账号,但是linux并不会直接认识我们的账号,它认识的仅仅是ID。ID是一串数字,存储在/etc/passwd中。而账号仅仅是为了方便我们记忆而已。

Linux一共有两种ID,即UID和GID,UID是用户身份的标识,GID是群组的标识,它存在/etc/shadow中。

 

2.      用户账号

当我们登录主机时,会出现一个login界面提示我们登录,这时输入我们的账号和密码后,linux会做什么呢?

1)     先查找/etc/passwd看是否有这个账号,如果没有则退出,反之读出该用户的UID,GID,shell以及家目录等信息。

2)     Linux进入/etc/shadow中查找对应的账号与UID,判断用户输入的密码与里面的密码是否一致。

3)     如果一切相符,则进入shell的掌控阶段。

 

由上面的流程可以得知,与账号有关的最重要的两个文件就是/etc/passwd以及/etc/shadow,一个管账号,一个管密码。

 

/etc/passwd文件结构

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

   huli:x:500:500:huli:/home/huli:/bin/bash

   其中每一行代表一个字段,有一些账号是系统正常运行所必须得,我们称它们为系统账号,每一行共有7个字段,使用’:’分隔开

1)用户名称

2)密码,一般是一个’x’,由于安全起见,现在的版本中密码都移到了/etc/shadow中。

3)UID

4)GID

5)账户描述信息

6)用户家目录

7)该用户默认的shell

注意:当UID是0时,表示这个账户是系统管理员,因此,要使一个账号变成系统管理员,可以将它的UID设成0。

 

/etc/shadow文件结构

root:$1$3FuRYPZx$CxcC2ghSgPjp7MzbWAal:15251:0:99999:7:::

同样,shadow的每一行也代表一个账户,也是以’:’分隔,但是它有9个字段。

1)用户名称,与passwd对应

2)密码:这是真正的密码,经过加密,如果密码栏的第一个字符是’*’或者是’!’,表示这个账号并不会用来登录。

3)最近更改密码的日期,这是距离1970年1月1日的天数。

4)密码不可更改的天数:这个字段表示这个账号的密码需要经过几天后才能更改,如果是0的话,表示密码随时可以更改。

5)密码需要重新更改的天数:如果为99999的话,表示密码不需要更改

6)密码更改期限前的警告期限

7)密码过期的宽限时间:如果密码失效了,还可以用这个密码在这个字段设置的天数内进行登录,如果在这个天数后还没有更改密码,那么账号将无法再进行登录。

8)账号失效日期,这个字段是自1970年以来的总日数。

9)保留

 

有效用户组与初始用户组

初始用户组:新增加一个账户时的默认用户组

有效用户组:新建立一个文件时,文件所属的用户组

可以使用groups来查看当前用户所属的用户组,在输出地消息中,第一个输出的用户组就为有效用户组。我们可以使用newgrp来改变我们的有效用户组。

 

账号管理:useradd、相关设置文件、passwd、usermod、userdel

Useradd username

参数:

-u : 后面接UID,是一组数字。直接给这个账号制定一个特定的UID

-g : 后面接的用户组名称就是上面提到的初始用户组。

-G: 后面接的用户组名称是这个账号还可以支持的用户组

-M: 强制,不要建立用户家目录。

-m : 强制,要建立用户家目录。

-c : 这个是/etc/passwd第5栏的说明内容。

-d : 指定某个目录称为家目录,而不要使用默认值。

-r : 建立一个系统账号,这个账号的UID会有限制(/etc/login.defs)

-s : 使用的默认shell

这个命令可能会更改的文件有:

/etc/passwd

/etc/shadow

/etc/group

/etc/gshadow

/home/username

 

这个命令参考的文件有:

/etc/default/useradd

/etc/login.defs

/etc/skel/*

 

   passwd(更改密码)

   passwd [-lunxwS] username

   参数:

   -l : 将username账号的密码锁住(lock),在/etc/shadow内的密码栏修改。

   -u: 将-l的lock解开

   -n: 后面接天数,/etc/shadow内的第四栏

   -x: 后面接天数,/etc/shadow内的第五栏

   -w: 后面接天数,/etc/shadow内的第六栏

   -S: 显示当前这个username的相关信息

   注意:所有的用户均可使用passwd来修改自己的密码,但只有root可以使用该命令修改别人的密码

 

   usermod(用于修改账号相关的信息)

   usermod [-cdegGlsuLU] username

   参数:

   -c  : 后面接账号的说明,/etc/passwd的第5栏

   -d  : 后面接账号的家目录,/etc/passwd的第6栏

   -e  : 后面接日期,格式是YYYY-MM-DD,/etc/shadow的第8栏

   -g  : 后面接group name,/etc/passwd的第4栏

   -G  : 修改该用户所支持的用户组,修改的是/etc/group

   -l   :后面接账号名称,/etc/passwd的第一栏

   -s   :后面接shell的实际文件,如果/bin/bash

   -u   :后面接UID,/etc/passwd第3栏

   -L   :暂时冻结用户,即修改/etc/shadow的密码栏

   -U   :将/etc/shadow密码栏的!去掉,解冻。

 

   Userdel(删除账户)

   Userdel [-r] username

   参数:

   -r : 连同用户的家目录一起删除

 

   切换用户身份(su,sudo)

   su可以切换到root身份,不过需要root密码。如果直接使用su,那么MAIL/PATH/USER等环境变量还是原来登陆者的(注意HOME变量会切换),如果希望在切换身份时环境变量也跟着变,那么建议使用su -。

   su [-lmc] [username]

   参数:

-          : 如果执行su –时,表示该用户想要变换身份成为root,且使用root的环境参数文件,如/root/.bash_profile等

-l   : 后面可以接用户,例如su –l huli,这个-l的好处是,可使用变换身份者

的所有相关环境设置文件。

   -m  :-m与-p是一样的,表示“使用当前环境设置,而不重新读取新用户的设置文件”

   -c   :仅进行一次命令,-c后面接命令。

 

   sudo的一个弊端是普通用户必须知道管理员的密码,当系统中有许多用户时,

   如果每个用户都知道管理员密码,便存着者安全隐患。这个时候,可以使用

   sudo,sudo是如何工作呢?

   当用户执行sudo时,系统会先查找/etc/sudoers文件,判断用户是否有sudo。

   如果有权限,便提示用户输入自己的密码来确认。

   若密码输入成功,便可执行命令。

   sudo [-u [username|#uid]] command

   参数:

   -u : 后面接用户账号名称,或者是UID。

 

   手动增加用户

   如果要手动增加用户,必须清楚得了解到所有相关的设置文件。

   一般,手动增加用户会涉及到以下几个文件的修改:

  /etc/passwd

  /etc/shadow

  /etc/group

  /etc/gshadow

  /home/username

  系统提供了一些工具来保证手动添加用户的安全性

  peck

  它能够检查/etc/passwd账号设置文件内的信息,以及实际的家目录是否存在

  等信息,还可以比较/etc/passwd、/etc/shadow的信息是否一致,另外,如果

  /etc/passwd内德数据字段错误,也会提示修改。

 

  pwconv

  这个命令的目的是将/etc/passwd内的账号与密码移到/etc/shadow中。

 

  pwunconv

  这个命令的目的是将/etc/shadow内的密码栏数据写回到/etc/passwd中。

 

  grpconv

  这个命令的目的是将/etc/group内的账号与密码移动到/etc/gshadow中

  

  chpasswd

  这个命令可以读入未加密前的密码,并且经过加密后,将加密后的密码写入

  /etc/shadow中。它可以由标准输入读入数据,每个数据的格式是:

  “username:password”

  例:echo “skind:user!@#” | chpasswd

转载地址:https://blog.csdn.net/huli870715/article/details/6897908 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Linux开机流程分析与Grub引导程序
下一篇:linux搜索系统

发表评论

最新留言

不错!
[***.144.177.141]2024年03月30日 07时52分07秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章