Linux—用户管理与权限控制

用户和权限

root用户

在Linux系统中,拥有最大权限的账户名称为root(超级管理员),普通用户的权限一般在其home目录内不受限制,但仅限于在自己的目录下如: /home/chen,一旦出了home目录,大多数地方普通用户仅有只读和执行权限,无修改权限

su命令

su命令(Switch User)用于切换账户

语法:
su [-] [用户名]
-符号是可选的,表示是否在切换用户后加载环境变量
参数,用户名,表示要切换的用户,也可省略,表切换到root
切换用户后,可以通过exit命令退回上一个用户,也可以使用快捷键:ctrl+d

使用普通用户,切换到其他用户需要使用密码

使用root用户切换到其他用户,不需要密码

sudo命令

我们可以通过su命令进入到root用户,获取最大权限,但是长期使用容易对系统造成损坏,我们就可以使用sudo命令,为普通用户的命令授权,临时以root身份执行

语法:
sudo 其他命令
在其他命令之前,带上sudo即可为这条命令临时赋予root权限
但并不是所有的用户,都有权利使用sudo,我们需要为普通用户配置sudo认证

用户,用户组管理

Linux中可以配置多个用户,配置多个用户组,用户可以加入用户组中,如下图

Linux中关于权限的管控级别有两个:

  • 针对用户的权限控制

  • 针对用户组的权限控制

用户配置文件

文件名

功能说明

字段数

/etc/passwd

用户信息文件,含有用户名、用户ID、组ID、密码时间参数

7

/etc/shadow

用户密码文件,含有用户的加密密码;

9

/etc/group

用户组信息文件,含有用户组名、密码、用户组成员等;

4

/etc/gshadow

用户组密码文件,含有用户组的加密密码;

4

用户组管理

命令需要root权限用户执行

用户组文件——/etc/group

linux中用户组的类型:

  • 私有组:建立用户时没有指定所属组,则自动创建与用户名同名的私有组;

  • 系统组:系统为系统用户自动创建的组;

  • 标准组:普通用户所属的组;

/etc/group文件中的每一行都表示一个用户组的属性信息,由分割的4字段构成

字段

说明

wheel

用户组名

x

组密码,x表示无密码

0

组ID,0表示超级管理员组,1-999表示系统组,>1000表示普通组

test

组成员用户名,用“,”分隔

用户组密码文件——/etc/gshadow

/etc/gshadow每一行表示一个组的信息,被:号分割为4个字段

组名:加密密码:组管理员:组附加用户列表

创建用户组

语法:
groupadd [-g] 用户组名称
选项:-g,指定用户组GID

修改用户组属性

语法:
groupmod [-g -n]
选项 :-g 指定用户组GID
选项:-n 改变组名

删除用户组

语法:
groupdel 用户组名称
注意:只有当指定需要删除的组不是任何用户的主组情况时,该组才会被删除,否则需要删除相关用户或修改相关用户的主组后,再进行指定组的删除。

组成员管理

语法:
gpasswd [-a -d] 用户名 组名
-a :向组中添加组员用户
-d:从组中删除组员用户
如果不添加任何选项,直接加用户组的名称,就是为指定用户组设定密码
  • 将u2用户添加到u3用户组中

  • 将u2用户从u3用户组中删除

  • 设置u2用户组密码

用户管理

命令需要root权限用户执行

用户帐号文件——/etc/passwd

在linux中有三种用户类型:

  • 超级用户:root,具有一切权限

  • 系统用户:为保证Linux系统正常运行所自动建立的用户,不能直接登录

  • 普通用户:大多数用户所具备的帐号类型

/etc/passwd文件存放系统中所有用户的属性信息,普通用户可以查看,root可以修改

Passwd文件中的每一行都表示一个用户的属性信息,由:号分割的7个字段构成

字段

说明

用户名

也称为登录名,在系统内用户名应该具有惟一性。在本例中,root就是用户名

密码

存放加密用户的密码,看到的是一个x,其实密码已被加密存储到/etc/shadow文件

用户标识号(UID)

在系统内用一个整数标识用户ID号,每个用户的UID都是惟一的,root用户的UID是0,系统用户UID<1000,普通用户的UID默认从1000开始,本例中的用户root的UID是0

组群标识号(GID)

在系统内用一个整数标识用户所属的主要组群ID号,每个组群的GID都是惟一的

用户名全称

用户名描述,可以不设置。在本例中,root用户的用户名全称是root

主目录

用户登录系统后首先进入的目录,root用户的主目录是/root

登录Shell

用户使用的Shell类型,Linux系统默认使用的Shell是/bin/bash

用户密码文件——/etc/shadow

系统用户的密码都采用MD5算法加密存储在/etc/shadow文件,只有root用户才能查看;

每一行表示一个用户的密码信息,用分割为9个字段

字段

说明

用户名

这里的用户名和/etc/passwd中的用户名是相同的

密码

加密后的密码,如果有些用户在这里显示的是“!!”,则表示这个用户还没有设置密码,不能登录到系统

用户最后一次更改密码的日期

从1970年1月1日算起到最后一次修改密码的时间间隔天数

密码允许更换前的天数

如果设置为0,则禁用此功能。该字段是指用户最少要间隔多少天才能修改密码,即更改密码的最小期限

密码需要更换的天数

如果设置为0,则禁用此功能。该字段是指用户最多多少天以后必须修改密码,即更改密码的最大期限

密码更换前警告的天数

用户登录系统后,系统登录程序在密码过期提前多少天向用户发出警告,即更改密码前提前多少天给出警告信息

账户被禁用前的天数

用户密码过期多少天后,系统会禁用此用户,也就是说系统会不让此用户登录,也不会提示用户过期,是完全禁用的

用户账户禁用多久

指定用户账户禁用的天数(从1970年的1月1日开始到账户被禁用的天数),如果这个字段的值为空,账户永久可用

保留字段

目前为空,以备将来Linux系统发展时使用

创建用户

语法:
useradd [-g -d -u] .用户名
选项,-u指定用户UID,用户ID与账号必须是唯一的
选项,-g指定用户的组,不指定-g,会创建同名用户组并自动加入,指定-g需要用户组已存在,如果已存在同名用户组,必须使用-g,参数可以是组名称或组ID(GID)
选项,-d指定用户HOME路径,如果不指定,HOME目录默认在:/home/用户名
  • 单独使用

单独使用会默认为新建用户创建一个同名用户组,和默认分配的用户信息

  • 选项指定

-g指定分组,可以理解为将test5用户的用户组预设为 u3,但用户组还需要进行设置,相当于是test5向u3用户组投了一个简历。

可以看到我们虽然在创建用户的时候设定了用户组,但是在u3用户组文件中的组成员区域并没有记录

删除用户

语法:
userdel [-r] 用户名
选项-r,删除用户HOME目录,不使用-r,删除用户时,HOME目录保留
  • 删除HIOME路径

  • 不删除HOME路径

查看用户所属组

语法:
id [用户名]
参数,用户名,表示被查看的用户,如果省略默认查看当前用户

修改用户所属组

语法:
usermod [选项] 用户名
选项
-d 改变用户的主目录
-g 修改用户的GID
-G 指定用户所属的附加组
-l name 更改账户的名称(必须在该用户未登录情况下才可以修改,小写L)
-u 修改用户的UID

getent命令

语法:
getent passwd
查看当前系统中有那些用户
getent group
查看当前系统中有哪些用户组
查看用户

会出现很多,(现只取一部分)上面都是系统创建的,底下才是我们自己创建的用户

共有七份信息:

用户名:密码(x):用户ID:组ID:描述信息(无用):HOME目录:执行终端(默认bash)

查看用户组

现取一部分,底下四个是自创的用户组

包含3部分信息:

组名称:组认证(显示为x):组ID

查看权限控制信息

详细信息解释

以红框标记为例,第一行的total 28是指当前目录下所有文件所占有的空间总和,默认以字节为单位(bytes),因为使用了-h选项所以使用的是kb显示

  1. dr-xr-xr-x: 一共十个字符,第一个字符表示文件类型

  • - :表示普通文件

  • d:表示目录(directory)

  • l:表示链接文件

  • b:表示块设备(block)文件

  • c:表示字符设备(char)文件

  • p:表示管道(pipe)文件

  • s:套接字(socket)文件

剩余的字符可以分为三组,即r-xr-xr-x中间没有分隔符号,分别表示所属用户所属用户组其他用户对该文件的使用权限

  • r 表明该文件具有可读权限,若该位置为 "-" ,表示不可读;

  • w 表明该文件具有可写权限,若该位置为 "-" ,表示不可写;

  • x 表明该文件具有可执行权限,若该位置为 "-" ,表示不具有可执行权限;

  1. 第二列的数字:表示目录文件里包含的子目录文件数量(包括隐藏文件)如果是普通文件则表示的是链接数量

  1. 所属用户

  1. 所属用户组

  1. 文件大小(默认以字节为单位)

  1. 文件的最后修改时间

  1. 文件名

针对文件、文件夹的不同,rwx的含义有细微差别

  • r针对文件可以查看文件内容

  • 针对文件夹,可以查看文件夹内容,如ls命令

  • w针对文件表示可以修改此文件

  • 针对文件夹,可以在文件夹内进行创建、删除、改名等操作

  • x针对文件表示可以将文件作为程序执行

  • 针对文件夹,表示可以更改工作目录到此文件夹,即cd进入

修改权限控制

chmod命令

我们可使用chmod命令,修改文件、文件夹的权限细节

注意,只有文件、文件夹的所属用户或root用户可以修改

语法:
chmod [-R] 权限 文件或文件夹
选项-R,对文件夹内的全部内容应用同样的操作

给hello文件设置权限,给所属用户在原先可读,可写的情况下,增添x可执行权限,查看后文件由白色变成绿色

其中:u表示user所属用户权限,g表示group组权限,o表示其他用户权限

取消所属用户对文件夹和文件夹内全部内容的阅读权限,并增加所属用户组和其他用户的阅读权限

本想使用其他用户继续验证一下,但是在那之前好像还需要增加其他用户访问chen用户的权限

修改权限快捷写法

权限可以用3位数字来代替

第一位数字表示用户权限,第二位表示用户组权限,第三位表示其他用户权限

数字细节如下r记为4,w记为2,x记为1

  • 0:无任何权限 即 ---

  • 1:仅有x权限 即 --x

  • 2:仅有w权限 即 -w-

  • 3:仅有w和x权限 即 -wx

  • 4:仅有r权限 即 r--

  • 5:仅有r和x权限 即 r-x

  • 6:仅有r和w权限 即 rw-

  • 7:有全部权限 即rwx

所以chmod 751hello表示:修改hello文件的权限为rwx(4+2+1)r-x(4+1)--x(1)

chown命令

可以修改文件、文件夹的所属用户和用户组

普通用户无法修改所属为其他的用户或用户组,所以此命令值适用于root用户执行

语法:
chown [-R] [用户] [:] [用户组] 文件或文件夹
选项-R,同chmod一样,对文件夹内所有内容应用相同规则
选项,用户,修改所属用户
选项,用户组,修改所属用户组, 如果要修改用户组,其前必须加 “:” 来表示修改的是用户组
:用于分隔用户和用户组

将chen用户下hello3文件的所属用户改为root

将chen用户下hello的所属用户组修改为test

将chen用户下hello2文件的所属用户修改为test,所属用户组修改为root

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值