Linux:账号与权限管理

目录

一、用户和组账号概述

1、passwd文件账号记录详细说明

2、用户账号文件/etc/shadow

3、chage命令

二、组的分类

1、useradd命令:添加用户账号(创建)

2、passwd命令(密码、账号管理----账号的角度还是基于密码)

3、usermod 命令:修改账户

4、userdel命令:删除用户

三、组账号文件

1、groupadd命令

2、gpasswd命令

3、groupdel命令:删除

4、groups命令:查看用户在哪个组

5、finger命令:查询用户账号的详细信息

6、w、who、users:查询已登录到主机的用户信息

四、文件/目录的权限和归属

查看目录和文件的属性

1、chmod命令:修改权限

2、chown:修改属主属组

五、权限掩码umask

作用

umask设置


本章结构
管理用户账号和组账号
管理目录和文件的属性

一、用户和组账号概述

linnx基于用户身份对资源访问进行控制
 用户账号
  超级用户:root拥有对系统的最高管理权限 ID=0
  普通用户:UID:1-999
  程序用户:GID:1000+(仅用于维护系统或者某个程序的正常运行)
 组账号
  基本组(私有组)
  附加组(公共组)
 UID和GID
  UID(User IDentity,用户标识号)
  GID(Group IDentity,组标识号)

1、passwd文件账号记录详细说明

保存用户名称、宿主目录、登录shell等基本信息
文件保存位置:/etc/passwd
cat /etc/passwd  (查看账号信息)


账户名:密码:uid:gid:用户说明:宿主目录:是否允许登录
jn:x:1000:1000:jn:/home/jn:/bin/bash(/sbin/nologin不允许登录)
x:表示此用户设有密码,但不是真正的密码,真正的密码保存在/etc/shadow文件
Linux系统把真正的加密密码串放置在/etc/shadow文件中,此文件只有root用户可以浏览和操作,最大限度地保证了密码的安全。
       补充:注意!!!,虽然"x"并不表示真正的密码,但也不能删除,如果删除了 "x",那么系统会认为这个用户没有密码,从而导致只输入用户名而不用输入密码就可以登陆(只能在使用无密码登录,远程是不可以)。

passwd wangwu 【修改用户密码】
echo “123123” | passwd -stdin wangwupasswd wangwu 【修改用户密码】

2、用户账号文件/etc/shadow

cat /etc/shadow (影子文件)【密码信息】

qiqi:!!:19169:0:99999:7::43279:
账号名:加密密码:最后一次修改时间:最小修改时间间隔:密码有效期:密码需要变更前的警告天数:密码过期后的宽限时间:账号失效时间:保留字段

第一个字段用户名:
       用户名:同 /etc/passwd 文件的用户名有相同的含义。
第二个字段加密密码:
       这里保存的是真正加密的密码。目前 Linux 的密码采用的是 SHA512 散列加密算法,原来采用的是 MD5 或 DES 加密算法。SHA512 散列加密算法的加密等级更高,也更加安全。
注意,这串密码产生的乱码不能手工修改,如果手工修改,系统将无法识别密码,导致密码失效。很多软件透过这个功能,在密码串前加上 "!"、"*" 或 "x" 使密码暂时失效。
所有伪用户的密码都是 "!!" 或 "*",代表没有密码是不能登录的。当然,新创建的用户如果不设定密码,那么它的密码项也是 "!!",代表这个用户没有密码,不能登录。
第三个字段最后一次修改时间:
       此字段表示最后一次修改密码的时间,可是,为什么 root 用户显示的是 18761 呢?
这是因为,Linux 计算日期的时间是以  1970 年 1 月 1 日作为 1 不断累加得到的时间,到 1971 年 1 月 1 日,则为 366 天。这里显示 18761 天,也就是说,此 root 账号在 1970 年 1 月 1 日之后的第 18761 天修改的 root 用户密码。
那么,到底 18761 代表的是哪一天呢?可以使用如下命令进行换算:
date -d "1970-01-01 18761 days"
可以看到,通过以上命令,即可将其换算为我们习惯的系统日期。
第四个字段最小修改时间间隔:
       最小修改间隔时间,也就是说,该字段规定了从第3字段(最后一次修改密码的日期)起,多长时间之内不能修改密码。如果是 0,则密码可以随时修改;如果是 10,则代表密码修改后 10 天之内不能再次修改密码。
此字段是为了针对某些人频繁更改账户密码而设计的。
第五个字段密码有效期:
       经常变更密码是个好习惯,为了强制要求用户变更密码,这个字段可以指定距离第3段(最后一次更改密码)多长时间内需要再次变更密码,否则该账户密码进行过期阶段。
该字段的默认值为 99999,也就是 273 年,可认为是永久生效。如果改为 90,则表示密码被修改 90 天之后必须再次修改,否则该用户即将过期。管理服务器时,通过这个字段强制用户定期修改密码。
第六个字段密码需要变更前的警告天数:
       与第 5 字段相比较,当账户密码有效期快到时,系统会发出警告信息给此账户,提醒用户 "再过 n 天你的密码就要过期了,请尽快重新设置你的密码!"。
该字段的默认值是 7,也就是说,距离密码有效期的第 7 天开始,每次登录系统都会向该账户发出 "修改密码" 的警告信息。
第七个字段密码过期后的宽限天数:
       也称为“口令失效日”,简单理解就是,在密码过期后,用户如果还是没有修改密码,则在此字段规定的宽限天数内,用户还是可以登录系统的;如果过了宽限天数,系统将不再让此账户登陆,也不会提示账户过期,是完全禁用。
比如说,此字段规定的宽限天数是 10,则代表密码过期 10 天后失效;如果是 0,则代表密码过期后立即失效;如果是 -1,则代表密码永远不会失效。
第八个字段账号失效时间:
       同第 3 个字段一样,使用自  1970 年 1 月 1 日以来的总天数作为账户的失效时间。该字段表示,账号在此字段规定的时间之外,不论你的密码是否过期,都将无法使用!
该字段通常被使用在具有收费服务的系统中。
第九个字段保留:
       这个字段目前没有使用,等待新功能的加入

PS:

忘记密码怎么办
经常有读者会忘记自己的账户密码,该怎么处理呢?
对于普通账户的密码遗失,可以通过 root 账户解决,它会重新给你配置好指定账户的密码,而不需知道你原有的密码(利用 root 的身份使用 passwd 命令即可)。
如果 root 账号的密码遗失,则需要重新启动进入单用户模式,系统会提供 root 权限的 bash 接口,此时可以用 passwd 命令修改账户密码;也可以通过挂载根目录,修改 /etc/shadow,将账户的 root 密码清空的方法,此方式可使用 root 无法密码即可登陆,建议登陆后使用 passwd 命令配置 root 密码。

3、chage命令

用来修改账号的密码的有效期限,针对目前系统已经存在的用户

chage [选项] 用户名

-m:密码可修改的最小天数   0=任何时候都可以修改
-M:密码保持有效的最大天数  例如:chage -M 60 root
-w:用户密码到期前,收到的警告信息的天数
-E:账号到期的日期。过了这天,此账号将不可用   ☆☆☆
-d:上一次更改的日期
-i:停止时期。如果一个密码已过期这些天,那么 此账号将不可用
-l:列出当前的位置。由非特权用户来确定他们的密码或账号何时过期
-h:显示此帮助信息并推出
例如:
chage -E 2022-06-29 用户   用户将在2022.6.29日失效(不可登陆)
chage -l root       可以看到用户所有属性
chage -d 0 JN       用户立即改密码

二、组的分类

当一些用户系需要做同一件事情的时候,把他们加到一个组中便于管理
1、基本组,一般新建用户的时候会随用户自动创建,与用户同名
2、附加组,一般一个用户可以有0个或多个附加组
一个用户只有一个基本组,可以有多个附加组

为什么创建家目录?为什么UID从1000开始,UID最大是多少?(仅了解)
是由于/etc/login.defs这个文件中配置决定的

1、useradd命令:添加用户账号(创建)

-u:指定用户的UID号,要求该UID号码未被其他用户使用
-d:指定用户的宿主目录的位置(当与-M一起使用时,不生效) 常用
-e:指定用户的账户失效时间,可使用 YYYY-MM-DD 的日期格式
-g:指定用户的基本组名(或使用 GID 号)
-G:指定用户的附加组名(或使用 GID 号)
-M:不建立宿主目录,即使/etc/login.defs 系统配置中已设定要建立宿主目录 常用
-s:指定用户的登录shell环境   /bin/bash  /sbin/nologin不允许登录) 常用

useradd wangwu
创建一个辅助管理员账户张三,将其基本组指定为“wheel”,附加组指定为“root”,宿主目录指定为“/admin”
useradd -d /zhangsan -g wheel -G root zhansgan
 
id zhangsan 
uid=1006(admin) gid=10(wheel) 组=10(wheel),0(root)

2、passwd命令(密码、账号管理----账号的角度还是基于密码)

-d:清空指定用户的密码,仅使用用户名登录
-l:锁定用户账号
-S:查看用户状态(是否被锁定)
-u:解锁用户账号
echo "123456" | passwd --stadin zhangsan
给张三账户修改密码成123456

3、usermod 命令:修改账户

-l:更改用户账号的登录名称
-L:锁定用户账号
-U:解锁用户账号

-u:修改用户的UID号
-d:修改用户的宿主目录位置☆
-e:修改用户的账号失效时间,可使用YYYY-MM-DD的日期格式
-g:修改用户的基本组名(或使用GID号)
-G:修改用户的附加组名(或使用UID号)
-s:指定用户的登录shell

4、userdel命令:删除用户

userdel -r 
表示连用户的宿主目录一起删掉

三、组账号文件

与组账号相关的配置文件也有两个,分别是/etc/group 和/etc/gshadow。前者用于保存组账号名称、GID号、组成员等基本信息,后者用于保存组账号的加密密码字串等信息(但是很少使用到)。某一个组账号包含哪些用户成员,将会在group文件内最后一个字段中体现出来(基本组对应的用户账号默认可能不会列出),多个组成员之间使用",”(逗号)分隔

grep "^root" /etc/group  #//检索root 组包括哪些用户
grep "root" /etc/group  //检索哪些组包括root 用户

1、groupadd命令

groupadd [-g GID] 组账号名
groupadd -g 1200 markrt
tail -1 /etc/group

2、gpasswd命令

gpasswd
-a:添加用户到组
-d:从组删除用户
-A:指定管理员
-M:指定组成员和-A的用途差不多
-r:删除密码
-R:限制用户登入组,只有组中的成员才可以用newgrp加入该组

3、groupdel命令:删除

groupdel 组账号名
groupdel market
grep "market" /etc/group

4、groups命令:查看用户在哪个组

group [用户名]
groups adm

5、finger命令:查询用户账号的详细信息

finger [用户名]

6、w、who、users:查询已登录到主机的用户信息

w who  last users 查看最近用户登陆信息

四、文件/目录的权限和归属

访问权限
 读取r:允许查看文件内容、显示目录列表
 写入w:允许修改文件内容,允许在目录中新建、移动、删除文件或子目录
 可执行x:允许运行程序、切换目录
归属(所有权)
 属主:拥有改文件或目录的用户账号
 属组:拥有改文件或目录的组账号

查看目录和文件的属性

root用户、root组
[root@node01 opt]# ll
总用量 0
-rw-r--r--. 1 root root   0   5月  16   16.34  1.sh
lrwxrwxrwx. 1 root root   4   5月  16   16.53  1.txt->1.sh
如"lrwxrwxrwx"和"-rw-r--r--"。权限字段由四部分组成
1、第一个字符:表示该文件的类型,可以时d(目录)、b(块设备文件)、c(字符设备文件)、“-”(普通文件)、字母l(链接文件)
2、第2~4个字符:表示该文件的属主用户(User)对该文件的访问权限
3、第5~7个字符:表示该文件的属组用户(Group)对该文件的访问权限
4、第8~10个字符:表示其他任何用户(Other)对该文件的访问权限
5、第11个字符:这里的“.”与 SELINUX 有关

1、chmod命令:修改权限

chmod u+r 1.txt    
chmod g+w 1.txt
chmod o+x 1.txt
chmod a+rwx 1.txt
chmod 644 1.txt
chmod u+r,g+w,o+x 1.txt

2、chown:修改属主属组

chown jn:jn 1.txt

五、权限掩码umask

[root@kgc ~]# umask 000 
[root@kgc ~]# mkdir /umask1
[root@kgc ~]# ls -ld /umask1/
drwxrwxrwx 2 root root 4096 3 月 13 17:02 /umask1/
[root@kgc ~]# umask 022 
[root@kgc ~]# mkdir /umask2
[root@kgc ~]# ls -ld /umask2/
drwxr-xr-x 2 root root 4096 3 月 13 17:03 /umask2/ 

作用

控制新建的文件或者目录的权限

默认权限去除umask的权限为新建的文件或者目录的权限

umask设置

是以反掩码的方式进行设置的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值