【AWSL】之Linux账号和权限管理(/etc/passwd、/etc/shadow、useradd、passwd、usermod、groupadd、gpasswd...chmod、chown)

序言

作为一个多用户、多服务的服务器操作系统,Linux提供了严格的权限管理机制,主要从用户身份、文件权限两方面对资源访问进行限制。
Linux最优秀的地方之一就在于它的多人多任务环境,如果你首次接触Linux的话,那么在Linux下面这么多的目录和文件,到底每个目录和文件代表什么意义呢?下面我就来就此做个总结。

一.管理用户账号和组账号

1.概述

①用户账号

  • 超级用户
  • 普通用户
  • 程序用户
    ②组账号
  • 基本组(私有组)
  • 附加组(公共组)
    ③UID和GID
  • UID(用户标识符)
  • GID(组标识符)

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

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

  • 文件位置: /etc/passwd
  • 每一行对应一个用户的账号记录👇
    例:
[root@localhost ~]# head -2 /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin

第二行: root用户账号 x密码占位符 0用户账号ID 0组账号ID root用户说明 /root宿主目录 /bin/bash登录shell

3.用户账号文件/etc/shadow

功能:保存用户的密码、账号有效期等信息

  • 文件位置: /etc/shadow
  • 每一行对应一个用户的密码记录👇
    例:
[root@localhost ~]# head -2 /etc/shadow
root:$6$OuUbuwimLtddNnJx$H2ZqO4izXjefcWNo6gFYjW/60AXG6qqgJcCSDRXU2ra/SB0IkjtNMJkawW5Ha89ogVFVMbZomjJ74pmA3fqTC/:14374:0:99999:7:::
bin:*:17110:0:99999:7:::

第二行:一字段root用户账号 二字段$6$OuUbuwimLtddNnJx$H2ZqO4izXjefcWNo6gFYjW/60AXG6qqgJcCSDRXU2ra/SB0IkjtNMJkawW5Ha89ogVFVMbZomjJ74pmA3fqTC密文密码 三字段:14374:上次修改的时间(从Linux诞生时间点开始计算) 四字段:0:密码的最短有效天数(也就是定义多少天之后可以再次修改密码) 五字段:99999:密码最长有效天数(也就是密码可以存在多少天) 六字段:7:提前多少天警告用户密码过期时间 七字段密码过期后多少天内禁用此用户 八字段账号时间(空的代表账号永久可用) 九字段保留字段(没有特殊用途)

扩展 :*!!:表示此用户不能登录到系统
这里如果是空的::表示用户无需密码登录

4.添加用户账号useradd

常用选项:

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

附加1:

/etc/login.defs 是设置用户帐号限制的文件。该文件里的配置对root用户无效。
如果/etc/shadow文件里有相同的选项,则以/etc/shadow里的设置为准,也就是说/etc/shadow的配置优先级高于/etc/login.defs
#REQUIRED required
#Directory where mailboxes reside, or name of file, relative to the
#home directory. If you do define both, MAIL_DIR takes precedence.
#QMAIL_DIR is for Qmail

#QMAIL_DIR Maildir
MAIL_DIR /var/spool/mail
#创建用户时,要在目录/var/spool/mail中创建一个用户mail文件
#MAIL_FILE .mail
#Password aging controls:

#PASS_MAX_DAYS Maximum number of days a password may be used.
#PASS_MIN_DAYS Minimum number of days allowed between password changes.
#PASS_MIN_LEN Minimum acceptable password length.
#PASS_WARN_AGE Number of days warning given before a password expires.

PASS_MAX_DAYS 99999
#密码最大有效期
PASS_MIN_DAYS 0
#两次修改密码的最小间隔时间
PASS_MIN_LEN 5
#密码最小长度,对于root无效
PASS_WARN_AGE 7
#密码过期前多少天开始提示

#Min/max values for automatic uid selection in useradd
#创建用户时不指定UID的话自动UID的范围
UID_MIN 500
#用户ID的最小值
UID_MAX 60000
#用户ID的最大值

#Min/max values for automatic gid selection in groupadd
#自动组ID的范围
GID_MIN 500
#组ID的最小值
GID_MAX 60000
#组ID的最大值

#If defined, this command is run when removing a user.
#It should remove any at/cron/print jobs etc. owned by
#the user to be removed (passed as the first argument).

#USERDEL_CMD /usr/sbin/userdel_local
#当删除用户的时候执行的脚本

#If useradd should create home directories for users by default
#On RH systems, we do. This option is overridden with the -m flag on
#useradd command line.

CREATE_HOME yes
#使用useradd的时候是够创建用户目录
#The permission mask is initialized to this value. If not specified,
#the permission mask will be initialized to 022.
UMASK 077
#This enables userdel to remove user groups if no members exist.

USERGROUPS_ENAB yes
#用MD5加密密码

附加2:

chage命令:用来修改帐号和密码的有效期限,针对目前系统已经存在的用户
chage [选项] 用户名
-m:密码可更改的最小天数。为零时代表任何时候都可以更改密码。
-M:密码保持有效的最大天数。chage -M 60 root
-w:用户密码到期前,提前收到警告信息的天数。
-E:帐号到期的日期。过了这天,此帐号将不可用。
-d:上一次更改的日期。
-i:停滞时期。如果一个密码已过期这些天,那么此帐号将不可用。
-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 //则代表该test用户需立即修改密码
date -d “+45 days” -u //如果不知道时间可以用date查看
-u:UTC时间
[root@localhost ~]# chage -l root
最近一次密码修改时间 :从不
密码过期时间 :从不
密码失效时间 :从不
帐户过期时间 :从不
两次改变密码之间相距的最小天数 :0
两次改变密码之间相距的最大天数 :99999
在密码过期之前警告的天数 :7
总结:
第三个字段为:密码最后一次修改的时间 (chage -d)
第四个字段为:密码最小修改间隔时间 (chage -m)
第五个字段为:密码的有效期 (chage -M)
第六个字段为:密码需要变更前的警告天数 (chage -W)
第七个字段为:密码过期后的宽限天数 (chage -I)
第八个字段为:账号失效时间 (chage -E)

5.设置/更改用户口令passwd

常用选项:

  • -d 清空指定目录密码
  • -l(passwd -l 用户名)锁定用户账号 (即登录不了账号)
  • -S 查看用户的状态(有无被锁定)
  • -u 解锁用户账号

6.修改用户账号的属性usermod

常用选项:
-l 更改用户的登录名称(Login Name)
-L 锁定用户账号
-U 解锁用户账号
-u、-d、-e、-g、-G、-s与useradd命令中的含义相同

7.删除用户账号userdel

  • userdel -r 表示连用户的宿主目录一并删除
[root@localhost-#useradd stu01 
[root@localhost-#Is -d /home/stu01/
drwx-----2 stu01 stu01 4096 09-09 12:38 /home/stu01/
[root@localhost-#userdel-r stu01
[root@localhost-#Is-ld /home/stu01/
Is: /home/stu01/:没有那个文件或目录 

8.用户账号的初始配置文件

文件来源

  • 新建用户账号时,从/etc/skel目录中复制而来

主要的用户配置文件

  • ~/.bash_profile(文件中命令,启动文件)
  • ~/.bashrc(文件中命令,启动文件)
  • ~/.bash_logout(每次用户退出exit时执行这个文件)

9.组账号文件

与用户账号文件相类似

  • /etc/group:保存组账号基本信息
  • /etc/gshadow:保存组账号的密码信息

①.添加组账号groupadd

命令:groupadd【-g GID号】 组账号名

②.添加/删除组成员gpasswd

gpasswd:设置组账号密码(极少用)、添加/删除组成员
命令:gpasswd 【选项】… 组账号名
常用选项:
-a:向组内添加一个用户

groupadd -g 1200 market
useradd mike
gpasswd -a mike market 将mike加入到market组中

-d:从组内删除一个用户成员

-M:定义组成员列表,以逗号分开

③.删除组账号groupdel

命令:groupdel 组账号名

二.管理目录和文件的属性

1.查询账号信息

  • group 用户名 查询用户所属的组
  • id 用户名 查询用户身份标识
  • finger 用户名 查询用户账号的详细信息
  • w、who、users 查询已登录到主机的用户信息

2.文件/目录的权限和归属

■访问权限

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

3.设置文件/目录的权限chmod

命令:chmod 【ugoa】 【+ - =】【rwx】文件或目录
u、g、o、a分别表示属主、属组、其他用户、所有用户
+、-、=分别表示增加、去除、设置权限
r. w, x分别表示读、写、运行权限

chmod nnn 文件或目录
nnn 三位八进制数

常用选项:
-R:递归修改指定目录下所有子项的权限

4.设置文件/目录的归属chown

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

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

5.权限掩码umask

■umask作用

  • 控制新建的文件或者目录的权限
  • 默认权限去除umask的权限为新建的文件或者目录的权限
    ■umask设置: umask 022 =chmod 755
    ■umask查看: umask
    ■示例
  • 将umask设为000, 新建目录或者文件,查看权限
  • 将umask设为022,新建目录或者文件,再查看权限

总结

  • Linux操作系统资源可以被不同用户使用,每个用户对自己的资源有特定的权限,互不影响。
  • 我们在使用命令的时候,其实有很多地方是相通的,比如查找命令ls 的选项-R 和设置权限命令 chmod 的选项-R ,都是表示以递归的方式去执行某种操作。所以说,在Linux系统中,没有绝对的方法,解决一个问题是有很多种方案的。
  • 希望能给正在学习Linux的朋友带来帮助
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
完整版:https://download.csdn.net/download/qq_27595745/89522468 【课程大纲】 1-1 什么是java 1-2 认识java语言 1-3 java平台的体系结构 1-4 java SE环境安装和配置 2-1 java程序简介 2-2 计算机中的程序 2-3 java程序 2-4 java类库组织结构和文档 2-5 java虚拟机简介 2-6 java的垃圾回收器 2-7 java上机练习 3-1 java语言基础入门 3-2 数据的分类 3-3 标识符、关键字和常量 3-4 运算符 3-5 表达式 3-6 顺序结构和选择结构 3-7 循环语句 3-8 跳转语句 3-9 MyEclipse工具介绍 3-10 java基础知识章节练习 4-1 一维数组 4-2 数组应用 4-3 多维数组 4-4 排序算法 4-5 增强for循环 4-6 数组和排序算法章节练习 5-0 抽象和封装 5-1 面向过程的设计思想 5-2 面向对象的设计思想 5-3 抽象 5-4 封装 5-5 属性 5-6 方法的定义 5-7 this关键字 5-8 javaBean 5-9 包 package 5-10 抽象和封装章节练习 6-0 继承和多态 6-1 继承 6-2 object类 6-3 多态 6-4 访问修饰符 6-5 static修饰符 6-6 final修饰符 6-7 abstract修饰符 6-8 接口 6-9 继承和多态 章节练习 7-1 面向对象的分析与设计简介 7-2 对象模型建立 7-3 类之间的关系 7-4 软件的可维护与复用设计原则 7-5 面向对象的设计与分析 章节练习 8-1 内部类与包装器 8-2 对象包装器 8-3 装箱和拆箱 8-4 练习题 9-1 常用类介绍 9-2 StringBuffer和String Builder类 9-3 Rintime类的使用 9-4 日期类简介 9-5 java程序国际化的实现 9-6 Random类和Math类 9-7 枚举 9-8 练习题 10-1 java异常处理 10-2 认识异常 10-3 使用try和catch捕获异常 10-4 使用throw和throws引发异常 10-5 finally关键字 10-6 getMessage和printStackTrace方法 10-7 异常分类 10-8 自定义异常类 10-9 练习题 11-1 Java集合框架和泛型机制 11-2 Collection接口 11-3 Set接口实现类 11-4 List接口实现类 11-5 Map接口 11-6 Collections类 11-7 泛型概述 11-8 练习题 12-1 多线程 12-2 线程的生命周期 12-3 线程的调度和优先级 12-4 线程的同步 12-5 集合类的同步问题 12-6 用Timer类调度任务 12-7 练习题 13-1 Java IO 13-2 Java IO原理 13-3 流类的结构 13-4 文件流 13-5 缓冲流 13-6 转换流 13-7 数据流 13-8 打印流 13-9 对象流 13-10 随机存取文件流 13-11 zip文件流 13-12 练习题 14-1 图形用户界面设计 14-2 事件处理机制 14-3 AWT常用组件 14-4 swing简介 14-5 可视化开发swing组件 14-6 声音的播放和处理 14-7 2D图形的绘制 14-8 练习题 15-1 反射 15-2 使用Java反射机制 15-3 反射与动态代理 15-4 练习题 16-1 Java标注 16-2 JDK内置的基本标注类型 16-3 自定义标注类型 16-4 对标注进行标注 16-5 利用反射获取标注信息 16-6 练习题 17-1 顶目实战1-单机版五子棋游戏 17-2 总体设计 17-3 代码实现 17-4 程序的运行与发布 17-5 手动生成可执行JAR文件 17-6 练习题 18-1 Java数据库编程 18-2 JDBC类和接口 18-3 JDBC操作SQL 18-4 JDBC基本示例 18-5 JDBC应用示例 18-6 练习题 19-1 。。。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

YJ Thoreau

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值