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