Linux用户、用户组以及文件权限管理

Linux系统是一个多用户多任务的分时操作系统,任何想要使用操作系统的人都要向管理员申请账号,然后以这个身份进入操作系统。管理员可以将用户划分为不同的组,并为这些组分配权限,以更好地管理系统资源和数据的安全性。
所谓的多用户系统就是指一台计算机启动后,允许多个用户同时登录并使用计算机,最常见的例子就是很多用户通过网络远程登陆到一台运行Linux的计算机。
参考链接

1.用户和组的概念

要使用Linux系统的人,信息必须要在Linux下登记之后才能使用;
image.png
在创建一个用户的时候,需要提供如下信息:

用户名:密码:UID:GID:备注:家目录:登录shell

UID:用户的ID,与我们的身份证号一样,简称UID
GID:每一个用户只能归属与一个主要的组群,但是可以同时归属多个附加组群,给用户分组主要是便于进行权限管理,例如赋予某个组某种权限,那么这个组的用户都有这个权限
备注:对用户的描述,可省略
家目录:用户登陆时候默认进入的目录,不特别制定,家目录就是/home/用户名,root用户的家目录默认就是root;
登录shell:用户所使用的shell,shell编程篇中讲过,Linux有很多不同的shell,此处就是指定用户所使用的shell;
image.png
如第一行所示:root表示用户是root,秘密是隐藏后的值,存在另一个文件/etc/shadow中,用户的id是0,属于的组id也是0,家目录是/root,默认的shell是/bin/bash。

1.1 用户分类

Linux系统中用户分为3类,分别是超级用户root、系统用户和普通用户。系统安装的时候会默认创建root,没有权利限制,其uid与gid都是0。
超级用户的作用是管理系统,例如创建用户、给硬盘分区、配置网路等。
系统用户的UID小于1000,主要用来启动服务或者用作特俗权限的控制,系统用户的权限是收到限制的,系统用户不能用作登陆。
普通用户是由超级用户root创建并分配给Linux操作系统使用者的,权限收到限制,UID一般大于1000。

1.2 组群

image.png
一个用户只能属于一个主要组群,可以属于0个或多个附加组群,一个组群可以包含0个或多个用户。

2.用户和组的管理

2.1 用户组管理

image.png

groupadd -g 1003 -o group1   
//-g 指定用户组的组标识符,不指定,系统自动分配 
//-o 一般与-g选项同时使用,表示新用户组的GID可以与系统已有用户组的GID相同
//-f 如果组已经存在,则退出,如果已经使用gid则取消-g

image.png
也可使用getent group group1 命令查看组是否创建成功;

1. 修改用户组名称
groupmod -n newgroupname oldname
2.修改组id
groupmod -g newid oldid
3.删除用户组
groupdel groupname

2.2 用户管理

1.创建用户 useradd 
-d, --home-dir HOME_DIR       用户的家目录
-m, --create-home             创建用户家目录
-g, --gid GROUP               组名或者组id 
-s, --shell SHELL             用户的shell

创建用户ywh并加入1003gid的组中,shell是/bin/bash
useradd -m -g 1003 -s /bin/bash ywh

image.png

2.删除用户 userdel
-f 强制删除
-r 连同家目录一起删除

image.png

3.更改用户 usermod
-d 修改家目录
-s 修改shell
-g 修改主要组群
-G 修改附加组群
-l 修改用户名
-u 修改uid

image.png

4 密码管理 passwd
-l 用户名    锁定用户
-u 用户名    解锁
用户名       修改密码
-d 删除用户的密码

passwd -n 10 -x 20 -w 3 -i 5 ywh
修改用户ywh的密码老化时间,密码有效期最少天数10,最大天数20,过期三天警告,密码禁用期5天
2.2.1 用户密码的详细讲解

用户的密码只有root用户和用户本人可以修改,添加的用户信息存储在/etc/passwd(普通用户能查询到)中,密码位置用x代替,真正的密码存储在/etc/shadow(只有root才能访问到)中:
image.png
各个字段的顺序如下:

账号:密码:最后一次更改密码的日期:密码有效期最少天数:密码有效期最多的天数:密码修改警告期:密码禁用期:账号过期日期:保留字段

其中,密码不是明文信息的密码,是经过加密之后的密文。这种加密算法是不可逆的,也就是说不能从密文反推出原始密码,linux登陆的过程中是将原始的密码加密,和存储的明文对比,若相同,密码正确。
密码的格式: i d id idsalt$encrypted,具体的加密方式是由系统的密码算法决定的,可以在/etc/login.defs文件中进行设置。其中id是指使用的哈希算法,可取如下值:

  • 1: MD5
  • 5: SHA-256
  • 6: SHA-512

实际的加密过程是通过函数crypt()完成的。crypt()函数接受两个参数:明文密码和salt。它首先使用明文密码和salt生成一个密钥,然后使用该密钥对明文密码进行加密,生成一个加密后的密码散列值。
有关密码破解的可以参考这篇文章

3.文件权限管理

image.png
前10个字母表示的含义:
image.png
第0位确定文件的类型,1-3位确定属主(该文件所有者)拥有该文件的权限,4-6表示属组拥有该文件的权限,7-9位确定其他用户拥有该文件的权限;
eg:在root用户下的文件:
image.png
root用户由学些执行的权限,同组和其他用户只有读的权限,切换到普通用户ywh,尝试执行1.sh:
image.png
使用./可执行文件无法执行,需要可执行权限,与shell篇所讲相同,使用bash执行不需要可执行权限。

3.1 更改文件所有者

chown [–R] 所有者 文件名
chown [-R] 所有者:属组名 文件名。#同时更改文件所属组
R:递归更改文件属主

将1.sh的属主更改为ywh,ywh普通用户无法更改:
image.png
image.png
image.png

3.2 更改文件属性

linux中有两种设置方法,一种是数字,一种是符号;
文件的基本权限有9个位置表示,分别是owner/grouper/other三者的读写执行权限,权限的分配可以用二进制的方式表示,例如读权限为100,十进制为4,可读可执行为101,十进制为5。这样可以用三位十进制表示各自的权限。

 chmod [-R] xyz 文件或目录 # R表示递归 ,xyz三位十禁止,例如770

符号改变的方式:

chmod {ugoa} {+-=} {rwx} 文件或目录

其中u表述用户,g表示组,o表示其他,a表示所有,±=表示加上减去或者等于某种权限。
eg:

chmod u+x 1.sh  #给用户赋予文件1.sh可执行的权限

4.综合案例

#!/bin/bash
#添加三个组并指定GID
groupadd -f -g 1001 -o group1
groupadd -f -g 2001 -o group2
groupadd -f -g 3001 -o group3

#创建6个用户,分别加如对应的分组,并创建对应的家目录,指定对应的shell
#user2 和 user4 属于两个组
useradd -m -u 1001 -g group1 -s /bin/bash user1
useradd -m -u 1002 -g group1 -G group2 -s /bin/bash user2
useradd -m -u 2001 -g group2 -s /bin/bash user3
useradd -m -u 2002 -g group2 -G group3 -s /bin/bash user4
useradd -m -u 3001 -g group3 -s /bin/bash user5
useradd -m -u 3002 -g group3 -s /bin/bash user6

#创建3个可执行文件,并分别赋予权限
touch group1.sh
touch group2.sh
touch group3.sh
chmod 764 group1.sh
chmod 640 group2.sh
chmod 700 group3.sh

#更改文件属主
chown user1:group1 group1.sh
chown user3:group2 group2.sh
chown user5:group3 group3.sh

文件属性:
image.png
组信息:
image.png
目录结构:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值