Linux账号和权限管理(少年心怀乌托邦心仍向阳肆生长)(一)

简介: Linux账号和权限管理(少年心怀乌托邦心仍向阳肆生长)(一)

目录



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


1.1 用户账号类型


1.2 组账号


1.2.1 基本组(私有组)


1.2.2 附加组(公共组)


1.3 ID


1.3.1 UID


1.3.2 GID


1.3.3 用户和组的关系


1.4 用户账号管理


1.14.1文件位置


1.4.2添加用户 useradd


1.4.3 密码管理 passwd


1.4.4修改用户账号的属性 usermod


1.4.5 删除用户 userdel


1.4.6用户账号的初始配置文件


1.5组管理


1.5.1组账号文件


1.5.2添加组groupadd


1.5.3组内管理gpasswd


1.5.4删除组账号groupdel


1.5.5查询账号信息


二、文件、目录的权限和归属


1.2.1 chmod


1.2.2 chown


1.2.3 umask


三、总结


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



1.1 用户账号类型


Linux中每个用户是通过 User Id (UID)来唯一标识的新建用户 1-60000 自动分配 0-65535 端口号


超级用户(默认root)UID:0


普通用户(权限受制的用户)UID:500+ (CentOS6以前), 1000+(CentOS7以后) 不指定顺序


程序用户(系统默认不登录的用户)UID:1-499 (CentOS 6以前), 1-999 (CentOS 7以后)


1.2 组账号


将多个用户集合起来,统一分配某种相同的权限(开通或关闭)


基本组:有且唯一


附加组:可有可无,可以有多个


1.2.1 基本组(私有组)


建立账户时,若没有指定账户所属的组,系统会建立一个和用户名相同的组,这个组就是私有组,这个组默认只容纳了一个用户。只有当系统建立的和用户同名的组才是私有组


在用户所属组中的第一个组称为基本组,基本组在 /etc/passwd 文件中指定


1.2.2 附加组(公共组)


附加组:除了第一个组外的其他组为附加组或公共组,附加组在 /etc/group 文件中指定


[root@localhost ~]# id lisi
uid=1004(lisi) gid=1004(lisi) 组=1004(lisi),1005(stevelu)
               1004为基本组或私有             1005为附加组或公共组
[root@localhost ~]# cat /etc/group
root:x:0:
mail:x:12:postfix
---------------------------
postfix:代表附加组
root:组名
x:密码占位符
0:GID


1.3 ID


1.3.1 UID


UID(User IDentity,用户标识号):Linux 操作系统中的每一个用户账号都有一个数字形式的身份标记,称为 UID(UserIDentity,用户标识号),对于操作系统核心来说,UID 是区分用户的基本依据,原则上每个用户的 UID 号应该是唯一的。


root 用户账号的 UID 号为固定值 0


centos7普通用户是从1000起到60000


centos6 普通用户500~60000


#uid 的范围定义在此文件中
[root@localhost ~]# vim /etc/login.defs
#
# Please note that the parameters in this configuration file control the
# behavior of the tools from the shadow-utils component. None of these
# tools uses the PAM mechanism, and the utilities that use PAM (such as the
# passwd command) should therefore be configured elsewhere. Refer to
# /etc/pam.d/system-auth for more information.
#
# *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
#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     #设置密码最大的天数,99999表示永久
PASS_MIN_DAYS   0         #设置密码最小的天数,表示什么时候可以改密码
PASS_MIN_LEN    5         #密码最小长度
PASS_WARN_AGE   7         #告警
#
# Min/max values for automatic uid selection in useradd
#
UID_MIN                  1000
UID_MAX                 60000           #最大UID号
# System accounts
SYS_UID_MIN               201
SYS_UID_MAX               999
#
# Min/max values for automatic gid selection in groupadd
#
GID_MIN                  1000
GID_MAX                 60000            #最大GID号
# System accounts
SYS_GID_MIN               201
SYS_GID_MAX               999
#
# 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
# 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
# Use SHA512 to encrypt password.
ENCRYPT_METHOD SHA512


1.3.2 GID


GID(Group IDentify,组标识号):与 UID 类似,每一个组账号也有一个数字形式的身份标记,称为 GID(Group IDentity,组标识号)


root 组账号的 UID 号为固定值 0


centos7普通用户组账号是从1000起到60000


centos6 普通用户组账号500~60000


1.3.3 用户和组的关系


用户是员工,组是职位


员工可以兼职多个岗位


默认当你创建一个新用户时会自动创建一个和之同名的主组


用户的主要组(primary group):用户必须属于一个且只有一个主组,默认创建用户时会自动创建和用户名同名的组,做为用户的主要组,由于此组中只有一个用户,又称为私有组


用户的附加组(supplementary group): 一个用户可以属于零个或多个附加组


1.4 用户账号管理

1.14.1文件位置

/etc/passwd

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


[root@localhost ~]#  cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
。。。。。。
zhangsan:x:1001:1001::/home/zhangsan:/bin/bash
1.zhangsan:用户名
2.x:密码占位符
3.1001:UID
4.1001:GID
5. :描述信息(备注)
6./home/zhangsan:家目录
7./bin/bash:shell环境

a2b711dd71964c819563fe48cde7a52f.png


/etc/shadow


存放保存密码


[root@localhost ~]# cat /etc/shadow
root:$6$g/wLiv/XMGAlswxL$yYGP/WJbaT8aBazAizikoBoXFx6Ggl/q5pcZcTqzw7H8PMliWbQQm2oQqq1ZFD60c6IyZGoNyTCR36.sYYgF10::0:99999:7:::
bin:*:17632:0:99999:7:::
。。。。。。
zhangsan:!!:19043:0:99999:7:::


第一字段:用户名


第二字段:密码 ,当为*或!!时表示用户不能登录到此系统,若该字段为空,则表示无需密码即可登录


第三字段:上次修改密码时间,最后一次修改密码的时间


以linux诞生的第一年(1970 年 01 月 01 日 )作为元年开始计算


date -d '1970-01-01 19043 days'
#计算实际修改日期


第四字段:最小修改密码间隔时间


第五字段:密码有效期


第六字段:密码到期提醒(提示密码即将过期时间)


第七字段:密码过期后的宽限天数 (密码过期后多少天禁用此用户)


第八字段:账号失效时间 ,同第 3 个字段一样,使用自 1970 年 1 月 1 日以来的总天数作为账户的失效时间


第九字段:保留字段(收费内容 )


1.4.2添加用户 useradd

常用参数:


-D 改变新建用户的预设值
-c 添加备注文字
-d 指定用户的宿主目录位置(当与-M 一起使用时,不生效)
-e 用户终止日期,日期的格式为YYYY-MM-DD
-f 用户过期几日后永久停权。当值为0时用户立即被停权,而值为-1时则关闭此功能,预设值为-1
-g 指定用户对应的用户组
-G 指定用户的附加组名
-m 用户目录不存在时则自动创建
-M 不建立用户家目录,优先于/etc/login.defs文件设定
-n 取消建立以用户名称为名的群组
-s 指定用户的登录 Shell /sbin/nologin(不能登录) 
-u 指定用户id


若未明确指定用户的宿主目录,则在/home 目录下自动创建与该用户账号同名的宿 主目录,并在该目录中建立用户的各种初始配置文件。


若没有明确指定用户所属的组,则自动创建与该用户账号同名的基本组账号,组账 号的记录信息将保存到/etc/group 和/etc/shadow 文件中。

image.png

image.png

image.png





1.4.3 密码管理 passwd

常用参数:


-d 删除密码
-l 锁定用户密码,无法被用户自行修改
-u 解开已锁定用户密码,允许用户自行修改
-e 密码立即过期,下次登陆强制修改密码
-k 保留即将过期的用户在期满后能仍能使用
-S 查询密码状态

image.png

image.png


--stdin表示标准输入


image.png

image.png



1.4.4修改用户账号的属性 usermod

usermod (针对已经存在的用户进行修改)


常用参数:


-d<登入目录> 修改用户登入时的目录
-e<有效期限> 修改账号的有效期限
-f<缓冲天数> 修改在密码过期后多少天即关闭该账号
-g<群组> 修改用户所属的群组
-G<群组> 修改用户所属的附加群组
-l<账号名称> 修改用户账号名称
-L 锁定用户密码,使密码无效
-s<shell> 修改用户登入后所使用的shell
-u<uid> 修改用户ID
-U 解除密码锁定



效果与useradd一样,就不一一显示


注:使用passwd锁定用户可以用usermod解锁,反之亦可


1.4.5 删除用户 userdel


常用参数:


-f 强制删除用户账号
-r 删除用户主目录及其中的任何文件

image.png


1.4.6用户账号的初始配置文件


~/ .bash_profile:此文件中的命令将在该用户每次登录时被执行,他会设置一些环境变量,并且会调用该用户的~/.bashrc文件

~/.bashrc:此文件中的命令将在该用户每次打开新的bash shell时执行

~/.bash_logout:此文件中的命令将在该用户每次退出时bash shell时使用

注:用户宿主目录下的初始配置文件只对当前用户有效,全局配置在/etc/bashrc


image.png

image.png



~/.bashrc运行的情况:


打开登录

切换用户

打开新的bash环境

#每次su切换账户或者输入bash,就是切换不同的bash环境,每个bash环境的历史命令不同
[root@localhost ~]# pstree
─sshd─┬─sshd───bash───pstree
        │      └─sshd───bash
[root@localhost ~]# bash 
[root@localhost ~]# bash
[root@localhost ~]# pstree
├─sshd─┬─sshd───bash
        │      └─sshd───bash───bash───bash───pstree
目录
相关文章
|
4月前
|
算法 Linux 数据安全/隐私保护
【linux】root大王如何制约普通用户——权限管理
【linux】root大王如何制约普通用户——权限管理
|
6月前
|
算法 Linux 数据安全/隐私保护
Linux权限管理:深入理解setuid、setgid、seteuid和setegid
Linux权限管理:深入理解setuid、setgid、seteuid和setegid
544 0
|
21天前
|
Linux 数据安全/隐私保护
linux权限管理
本文介绍了Linux系统中的权限管理,包括权限的概念、用户和用户组与权限的关系、文件权限位的说明以及rwx权限的具体含义。同时,详细讲解了如何使用`chmod`和`chown`命令更改文件和目录的权限,并通过多个实验演示了不同权限组合对文件和目录的实际影响。最后,总结了文件和目录权限的一些重要知识点,帮助读者更好地理解和应用Linux权限管理。
43 1
linux权限管理
|
1月前
|
Linux 数据安全/隐私保护
探索Linux操作系统下的权限管理
【8月更文挑战第66天】在数字世界中,操作系统的权限管理就如同现实世界中的钥匙和锁,保护着我们的数据安全。本文将带你深入理解Linux系统中的权限设置,通过实际代码示例,让你掌握文件和目录权限的分配与管理技巧。准备好了吗?让我们开始这场关于权限管理的探险之旅吧!
87 14
|
3月前
|
监控 安全 Linux
在Linux中,某个账号登陆linux后,系统会在哪些日志文件中记录相关信息?
在Linux中,某个账号登陆linux后,系统会在哪些日志文件中记录相关信息?
|
5月前
|
网络协议 Linux 数据安全/隐私保护
【Linux操作系统】权限管理和粘滞位
【Linux操作系统】权限管理和粘滞位
【Linux操作系统】权限管理和粘滞位
|
5月前
|
安全 Linux Shell
【Linux】权限管理
【Linux】权限管理
49 5
|
6月前
|
运维 安全 Linux
深入理解 Linux 文件系统的权限管理
【5月更文挑战第30天】 在 Linux 操作系统中,文件系统权限管理是维护系统安全与数据完整性的基石。本文旨在深入探讨 Linux 权限模型的核心概念、实现机制及其对系统安全性的影响。通过对用户身份、文件权限和访问控制列表(ACL)等关键元素的剖析,揭示权限管理在实际操作中的应用细节。文章还将讨论如何有效配置权限来优化系统性能和提升安全性,以及解决常见的权限问题的策略。
|
6月前
|
Linux PHP 数据安全/隐私保护
深入理解PHP7的返回值类型声明深入理解 Linux 文件系统的权限管理
【5月更文挑战第30天】在PHP7中,引入了返回值类型声明的特性。这一特性使得开发者可以在函数定义时指定函数应返回的值的类型。本文将详细解析返回值类型声明的用法,以及它在实际开发中的应用,帮助读者更好地理解和使用这一特性。
|
6月前
|
安全 Linux 数据安全/隐私保护
深入理解Linux文件系统的权限管理
【5月更文挑战第24天】 在Linux操作系统中,文件系统权限管理是维护系统安全和用户数据隔离的关键机制。本文将深入探讨Linux文件系统中的权限模型,包括用户、组和其他类别的读、写、执行权限。我们将分析权限位的具体含义,如何通过命令行工具修改权限,以及权限掩码(umask)的作用。此外,我们还将讨论文件系统权限在实际应用中的常见问题及其解决方案,帮助读者构建更为安全且高效的Linux工作环境。
下一篇
无影云桌面