Linux用户和权限管理
Linux用户和权限管理
用户组Group
组ID→Group ID→GID
- root用户组:GID=0
- 伪用户组:GID=1-999(CentOS 7)
- 普通用户组:GID=1000-65535
查看全部用户组
|
|
查看用户的所属组
|
|
添加用户组
|
|
删除用户组
|
|
用户User
用户ID→User ID→UID
- root用户组:UID=0
- 程序用户组(系统用户组):UID=1-999(CentOS 7)
- 普通用户组:UID=1000-65535
查看全部用户
|
|
添加用户
|
|
修改用户密码
|
|
删除用户
|
|
修改用户信息
|
|
用户管理相关文件
/etc/group
用于存储用户组(Group)的信息
内容格式:组名:组密码:GID:用户列表
- 组名(Group Name):表示组的名称,用于标识组的身份。
- 组密码(Group Password):在早期的UNIX系统中,组密码是以明文形式存储在这个字段中,但在现代的Linux系统中,通常是以占位符或加密的形式表示。实际的组密码信息现在通常存储在
/etc/gshadow
文件中。 - 组ID(Group ID,GID):是一个唯一的数字标识符,用于识别组。每个组在系统中都有一个独特的GID。
- 用户列表(User List):包含属于该组的用户的用户名列表。这些用户名之间使用逗号(
,
)进行分隔。
影子组文件
查看影子组文件
|
|
格式:组名:密码:组管理员:组附加用户列表
在Linux系统中,与影子文件类似,还存在一个影子组文件(shadow group file)的概念,它通常是
/etc/gshadow
文件。影子组文件用于存储组信息的加密版本,提供对组信息的额外安全性。与影子文件类似,影子组文件的目的是将敏感的组信息从普通用户可读取的
/etc/group
文件中分离出来,以增加系统的安全性。影子组文件包含了组的加密密码,这些密码通常被用于对特定组执行特殊操作的权限验证。与影子文件一样,影子组文件也只能由系统管理员(root用户)访问,并具有更高的安全级别。普通用户无法直接读取或修改影子组文件。
通过使用影子组文件,系统管理员可以确保只有经过授权的用户或进程能够对组信息进行更改或访问,从而增加系统的安全性和灵活性。
/etc/passwd
用于存储用户账户的基本信息
内容格式:用户名:密码:UID:GID:全名:home路径:shell工具
- 用户名(Username):表示用户的登录名。
- 密码(Password):在早期的UNIX系统中,密码是以明文形式存储在这个字段中,但在现代的Linux系统中,通常是以占位符或加密的形式表示。实际的密码信息现在通常存储在
/etc/shadow
文件中。 - 用户ID(User ID,UID):是一个唯一的数字标识符,用于识别用户。每个用户在系统中都有一个独特的UID。
- 组ID(Group ID,GID):表示用户所属的主要组的ID。这个ID对应于
/etc/group
文件中的一个组。 - 全名(Full name):是用户的真实姓名或描述性的标识,可以包含任意文本信息。
- 家目录(Home directory):表示用户的主目录或工作目录的路径。当用户登录时,会自动切换到这个目录。
- Shell工具(Shell):指定用户登录后默认使用的命令行解释器或shell。它定义了用户在终端中输入命令时使用的交互式环境。
影子文件
查看影子文件
|
|
格式:用户名:加密密码:上次修改密码的日期:最小修改间隔时间:密密码有效期:密码需要变更前的警告天数:密码过期后的宽限天数:账号失效时间:保留字段
- 用户名(Username):表示用户的登录名。
- 加密密码(Password):存储用户的加密密码,通常以哈希值的形式呈现,而不是明文密码。
- 上次修改密码的日期(Last password change):表示上次用户更改密码的日期,通常以从特定日期(例如1970年1月1日)到更改日期的天数计算。
- 最小修改间隔时间(Minimum password change interval):要求用户在此字段指定的天数之后才能更改密码。
- 密码有效期(Password expiration):表示密码在何时过期,以从特定日期(例如1970年1月1日)到过期日期的天数计算。过期的密码需要用户在下次登录时强制更改。
- 密码需要变更前的警告天数(Password expiration warning):在密码过期之前的天数,系统会向用户发出提醒密码即将过期的警告。
- 密码过期后的宽限天数(Password expiration grace period):密码过期后的宽限期,在此期间内用户仍然可以使用过期的密码登录系统。
- 账号失效时间(Account expiration):表示账户在何时过期,以从特定日期(例如1970年1月1日)到过期日期的天数计算。过期的账户将被禁用。
- 保留字段(Reserved field):该字段目前没有使用,保留供将来使用。
在Linux系统中,影子文件(shadow file)是用于存储用户的加密密码的文件。它通常是
/etc/shadow
文件。影子文件的目的是提高系统的安全性,通过将密码信息从普通的用户可读取的/etc/passwd
文件中分离出来。在早期的UNIX系统中,密码是以明文形式存储在
/etc/passwd
文件中,这使得用户的密码信息容易受到攻击和滥用。为了解决这个安全问题,影子文件的概念被引入。影子文件只能由系统管理员(root用户)访问,并且具有更高的安全级别。它包含了加密后的用户密码、密码过期信息、密码策略等。普通用户无法直接读取或修改影子文件。
当用户尝试登录系统时,系统会将用户提供的密码与影子文件中存储的加密密码进行比较验证。如果密码匹配成功,用户将被授权访问系统。
通过使用影子文件,系统管理员可以更好地保护用户的密码信息,减少潜在的安全风险。
密码格式
生成使用MD5算法加密的密码
|
|
openssl passwd
是一个命令行工具,用于生成密码哈希值。-1
选项表示使用MD5算法进行哈希。-salt admin
选项指定盐值为admin,盐值是用于增加哈希强度和防止彩虹表攻击的随机字符串。123456
是要进行哈希的原始密码。
**/etc/shadow里的密码格式:$id$salt$encrypted **
eg. $1$admin$LClYcRe.ee8dQwgrFc5nz.
数字 | 加密方式 |
---|---|
1 |
MD5 |
2a |
Blowfish (某些Linux发行版) |
5 |
SHA-256 |
6 |
SHA-512 |
/etc/sudoers
用于定义哪些用户和用户组具有使用sudo命令执行特权操作的权限
内容格式:user/host=(runas) command
user
:指定允许执行特权操作的用户或用户组。host
:指定允许执行特权操作的主机或主机组。runas
:指定以哪个用户或用户组的身份执行特权操作。command
:指定允许执行的特权命令或命令组。
eg.kali ALL=(ALL) NOPASSWD: /bin/useradd
sudo命令允许普通用户以超级用户或其他特权用户的身份执行命令
|
|
修改配置文件命令:
|
|
用户管理基本命令
查询用户账号身份标识
|
|
查询用户账号的登录属性
|
|
查询当前主机的用户登录情况
|
|
|
|
查询系统当前在线的用户
|
|
查看用户
|
|
切换用户
|
|
文件和目录归属
修改文件的所属用户 chown [用户] [文件]
修改文件的所属组 chgrp [组] [文件]
文件和目录权限
chmod
命令用于修改文件或目录的权限
全拼:change mode
|
|
options
:表示可选的选项,可以用于更改chmod命令的行为。常见选项包括-R(递归修改所有子目录和文件)和-v(显示详细操作信息)等。mode
:表示要设置的新权限模式。可以使用数字形式(如777、644)或符号形式(如u+rwx、g-w)来指定权限。后续会详细解释权限模式的表示方法。file(s)
:表示要修改权限的文件或目录列表。
示例:
-
添加组用户的写权限。
1
chmod g+w test.log
-
删除其他用户的所有权限。
1
chmod o= test.log
-
使得所有用户都没有写权限。
1
chmod a-w test.log
-
当前用户具有所有权限,组用户有读写权限,其他用户只有读权限。
1
chmod u=rwx, g=rw, o=r test.log
等价的八进制数表示:
1
chmod 764 test.log
-
将目录以及目录下的文件都设置为所有用户拥有读写权限。 注意,使用’-R’选项一定要保留当前用户的执行和读取权限,否则会报错!
1
chmod -R a=rw testdir/
-
根据其他文件的权限设置文件权限。
1
chmod --reference=1.log test.log
改变文件属性-chattr
属性–>特征
权限–>有权利做什么
lsattr
//查看文件属性
chattr [选项] [文件]
选项
-
a
:让文件或目录仅供附加用途。(适用于各种日志文件) -
b
:不更新文件或目录的最后存取时间。 -
c
:将文件或目录压缩后存放。 -
d
:将文件或目录排除在倾倒操作之外。 -
i
:不得任意更动文件或目录。(防止系统中某个关键文 件被篡改) -
s
:保密性删除文件或目录。 -
S
:即时更新文件或目录。 -
u
:预防意外删除。
chattr +a 1.txt
chattr -a 1.txt
查找文件-find
find [目录] [选项]
-name name
, -iname name
: 文件名称符合 name 的文件。iname 会忽略大小写
-name
:严格查找 -iname
:模糊查找
当我站在传授他人的角度思考问题时
才能真正领悟并融会贯通
博客受益者是未来那个遗忘某个技术的自己