本文共 2541 字,大约阅读时间需要 8 分钟。
Linux系统的用户管理是一个核心任务,了解和掌握相关命令和知识点对于系统管理来说非常重要。在这里,我将从身份、用户组、用户操作、权限管理等多个方面,为你详细介绍Linux用户管理的相关知识。
在Linux系统中,身份主要分为以下几种:
管理员:UID为0,系统管理员用户
-UID为0的用户通常拥有最高权限,能够对系统进行管理如安装软件、配置服务器等。这些用户通常是系统管理员。系统用户(UID1~999)
-Linux系统为防止服务程序被黑客提权导致整个服务器被控制,默认会运行在独立的用户账户中。这样即使一个服务程序被 compromises, attacker 也无法获取整个系统的权限,只能受限于该服务用户的权限。普通用户(UID1000及以上)
-普通用户是由管理员创建的用于日常工作的用户,权限通常较低,适用于普通用户和开发人员。Linux系统中的用户组管理也非常重要:
基本用户组
-每个用户都默认属于一个基本用户组。这与Windows中的用户组类似,但用户只能属于一个基本用户组。扩展用户组
-用户可以属于多个扩展用户组。例如,一个用户可能同时属于“开发者组”和“管理组”,这会赋予他在不同情境下的不同的权限。用户组的创建
-默认情况下,当创建一个用户时,会为他创建一个对应的基本用户组,该组中只有他一个人。而且,其他用户可以被汇总到其他用户组中。理解用户和用户组的关系对于配置权限和监控用户访问非常重要。
useradd命令
-语法:useradd [选项] 用户名
-默认用户家目录在/home/用户名
,默认shell是/bin/bash
。例如:useradd -d /home/linux -u 8888 -s /sbin/nologin chen_u1
这个命令创建一个名为chen_u1
的用户,指定了他家目录为/home/linux
,UID为8888(默认用户从1000开始),并设置了不可登录的shell。
查询用户信息
-使用id
命令:id chen_u1
这将显示chen_u1
用户的详细信息,如UID、GID(用户组ID)、用户组、shell等。
usermod [选项] 用户名
-可以修改用户的名称、组、Uid、Gid、注释、shell、显示名等属性。例如,修改用户的GID(用户组ID):
usermod -g 1000 chen_u1
passwd命令
-语法:passwd
-修改当前用户的密码,如:passwd
将提示你输入旧密码和新密码。如果输入错误可能会失败,但不会显示错误信息。
强制密码修改
-如果希望用户在下次登录时修改密码,可以使用-e
选项:passwd -e
禁用账户
-使用-l
选项禁用账户:passwd -l chen_u1
账户变为不可登录,用户无法再登录系统。
解锁账户
-使用-u
选项解锁:passwd -u chen_u1
userdel [选项] 用户名
-默认情况下,用户和其家目录会被删除。使用-r
参数可以删除用户及其所有相关数据:userdel -r chen_u1
文件和目录权限通常用三位字符表示,分别代表读(r)、写(w)、执行(x)权限。例如:
-r-xr-x
: 读和执行权限被允许,但写权限不允许。chmod命令
-语法:chmod [参数] permissions 文件或目录
-参数可以是权限字符(如-rwxr--r--
)或数字(如666
)。例如:
chmod 644 example.txt
将设置example.txt
的权限为644(读、写、执行)。
或者用简写形式:
chmod rw-r--r-- example.txt
chown命令
-语法:chown [参数] owner:group 文件或目录
-参数可以是用户名或UID,指定文件或目录的所有者和所属组。例如:
chown root:bin text.txt
suid权限
-suid(set user ID bit)权限适用于可执行文件,使得执行文件时,其权限与文件所有者相同。 -命令:
chmod u+s file`sgid权限
-sgid(set group ID bit)权限适用于文件或目录,赋予用户或组运行该文件或目录的权限。-命令:chmod g+s directory
sbit权限
-sbit权限只能应用于目录,表示只有文件的拥有者才能删除该目录中的文件。不适用于普通文件。-命令:chmod o+t directory
隐藏属性的管理
-使用命令chattr
设置文件的隐藏属性:chattr +a xxx file
参数+a
表示设置隐藏属性。
隐藏属性可以用于隐藏文件或限制文件的访问,例如隐藏敏感文件。
文件访问控制列表的功能
-ACL允许创建针对特定用户或组的权限规则,使得管理员可以更精细地控制文件和目录的访问。设置ACL
-使用命令setfacl
:setfacl -Rm u:chen_test:777 /root
例如,-Rm
表示递归设置ACL,u:chen_test:777
指定了用户chen_test
的权限。
查看ACL
-命令:getfacl
。例如:getfacl /root
切换用户身份
-使用su
或sudo
命令切换用户:su - root
或者:
sudo command
sudo
命令允许执行特定命令的权限,而不需要管理员密码。
限制用户权限
-sudo
的默认行为是记录每条命令的日志。例如:sudo -l
会显示当前用户可执行的所有命令。
配置sudo
-配置文件/etc/sudoers
决定了sudo权限的具体设置。只有root管理员才能编辑这个文件。通过以上命令和知识,您可以更好地管理Linux系统中的用户和权限。掌握这些技能对日常的系统维护和安全管理非常有帮助。
转载地址:http://acyaz.baihongyu.com/