Linux账户与权限管理

Linux账号与权限管理

本章结构

管理用户账号和组账号

管理目录和文件的属性

一、用户账号和组账号的概述

1.Linux基于用户身份对资源访问进行控制

  • 用户账号分为:超级用户 root管理员;ID=0;对当前主机有最高权限

​ 普通用户 ID:1-999;新创建用户1000以上;1-499保留

​ 程序用户 伪用户,不能登录操作系统;主要用于维持某个服务的正常运行。例如FTP,apache,bin、mail

  • 组账号分为:基本组(私有组):基于某种特定联系(如都需要访问FTP服务)将多个用户集合在一起,即构成一个用户组,标识该组内所有用户的账号称为组账号,每一个用户都至少属于一个组,这个组就称为该用户的基本组(私有组);就如同我们上班后分配的某个小组;

​ 附加组(公共组):如果该用户同时还在其他组内,则称这些组为该用户的附加组(公共组)

  • 基本组必须要有,且是唯一;附加组可以有且可以有且不止一个,可有可无‘

​ UID和GID

​ UID (User IDentity,用户标识号) 类似于我们的身份证号,是这台主机每个用户的身份标识

​ GID(Group IDentify,组标识号)

2.用户账号文件在/etc/passwd

保存用户名称、宿主目录、登录Shell等基本信息

文件位置:/etc/passwd

每一行对应一个用户的账号记录

root:x:0:0:root:/root:/bin/bash

root :用户名

x:密码占位符(表示此用户设有密码),但不是真正的密码,真正的密码保存在/etc/shadow文件。但也不能删除,如果删除了“x“,系统认为这个用户没有密码,导致只输入用户名就可以登录

0:UID号

0:所属基本组账号的GID号

root:描述信息

root:用户的宿主目录

bin/bash:登录shell信息

3.保存用户的密码、账号有效期等信息

文件位置:/etc/shadow(影子文件)

/etc/shadow/ 文件只有root用户拥有读权限,其他用户没有任何权限;保证了用户密码的安全性。

如图显示每个用户的账号信息

和/etc/passwd文件一样,文件中每行代表一个用户,同样使用“:”作为分隔符,每行用户信息被分为9个字段

用户信息9段:

第一段:用户名

第二段:账户密码;存放真正的密码,词用SHA512散列算法,更加安全,加密原来使用MD5或DES

​ 注:!!和*表示没有密码不能登录,新创建的用户也是!!;如果密码前面显示双感叹号,表示该账户被所锁定了

第三段:上一次修改密码的时间,从1970年1月1日开始算的,(Linux正式诞生的日子);

​ date -d ”1970-01-01 18983 days“ 可以查看哪一天改过 (chage -d)

第四段:多久之后才可以修改密码,如果是0,则密码可以随时修改;最小修改间隔时间,也就是说该字段规定了从第三个字段(最后一次修改密码的日期)起,多长时间之内不能修改密码,如果为0则随时可以修改密码,例如是10就代表密码修改后10天内不能再次修改密码,此字段是为了针对某些人频繁更改账号密码而设置的 (chage -m)

第五段:密码有效期,默认是99999(273年),也就相当于永久生效 (chage -M)

第六段:密码到期前的第几天发出告警,默认7天,每次登录系统都会向该用户发出”修改密码“的告警信息 (chage -W)

第七段:密码过期的宽限天数,密码过期后的几天还是可以登录的,如超过款项天数,系统将不在给此账户登录,也不会提示账户过期,完全禁用; (chage -I)

第八段:账号失效时间,使用自1970年1月1日以来的总天数作为账户的失效时间 (chage -E)

第九列:保留,未使用

二、修改账户密码chage命令

chage命令:用来修改账号和密码的有效期限,针对目前系统以及存在的用户

chage 选项 用户名

chage -m :密码可更改的最小天数,为零时代表任何时候都可以更改密码

chage -M :密码保持有效的最大天数,chage -M 60 root

chage -W : 用户密码到期前,提前收到警告信息的天数

chage -E :账号到期的日期,过了这天,此账号将不可用

chage -d:上一次更改的日期

chage -i(大写) : 停滞时间,如果一个密码已过期这些天,将禁用该账户;

chage -l :列出当前的设置,由非特权用户来确定他们的密码或账号何时过期

例:chage -E 2019-04-29 test

//其中,test为用户,用户将在2019年4月29日生效(不可登陆)

chage -d 2019-06-30 test 设置test用户最后一次修改密码的日期为2019年6月30日

chage -d 0 test 代表该用户需立即修改密码

date -d “+45 days” -u 不知道时间可以用date查看

在这里插入图片描述

例:在这里插入图片描述

三、useradd命令

useradd 选项 用户名

useradd -u :指定用户的UID号,要求该UID号码未被其他用户使用

useradd -d :指定与用户的宿主目录位置(当与-M一起使用时,不生效)

useradd -e :指定用户的账号失效时间,可使用 YYYY-MM -DD的日期格式

useradd -g :指定用户的基本组名(或使用GID号)

useradd -G :指定用户的附加组名(或使用GID号)

useradd -M :不建立宿主目录,即使/etc/logi.defs 系统配置中已设定要建立宿主目录

useradd -s :指定用户的登录Shell /sbin/nologin

案例:id boss :显示这是第几个用户,基本组附加组等信息

​ tail -3 /etc/passwd 看到该目录下最后3个用户的信息

​ tail -4 /etc/shadow 显示这几个账户信息

​ useradd -e 2022 -03-19 -s /sbin/nologin 张斌 将该用户修改为程序用户,无法再登录系统

创建一个辅助管理员账号:admin,将其基本组指定为“wheel”,附加组指定为“root”,宿主目录指定为“/admin”

​ useradd -d /admin -g wheel -G root adminid admin

四、设置/更改用户口令 passwd

passwd 命令 :passwd 选项 用户名

passwd -d 清空指定用户账号密码

passwd -l 锁定用户账号

passwd -s 查看账户用户状态是否被锁定

passwd -u 解锁

echo “123456” |passwd --stdin hanxu 批量创建密码,直接创建,不需要多次确认;–stdin用于批量给用户设置初始密码

五、修改用户账号的属性usermod

usermod 命令 usermod 选项 用户名

usermod -I :更改用户账户登录名称

usermod -L :锁定用户账号;

usermod -U :解锁用户账号;

usermod -u :修改用户账户

usermod -d :修改用户的宿主目录位置

usermod -e :修改用户的账户失效时间,可使用 YYYY-MM-DD的日期格式

usermod -g :修改用户的基本组名

usermod -G :修改用户的附加组名(或使用GID号)

usermod -s :修改用户的登录Shell /sbin/nologin/ /bin/bash

六、删除用户账号userdel

userdel -r 用户名

[root@localhost ]# useradd stu01

[root@localhost ]# ls -ld /homelstu01/drwx------ 2 stu01 stu01 4096 09-09 12:38 /homelstu01

/[root@localhost ]# userdel -r stu01 删除用户帐号stu01

[root@localhost ]# ls -ld /homelstu01/ls: /homelstu01/:没有那个文件或目录

经典案例:

在这里插入图片描述

思考:组的分类,当一些用户需要做 同一家事情的时候,把他们加到一个组中便于管理

1.基本组,一般新建用户的时候会随用户自动创建,与用户同名

2.附加组,一般一个用户可以由0个或多个附加组;一个用户只有一个基本组,可以有多个附加组

为什么会创建家目录?为什么会UID从1000开始,UID最大是多少?

是由于/etc/login.defs这个文件中的配置决定的

用户账号的初始配置文件

​ 文件来源:新建用户账号时,从/etc/skel目录中复制而来的

​ 主要的用户初始配置文件:~/.bash_profile

​ ~/.bashrc

​ ~/.bash_logout

在这里插入图片描述

  1. .bash_profile:示例代码中为用户添加了2个环境变量(JAVA_HOME和CLASSPATH),并修改了已有环境变量PATH的值。(PATH的查找是从前开始查找,找到就返回); CLASSPATH的环境变量的值是在JAVA运行时查找加载类的默认classpath

2…bashrc:例子中定义了路径、语言、命令别名(使用rm删除命令是总是加上-i参数需要用户确认,使用ls命令列出文件列表时加上颜色显示)。每次修改.bashrc后。使用source /.bashrc(或者.bashrc)就可以立刻加载修改后的设置,使之生效。一般会在.bash_profile文件中显示调用.bashrc。登录linux启动bash时首先会去读取/.bash_profile文件,这样/.bashrc也就得到执行了,个性化设置也就生效了.

​ 关于环境变量的读取顺序:用户登录->>加载~.bash_profile -->bash_profile中配置了首先是 使~./bashrc生效

3. .bash_logout 用途:用户登出时执行的命令

​ 当前用户登出使。打印出Lohout和当前的时间

echo “Logout,date”

例子:
如果需要每个用户登出时都清除输入的命令历史记录,可以在/etc/skel/.bash_logout文件中添加下面这行rm -f $HOME/.bash_history 。这样,当用户每次注销时,
.bash_history文件都会被删除.
history -c 清除历史记录
history -r /root/history.txt,把命令读进来作为当前bash的历史记录
history -w /root/history.txt,把当前bash的历史记录写入history.txt
echo “history -c” >> ~/.bash_logout
echo “history -c” >> ~/.bash_profil

七、组账号文件

与用户账号文件相类似

​ /etc/group :保存组账号基本信息

​ /etc/gshadow:保存组账号的密码信息

添加组账号groupadd :groupadd命令

groupadd -g 1100 lygroup 设置组号

tail -1 /etc/group

例:在这里插入图片描述

八、gpasswd 命令

gpasswd -a :添加用户到组

gpasswd -d :从组删除用户

gpasswd -A :指定管理员

gpasswd-M :指定组成员和-A差不多,但原有用户全部清空

gpasswd -r :删除密码

gpasswd -R :限制用户入组,只有组中的成员才可以用newgrp加入到该组

例:gapsswd -a lichen lygroup 将李晨添加到lygroup组内

在这里插入图片描述

删除组账号groupdel命令:groupdel 组账号名

例:groupdel market 删除组账号market

九、查询账户信息:

groups 命令:查询用户所属组

groups 用户名

在这里插入图片描述

id命令:查询用户身份标识

id 用户名

在这里插入图片描述

finger 命令:查询用户账号的详细信息;(需要用yum下载这个软件包:yum install finger -y)

finger 用户名

先用yum install 安装软件包


在这里插入图片描述

w、who、user 命令:查询已登录的主机的用户信息在这里插入图片描述User:登录用户名
TTY:登录后系统分配的终端号
From:远程主机名,即从哪登录的login@:何时登录
IDLE:用户空闲时间。这是个计时器,一旦用户执行任何操作,改计时器就会被重置。
JCPU:和终端连接的所有进程占用时间。包括当前正在运行的后台作业占用时间
PCPU:当前进程所占用时间
WHAT:当前正在运行进程的命令行
pts说明是用远程工具连接的,比如1xshell,后面的数字代表登录的时间顺序,越小证明登录的越早

last查看详细信息

last -u boss(用户名)

lastlog -t 2 查看两天内登录的用户的命令

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

​ 访问权限:读取r :允许查看文件内容、显示目录列表

​ 写入w:允许修改文件内容,允许在目录中新建、移动、删除文件或子目录

​ 可执行x:允许运行程序、切换目录

​ 归属(所有权):属主:拥有该文件或目录的用户账号

​ 属组:拥有该文件或目录的组账号

1.查看文件/目录的权限和归属 在这里插入图片描述

在这里插入图片描述

2.设置文件和目录的的chmod

​ chmod命令
在这里插入图片描述
​ 或在这里插入图片描述
常用选项:-R:递归修改指定目录下的所有子项的权限在这里插入图片描述

3.设置文件和目录的归属chown

chown命令:chown 属主 文件或目录

​ chowm 属组 文件或目录

​ chown 属主: 属组 文件或目录

常用选项:chown -R :递归修改指定目录下的所有文件、子目录的归属

在这里插入图片描述

4.权限掩码umask

umask作用: 控制新建的文件或目录的权限

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

umask设置: umaks 022

umask查看: umask

例:将umaks设为000,新建目录或文件,查看权限

​ 将umask设为022,新建目录或文件,再查看权限

在这里插入图片描述
在这里插入图片描述

总结

用户账号管理(useradd、passwd、usermod、userdel)

组账号管理 (groupadd、gpasswd、groupdel)

查询账户相关信息的命令(groups 、id、finger、w)

设置目录与文件权限(chmod)

设置目录与文件归属(chown)

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

umask设置: umaks 022

umask查看: umask

例:将umaks设为000,新建目录或文件,查看权限

​ 将umask设为022,新建目录或文件,再查看权限

[外链图片转存中…(img-d185wFA8-1648740871117)]

[外链图片转存中…(img-81QsxRsj-1648740871118)]

总结

用户账号管理(useradd、passwd、usermod、userdel)

组账号管理 (groupadd、gpasswd、groupdel)

查询账户相关信息的命令(groups 、id、finger、w)

设置目录与文件权限(chmod)

设置目录与文件归属(chown)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值