Linux中,用户可大致分为两类:管理员 和 普通用户。
普通用户又可以细分为 系统用户 和 登录用户。
我们知道Linux中默认的管理员用户名叫 root,那么操作系统是怎样识别一个用户是 管理员用户 还是 普通用户呢,是跟我们想象的一样,通过用户名去识别吗?并不是,操作系统是通过UID去识别用户是否为管理员的,这里说到的UID是一个数字,它标识了用户的身份,管理员用户的uid为0,所以操作系统判断一个用户是否为管理员,就是去判断这个用户的UID是否为0,跟用户名没有任何关系。
管理员的UID为0,普通用户的UID范围为1-65535。
而普通用户又分为系统用户和登录用户 ,系统用户和登录用户有什么具体区别呢,先说说比较容易理解的登录用户,登录用户就是我们平常人为操作系统时登录shell的用户,我们通过交互式登录后,使用的用户成为登录用户,系统用户可以相对于登录用户去理解,就是不需要登录的用户,这些系统用户通常会给某些服务使用,或者给某些后台进程使用,开机启动后,某些进程或服务会自动运行,但是这些服务在运行时需要以某个用户的身份去运行,这种用户就叫做系统用户,它们往往不需要登录,当然,一些服务也可以通过登录用户去启动,在用户登录后去操作某些服务。
系统用户 和 登录用户 的UID也都有具体范围,但是在centos6(及以前的版本)和 centos7中的范围不一样。
创建用户的时候,可以根据用户的类型,指定UID ,UID所在范围取决于用户类型。
同样,在使用命令创建用户的时候,如果不指定用户使用哪种shell,Centos中,系统会默认为新创建的用户分配一个bash作为登录的shell,但是,我们前面提到过,系统用户不需要登录,所以不需要bash这种交互式shell,所以,在创建用户的时候我们可以为系统用户指定一种非登录式shell,/sbin/nologin ,除了为系统用户分配非登录shell,我们还能为其他用户分配别的类型的shell吗,必须能啊,查看/etc/shells文件,即可查看当前系统能够分配哪些shell给用户。
用户账户信息存放在/etc/passwd
========================================================================
组的概念
组可以理解为一些用户的集合
在windows中也有组的概念,windows中的组不只可以是用户的集合,windows中的组还能是用户和其他组的集合,也就是说windows中的组能嵌套组,但是Linux中不可以。
使用组可以更加方便管理相同角色的用户的权限。
组同用户一样,也有一个ID,称为GID,组也可以分为管理员组,系统组,普通组。
管理员组GID :0
windows中用户账户名不能与组名相同,对于名称来说,windows是不分用户和组的,只要这个名称被某个用户或组使用,其他的用户或组都不能使用这个名称。
而Linux中,如果一个用户使用luck作为用户名,那么同样可以创建一个组名为luck的组,而且在创建用户的时候,Linux会为新创建的用户默认创建一个与用户名相同的组,这个默认创建的组称之为这个用户的主要组。
欢迎访问博主的个人博客