在所有网络操作系统当中,都有一个很重要的概念:用户和组
对于组而言,我们使用组的目的是便于分配权限,权限的管理
对于用户而言,我们使用的目的主要是便于标识用户的身份
描述用户和组
我们在使用服务器时
平常使用的是普通用户
而在修改配置时使用的是root超级用户
我们可以通过id
命令来查看当前用户的身份以及信息
值得一提的是,在Linux系统中,UID为0的都是root用户
对于上面的id数值而言
gid代表用户的组、groups代表所属组、context代表上下关系
而普通用户的id一般是从1000开始直至10000
用户通过用户账户可以登录到系统,并且访问已经被授权的资源
用户账户概述
在Linux中,用户主要分为三大类:
- 超级用户(也称为root用户)
系统上最高权限的用户,具有对系统所有资源的完全访问权限
这个账户通常仅用于系统管理任务,例如安装软件或配置系统 - 普通用户
系统上的一个标准用户账户
可以访问有限的系统资源(通常根据管理员的权限设定)以及安装在该账户下的应用程序
这个类型的账户通常用于普通用户,例如网站用户或员工账户 - 程序用户
Linux系统中预定义的一些具有特定权限的用户账户
例如,www-data
用户用于运行Web服务器进程,bin
和daemon
用户用于运行系统服务等
这些账户不应由用户手动创建或修改,因为它们的权限和用途是由系统本身所定义的
su切换用户和授权
对于用户而言,管理员可能需要切换至普通用户工作
普通用户可能需要提高权限对文件操作,下载,更改配置等
我们在这种情况下便可以使用su + '-' + [username]
命令在不注销的情况下来更改工作用户
通过su - kiosk
命令从root超级用户转换到kiosk用户
通过su -
命令从kiosk用户输入root密码后转换到root超级用户
sudo提权操作
在生产中,在有多个工作协作者的情况下,不可能一个root账号给多个人一起使用
所以一般会给普通用户分配权限
也就是sudo
命令
下面我们使用例子来进行理解:
我们在普通用户下使用sudo命令,随后需要我们进行密码的输入(root的密码)
但是输入之后却报了一个Sorry,try again的错误
这个原因是我们的普通用户kiosk没有使用sudo的权利
要想使用sudo,我们要在root用户下输入visudo
命令
使用vim进入sudo命令配置文件进行权限编辑更改
进入之后找到这个
按i进入编辑模式,输入以下数据
其中,kiosk
是你想要添加的用户的名称,ALL=(ALL)
代表的是可以从任何终端来进行提权操作
NOPASSWD : ALL
代表的是该用户进行提权操作时不需要输入密码
随后按esc退出编辑模式,输入:wq
保存并退出
再次返回kiosk用户进行sudo操作就可以发现成功了,且不需要输入密码
我们也可以通过在root中输入vim /etc/sudoers
操作进入sudo命令配置文件进行权限编辑更改
两种方法等效~
用户管理
用户账户文件 ——/etc/passwd
username:password:UID:GID:GECOS:/home/dir:/bin/bash
- username:用户名
- password:密码占位符
- UID:用户账户的UID号
- GID:所属基本组账号的GID号
- GECOS:用户描述
- /home/dir:宿主目录
- /bin/bash:登录Shell信息
本地用户管理
对于用户管理,我们有以下几种操作,下面分别来进行介绍:
useradd + 选项 + 用户名
添加用户账号usermod + 选项 + 用户名
修改用户账号userdel + [-r] + 用户名
删除用户账号
下面举个实例:
我想要添加一个账户,并且详细设置他的信息
我们想在这里添加一个名叫Benny,uid为6666,gid为1111,描述为people的用户
但是在创建时出现了一个错误,是由于这个组不存在的,所以我们需要先添加该组
这样便创建用户成功,可以使用grep Benny /etc/passwd
命令在passwd文件内寻找Benny用户的信息
可以看到,里面的信息全都是按照我们创建时设置的信息来的
如果想要修改信息,我们也可以使用usermod
命令来进行修改
这里我们将Benny用户的uid修改为8888,名称修改为ThirteennyC
通过grep Thirteenny /etc/passwd
的指令可以看到也是成功修改
密码设置
用户密码文件——/etc/shadow
name:password:lastchage:minage:maxage:warning:inactive:expire:blank
- name:用户账号名称
- password:加密的密码串信息
- lastchange:最近一次修改密码时间
- minage:密码的最短使用天数(默认值0)
- maxage:密码的最长有效天数(默认99999)
- warning:密码过期提前警告(默认7)
- inactive:密码过期后账号的活动天数,指定天数后账号被锁定
- expire:账号失效时间(默认为空)
- blank:保留字段(未使用)
当创建了一个新用户之后,需要设置一个密码,否则无法登录(没有默认密码)
我们可以通过在root用户下输入passwd命令来修改一个用户的密码
可以看到,在输入两次新密码之后显示修改密码成功
用户组管理
用户组文件——/etc/group
groupname:passwd:gid:groupmember
- groupname:组名
- passwd:组密码
- gid:组号
- groupmember:组成员
对于用户组管理,我们有以下几种操作,下面分别来进行介绍: groupadd + 选项 + 用户名
添加用户组号groupmod + 选项 + 用户名
修改用户账组号groupdel + [-r] + 用户名
删除用户组号