走进Linux服务器之一:Linux操作基础5——Linux组管理、用户提权

前言

之前我们讨论过linux系统中关于用户的日常管理,接下来我们来讨论关于组的管理。

在linux操作系统中,每一个进程(正在运行的程序)都会被一个具体的用户拥有。

每一个文件也会被一个具体的用户所拥有(文件的属主)。

对文件和目录的访问受用户限制。

与正在运行的进程关联的用户确定该进程可访问的文件和目录。

一、存储用户组信息的文件

/etc/group

在上一篇关于用户管理的文章中,我们曾经讨论过这个文件的作用,这个文件用来存储系统中所有组的名字,组的密码占位符,组的GID(group id)和组中的用户成员。

可以通过以下命令查看这个文件:

cat /etc/group

可以看到文件中每一行的信息大致如下格式:

william:x:1000:

组名william,存在密码,组的GID为1000,目前成员为空。

二、用户组的常用管理操作

1.创建组(groupadd)

创建组可以用命令groupadd:

groupadd groupname

可以创建一个名字为groupname的用户组。在没有指定其他条件的情况下,groupname组的GID为文件group最后的组GID后面加1。

创建成功之后将会在group文件中看见新建的组,但是passwd,shadow文件中不会有改动,创建组不会更改用户的信息文件,但是新创建用户会改变组的信息。

可以通过 -g 参数对新建的组指定GID:

groupadd -g 2000 groupname

用这个指令创建groupname组的同时,将其GID改为2000。

关于groupadd指令的其他参数,可以用以下命令查看:

groupadd --help

2.删除组(groupdel)

删除组可以用用名groupdel:

groupdel groupname

可以删除groupname组。

三、组的类型

1.基本组

基本组顾名思义,是某个用户的基本组,当我们创建一个用户的时候,这个用户的基本组也随之创建,名字和用户名字相同,GID和用户的UID不一定相同。一起存储在文件/etc/passwd当中。

2.附加组

一个用户可以存在于基本组以外的组,一个用户可以同属于多个组,但是只有一个基本组,其他的组对于这个用户都是附加组。

四、usermod中关于组的操作

上一篇文章讨论过usermod指令对用户的操作,比如更改用户的UID,HOME目录等,现在来讨论一下用这个指令更改用户的组的信息。

-g 指定用户的基本组

-G 指定用户的附加组

usermod -g groupname username
usermod username -g groupname
usermod -G groupname username
usermod username -G groupname

上面的四条指令两两相同,分别更改了username用户的基本组和附加组。

假设我们创建一个用户AAA:

useradd AAA

同时我们假设用户AAA的UID和基本组AAA的GID都是1024,这个时候我们创建一个新的组BBB:

groupadd BBB

这个时候组BBB的GID为1025,如果我们执行:

usermod AAA -g BBB

则会把用户AAA的基本组改为BBB,在passwd文件中用户AAA的一行将会变成:

AAA:x:1024:1025::/home/AAA:/bin/bash

我们可以看到基本组变成了1025。

如果这个时候我们新建用户,用户的UID和基本组的GID就会不同,因为我们创建了一个BBB的组,占用了一个GID。

加入到基本组BBB之后,我们如果这个时候查看/etc/group文件的最后一行,发现组1025,BBB的最后一列成员用户依旧是空。

但是如果我们用以下指令:

usermod AAA -g AAA
usermod AAA -G BBB

我们先把用户AAA的基本组归还为原本的AAA,把组BBB作为一个用户AAA的添加组,这样在passwd文件中,可以看到关于AAA的一行:

AAA:x:1024:1024::/home/AAA:/bin/bash

基本组的GID变回1024,然后再查看group文件的最后一行可以看到:

BBB:x:1025:AAA

可以看到,当BBB作为AAA的附加组的时候,group文件中才会把用户AAA作为BBB组的成员用户存储。

在我的Ubuntu主机中,查看我的常用用户williiam,可以看到用户的属组:

william@william-LoveKanna:~$ id william
uid=1000(william) gid=1000(william)=1000(william),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),120(lpadmin),131(lxd),132(sambashare)

可以看到,除了第一个1000,其余都是附加组。

五、提权

提权一般大家在使用centOS学习linux系统时并不常用,因为centOS使用root登陆的情况比较普遍和频繁,我在主机中装有Ubuntu系统,Ubuntu系统并不适合一直用root用户,这和一般都是管理员的windows系统不大一致,当非root用户的一些操作必须要用高级权限的时候,就要进行提权了。

平时我们在远程管理服务器的时候也要尽量避免使用root用户(权限过大)。

永久提权 (Switch User su)

在普通用户终端下,输入su切换到root超级管理员身份:

su

或者:

su root

即可切换到超级管理员身份,同时,也可以在第二条指令的后面更改为其他用户的身份。

临时提权 (sudo)

临时提权是一种在不切换用户的情况下完成部分特权指令。通过sudo可以执行管理员允许的一些需要管理员权限的指令,并不是用临时提权sudo就可以执行所有指令。

使用方法:直接在要运行的指令前添加sudo即可,比如安装编译工具make:

sudo apt-get install make

管理员可以通过更改文件/etc/sudoers分配sudo权限

总结

通过本文和上一篇文章一共讨论了关于用户和组的信息存储、用户和组之间的关系以及用户和组的日常管理,下面我们将讨论用户的权限。组的一大作用就是方便管理用户的权限。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值