MySQL, Oracle, Linux, 软件架构及大数据技术知识分享平台

网站首页 > 精选文章 / 正文

13新手学习:Linux操作系统用户和组的概念

2024-12-13 13:34 huorong 精选文章 6 ℃ 0 评论

1、为什么需要了解用户和组

服务器要添加多账户的作用

针对不同用户分配不同的权限,不同权限可以限制用户可以访问到的系统资源提高系统的安全性 帮助系统管理员对使用系统的用户进行跟踪。

2、用户和组的关系

理论上Linux系统中的每个用户在创建时都应该有一个对应的用户组,这个组就称之为用户的主组。同时,有些情况下,某个用户需要临时使用某个组的权限,那这个组就称之为这个用户的附属组或附加组。

主组只能拥有一个,但是附属组或附加组可以同时拥有多个 => 亲爹,干爹(多个)

3、用户组操作

用户组的操作无疑三件事:用户组的添加、用户组的修改以及用户组的删除操作

组:group

添加:add

修改:mod

删除:del

用户组的添加

基本语法:

# groupadd [选项]  用户组的组名称
选项说明:
-g :代表用户组的组ID编号,自定义组必须从1000开始,不能重复

实例:在系统中添加一个hr的用户组

# groupadd hr

实例:在系统中添加一个test的用户组并指定定编号1200

# groupadd -g 1200 test

问题:我们刚才创建的hr以及test用户组到底添加到哪里了?

答:默认情况下,我们添加的用户组都会放在一个系统文件中,文件位置=>/etc/group

# tail -3 /etc/group
root:x:0:
yunwei:x:1000:

/etc/group文件解析

由以上命令的执行结果可知,在/etc/group文件中,其一共拥有三个冒号,共四列。每列含义:

第一列:用户组的组名称
第二列:用户组的组密码,使用一个x占位符
第三列:用户组的组ID编号,1-999代表系统用户组的组编号,1000以后的代表自定义组的组编号
CentOS6 => 1-499,500...
CentOS7 => 1-999,1000...
第四列:用户组内的用户信息(如果一个用户的附属组或附加组为这个组名,则显示在此位置)

用户组的修改

基本语法:

# groupmod [选项 选项的值] 原来组的名称
选项说明:
	-g:gid缩写,设置一个自定义的用户组ID数字,1000以后
	-n:name缩写,设置新的用户组的名称

实例:把hr用户组更改名为:shhr

# groupmod -n shhr hr

实例:把test用户组的组编号由1200改为1201

# groupmod -g 1201 test

实例:把shhr组的组名更改为shhr1且用户组的编号改为1008

# groupmod -g 1008 -n shhr1 shhr

用户组的删除

基本语法:

# groupdel 用户组名称

实例:删除test组

# groupdel test

4、用户操作

用户:user

添加:add

修改:mod

删除:del

用户的添加

基本语法:

# useradd [选项 选项的值] 用户名称
选项说明:
	-g:代表添加用户时指定所属组的主组,唯一的组信息(重要)
	-s:代表指定用户可以使用的shell类型
				默认为/bin/bash(拥有大部分权限(给用户使用)
				还可以为/sbin/nologin,代表账号创建成功,但是不能登录系统(给软件使用)
	-G:代表添加用户时指定用户组的附属组或附加组,可以指定多个,用逗号隔开即可(了解)
	-u:代表添加用户时指定的用户ID编号,centos6从500开始,centos7从1000开始(了解)
	-c:代表用户的备注信息,hr:88888:(hr使用)
	-d:代表用户的家目录,默认为/home/用户名称,可以使用-d进行更改
	-n:取消建立以用户名为名的群组(了解)

实例:在系统中添加一个yunwei账号

# useradd yunwei

问题:我们并没有为yunwei账号指定所属的主组,可以成功创建账号么?

答:可以,因为在创建账号时,如果没有明确指定用户所属的主组,默认情况下,系统会自动在用户组中创建一个与用户yunwei同名的用户组,这个组就是这个用户的主组。

问题:刚才创建的yunwei账号能不能用于登录操作系统

答:不行,因为Linux的登录账号必须要求有密码,如果一个账号没有密码是无法登录操作系统的。

实例:在系统中创建一个账号:yuge,指定用户所属的组为:shhr

# useradd -g 12002 yuge
注:可先查询shhr组的编号
	tail -5 /etc/group

实例:在系统中创建一个账号:centos,指定主组为:shhr,设置此用户只能被软件使用,不能用于登录操作系统

# useradd -g 12002 -s /sbin/nologin centos

实例:在系统中创建一个centos7,指定主组为:shhr,附属组为:test

# useradd -G 12002 shhr

用户信息查询

基本语法:

# id 用户名称

主要功能:查询某个指定的用户信息

实例:查询centos用户的信息

# id centos
uid=1002(centos) gid=1003(centos) groups=1003(centos)
uid:用户编号
gid:用户所属的主组编号
groups:用户的主组以及附属组信息,第一个是主组,后面的是附属组或附加组

Tags:linux添加用户

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言