Linux用户管理-基本概念

Linux用户管理-基本概念

(以下内容均为原创,如需转载请联系作者)

 

本​小节咱们先聊一下用户的基本概念,后面进行操作的时候,有这些基础知识会更好理解。

 

1、用户是什么概念

        Linux是一个多用户多任务的分时操作系统。想必都看过这句话,但不知道各位是怎么理解的。我的理解是,多用户就是多个用户可以同时使用计算机,多任务就是Linux系统能同时处理多个任务、执行多个进程。所谓用户,对使用者来说最直观的表现就是账号。所以,系统管理员需要为每个用户分配一个账号(也可以设置密码),使用者通过账号登入系统。

 

2、用户组的概念

        用户组表示的是用户的角色,系统管理员可以为每个用户设置多个用户组(-G参数指定),但是只能有一个主用户组(-g参数指定)。用户拥有所属用户组的权限,所以我们可以为不同用户组配置相应的权限,然后通过控制用户的组属性来管理用户的权限。

 

3、用户相关文件和目录

        与用户相关的文件和目录主要有/etc/passwd、/etc/shadow、/etc/group和/home/  这个几个。

 

【/etc/passwd文件】

        /etc/passwd文件记录的是每个用户的基本属性,比如:root:x:0:0:root:/root:/bin/bash 。这条记录是root管理员用户的记录,其中各个信息字段用":"符号分割,格式为 用户名:密码:用户标识号:组标识号:描述:主目录:登录shell 。

        第一个字段 root 表示当前用户的用户名是root,也就是登录的账号;

        第二个字段 x 表示该用户的密码,但是由于密码是加密存储,因此这里是显示一个x符号,真实的密码在/etc/shadow文件中,下面会讲到这个文件

        第三个字段 0 表示当前用户的用户ID是 0 ,因为当前用户root是管理员用户。用户标识是有规律的,0表示管理员;1-500表示系统用户;501-65535表示普通用户。当然不同的发行版本,这个划分可能有差异。

        第四个字段 0 标识当前用户所属的主用户组的标识,划分跟用户标识划分一致。创建用户时用 -g 指定的用户组,-G指定的是附加组。

        第五个字段 root 表示对当前用户的描述,创建用户时用 -c 添加的描述信息。创建普通用户时,默认是没有的。

        第六个字段 /root 表示该用户的主目录,创建用户时用 -d 指定的目录。如果不指定,普通用户默认是在/home/目录下创建一个跟用户名相同的目录,作为其主目录。

        第七个字段 /bin/bash 表示该用户的默认启动程序,也就是该用户登录系统后的默认启动的进程,一般是shell。该shell进程启动后,用户就可以向系统内核进行指令传输了,也就是执行各种命令。该默认程序也可以是shell之外的程序,这样就可以在用户登录时执行设定的动作,在执行完成后,用户也就退出了系统。系统用户的默认启动程序为 /sbin/nologin ,表示该用户不能进行登录操作。这个的用法,我们下面再聊。

 

【/etc/shadow文件】

        在上面的/etc/passwd文件介绍中描述到,用户的密码是加密存储的,存储的位置就是/etc/shadow。我们一般称之为影子文件,也就是密码数据库。因为/etc/passwd文件的权限是所有人都可以读的,但是/etc/shadow文件只有root用户可以进行读写。我们可以用命令 ll /etc/shadow 看到该文件的读写权限是 000 。

有人就会疑问了,读写权限是000,按照权限原理理解,这个文件应该是所有人都无法读写啊。这是因为root用户很牛,对任何文件都保留读写权限。那还有一个疑问就是,既然这个文件是保存密码的,而且root之外的用户无法读写,那么普通用户修改密码的时候,怎么对这个文件进行读写操作的呢?首先我们可以先看看passwd程序的执行权限(ll /usr/bin/passwd),他的权限为 -rwsr-xr-x ,关键就在于 s 权限上。这个 s 表示让执行该命令的用户暂时以root的权限,所以普通用户也能用passwd命令对/etc/shadow进行读写了。s 是一个特殊权限,类似的特殊权限还有几个,可以参考 https://blog.csdn.net/LYJwonderful/article/details/80220452

        影子文件与/etc/passwd文件一样,也是每个用户一条记录。而且有一定的格式,如:bin:*:17110:0:99999:7::: 

        第一个字段 bin 表示该记录所属的用户的用户名,与/etc/passwd中的一条记录对应。

        第二个字段 * 表示加密密码。如果该值为"*"、"x"或者"!",表示该用户没有密码,不能登录。如果有设置密码,则为密码加密后的字符串。加密字符串

        第三个字段 17110 表示上次修改密码的时间,这个时间是从1970年01月01日算起到修改密码的天数

        第四个字段 0 表示两次修改密码的最小间隔天数,如果这个值被设置为0则不启用该限制。这个值是在/etc/login.defs文件中的PASS_MIN_DAYS中配置的

        第五个字段 99999 表示两次修改密码的最大间隔天数,这个值在/etc/login.defs文件中的PASS_MAX_DAYS中配置的

        第六个字段 7 表示用户密码快要过期时,提前几天提醒用户。这个值可以在/etc/login.defs文件中的PASS_WARN_AGE中配置

        第七个字段 表示密码过期多少天后禁用用户账号,为空表示此账号永久可用

        第八个字段 表示账号过期日期,值为从1970.1.1开始的天数,如果为空表示账号永久可用。这个值可以在创建账号时,或者修改账号时用 -e 参数设置

        第九个字段 是保留字段,暂时没有意义

        *** 关于第二个字段的补充说明:如果为空,表示该用户不需要登录密码即可登录;如果为"!!",表示账号已经过期;如果以$6$开头,表示密码用SHA-512加密;如果以$1$开头,表示密码用MD5加密;如果以$2$开头,表示密码用Blowfish加密;如果以$5$开头,表示密码用SHA-256加密

 

【/etc/group文件】

        /etc/group文件是用户组的基本信息文件,其格式比较简单,如 sudoer:x:1003:matt1 ,总共四个字段,其含义如下

        第一个字段 sudoer 表示用户组的名称,可以用groupadd创建,在创建用户时也会创建与账号同名的用户组

        第二个字段 x 表示用户组的密码,x表示没有设置密码

        第三个字段 1003 表示当前用户组的GID

        第四个字段 matt1 表示当前用户组的用户列表,如果有多个用户的话,用户名之间用","符号分割;如果此字段为空,则表示同名用户之外,没有其他用户属于这个组

 

【/home/】

        /home/ 目录是默认的用户家目录所在的目录,比如我的用户名称为matt,默认创建的家目录就是/home/matt/,在我的家目录下可以存放私人的文件,其他用户是无法进入的(root用户除外)。后面我们讲到配置ssh public key 免密登录的时候会用到这个目录,当然这个目录里还记录这其他属于该用户的信息,比如 /home/matt/.bash_history,这是一个bash命令历史记录的文件,等等。

 

        好了这个小节的内容就到这里了,下一个小节将会有下面的一些内容:用户管理有哪些操作(增、删、查、改);创建不登录用户;用户与权限;sudoer配置;sudoers文件简述。

 

另外,欢迎关注本人小程序,内容更新及时完整。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值