Linux 多用户多任务系统:用户、用户组与环境变量管理详解

Linux 多用户多任务操作系统详解

Linux 是一个多用户多任务的操作系统,不同用户通过合理的权限管理,可以同时操作系统而互不影响。本文整理了用户类型、相关配置文件、用户和用户组的管理命令,以及默认配置文件和环境变量设置,帮助你快速掌握 Linux 用户管理基础。


1、用户类型

管理员用户(root)

root:x:0:0:Superuser:/:
# root 用户 UID = 0

普通用户

acedia:x:1000:1000:acedia:/home/acedia:/bin/bash
# 普通用户 UID 从 1000+ 开始

系统用户

bin:x:1:1:bin:/bin:/sbin/nologin
# 系统用户 UID 范围:1 - 999

2、用户相关文件

统计用户数

wc -l /etc/passwd | awk '{print $1}'

用户信息文件 /etc/passwd

cat /etc/passwd
用户名:口令:UID:GID:描述:主目录:登录Shell
  • 用户名
    存放在 /etc/passwd

  • 口令
    Linux 使用 shadow 技术,真正的密码保存在 /etc/shadow,而 /etc/passwd 中显示 x*

  • UID(用户标识号)

    • 0:超级用户

    • 1–999:系统用户

    • 1000+:普通用户

  • GID(组标识号)
    用户所属的组

    • 基本组:唯一

    • 附加组:可多个

  • 主目录
    用户登录后的起始目录。

  • Shell

    • /bin/bash:默认 shell,可登录交互。

    • /sbin/nologin:禁止交互式登录。

用户密码文件 /etc/shadow

cat /etc/shadow
root:$6$.tOIs8q/029alnEv$xxxx:0:99999:7:::

字段说明:

  • 登录名

  • 加密口令(SHA-512 + 盐值)

  • 最后一次修改时间

  • 最小/最大修改间隔

  • 密码过期警告时间

  • 账号失效时间

用户组文件 /etc/group

cat /etc/group

3、用户管理

创建用户(useradd)

useradd [选项] 用户名

示例:

useradd -s /bin/sh -g group -G adm,root gem

选项说明:

  • -c comment 添加备注

  • -d 目录 指定主目录

  • -g 主组

  • -G 附加组

  • -s 指定 shell(默认 /bin/bash

  • -M 不创建家目录(系统用户)

  • -r 创建系统用户


切换用户(su)

su - 用户名

查看用户 ID(id)

id 用户名

查看用户登录信息(who)

who

设置用户密码(passwd)

passwd 用户名

常用选项:

  • -l 锁定用户

  • -u 解锁用户

  • -d 删除密码

  • -f 强制下次登录修改密码

删除用户(userdel)

userdel -r 用户名

修改用户(usermod)

usermod -aG group 用户名

选项说明:

  • -c 修改备注

  • -d 修改主目录

  • -e 设置有效期

  • -f 设置密码过期缓冲天数

  • -g 修改主组

  • -G 修改附加组(不加 -a 会覆盖)

  • -l 修改用户名

  • -L 锁定用户

  • -s 修改 shell

  • -u 修改 UID

  • -U 解锁用户


4、用户组管理

创建用户组(groupadd)

groupadd [-g GID] 组名

删除用户组(groupdel)

groupdel 组名

将用户加入组(gpasswd)

gpasswd -a 用户名 组名
gpasswd -d 用户名 组名

常用选项:

  • -a 添加用户

  • -d 删除用户

  • -A 设置组管理员

  • -M 设置组成员

  • -r 删除组密码

  • -R 限制组外用户加入


5、默认文件模板

新建用户时,系统会从 /etc/skel/ 目录复制默认配置文件。

ls -a /etc/skel/
.bash_logout
.bash_profile
.bashrc

6、定义命令别名

  • 全局生效 /etc/bashrc

  • 用户生效 ~/.bashrc

示例:

alias lds='ls -l -d /etc'
source /etc/bashrc

7、环境变量

查看环境变量

echo $LANG

修改环境变量

  • 单个用户(优先级高):~/.bash_profile

export LANG=en_US.UTF-8
source ~/.bash_profile
  • 所有用户:/etc/profile

export LANG=zh_CN.UTF-8
source /etc/profile

 


 

暂无评论

发送评论 编辑评论


				
上一篇