【Linux系列教程】用户和用户组的管理
【Linux系列教程】用户和用户组的管理
一、用户的介绍
- 多用户多任务的操作系统
- 用户、用户组
- 用户组
- 便于统一设置权限
1.用户的相关文件
- /etc/passwd
- 用户信息
- 格式
- 用户名:X:uid:gid:说明信息:家目录:shell
- shell 翻译的作用
- /bin/bash 默认
- /sbin/nologin 不允许登录系统
- shell 翻译的作用
- 用户信息
- /etc/passwd
- /etc/shadow
- 用户密码信息
- $6$6iQ2r92GW8UiDSBy$B23qIJIqmASBwZf/FcrlfijEn
- $6: SHA算法,红帽5.x版本为$1 MD5算法
- salt 盐,随机数
- /etc/shadow
- /etc/group
- 用户组
- /etc/group
2.用户类型
- 管理员用户
- root, 0
- 管理员用户
- 普通用户
- 1000以后
- 普通用户
- 系统用户
- 1—-999
- 保证某应用、软件可正常安装部署、运行
- 不允许登录系统 /sbin/nologin
- 系统用户
3.用户组
- 基本组
- 一个用户只能加入一个基本组
- 基本组
- 附加组/从属组
- 一个用户加入多个附加组
- 附加组/从属组
二、用户的操作
1.创建用户
# useradd [选项] 用户名
[root@localhost ~]# useradd zzj #创建一个名为zzj的用户
-u 指定用户的UID
[root@localhost ~]# useradd -u 2000 user01
[root@localhost ~]# id user01 #查看用户ID
uid=2000(user01) gid=2000(user01) 组=2000(user01)
-G 指定用户附加组
[root@localhost ~]# groupadd jishu #创建jishu组
[root@localhost ~]# useradd -G jishu jerry #创建jerry用户并且加入到jishu这个组里
[root@localhost ~]# id jerry
uid=2001(jerry) gid=2002(jerry) 组=2002(jerry),2001(jishu)
[root@localhost ~]# grep "jishu" /etc/group
jishu:x:2001:jerry
-g指定用户主组
[root@localhost ~]# groupadd jishu
[root@localhost ~]# useradd -g jishu tom
[root@localhost ~]# id tom
uid=2003(tom) gid=2001(jishu) 组2001(jishu)
[root@localhost ~]# grep "jishu" /etc/group
jishu:x:2001:jerry,tom
-s 指定shell -M 不创建家目录
创建系统账户会用到
[root@localhost ~]# useradd -u 111 -s /sbin/nologin -M www
[root@localhost ~]# grep "www" /etc/passwd
www:x:111:2003::/home/www:/sbin/nologin
2.设置用户密码
- 只有root用户可修改其他用户密码
- 普通用户只能修改自己的密码
# passwd [选项] [用户名]
[root@localhost ~]# passwd zzj
更改用户 zzj 的密码 。
新的 密码: #注意!!!Linux系统在输入密码的时候不会显示出来
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
-l 锁定用户
被锁定的用户无法登陆
[root@localhost ~]# passwd -l zzj
锁定用户 zzj 的密码 。
passwd: 操作成功
-u 解锁用户
[root@localhost ~]# passwd -u zzj
解锁用户 zzj 的密码。
passwd: 操作成功
3.切换用户
# su - 用户名
[root@localhost ~]# su - zzj
上一次登录:二 7月 12 11:06:42 CST 2022pts/1 上
[zzj@localhost ~]$
[zzj@localhost ~]$ exit
登出
4.删除用户
# useradel 用户名
[root@localhost ~]# userdel -r zzj
[root@localhost ~]# grep "zzj" /etc/passwd
[root@localhost ~]# ls /home/
AA martin
[root@localhost ~]# ls /var/spool/mail/
AA martin rpc
5.用户组
a.创建用户组
# groupadd 用户组名
b.删除用户组
# groupdel 用户组名
6.查看用户信息
a.查看用户ID
[root@localhost ~]# id zzj
uid=1002(zzj) gid=1002(zzj) 组=1002(zzj)
b.查看当前登录账户
[root@localhost ~]# whoami
root
[root@localhost ~]# su - zzj
[zzj@localhost ~]$ whoami
zzj
c.查看都有哪些用户正在登录
[root@localhost ~]# who
root :0 2022-07-12 09:05 (:0)
root pts/0 2022-07-12 11:28 (:0)
7.修改用户信息
# usermod [选项] 用户名
-u 修改uid
[root@localhost ~]# usermod -u 6666 zzj
-s 修改shell
root@localhost ~]# grep "www" /etc/passwd
www:x:111:2003::/home/www:/sbin/nologin
[root@localhost ~]# usermod -s /bin/bash www
[root@localhost ~]# grep "www" /etc/passwd
www:x:111:2003::/home/www:/bin/bash
-G 修改组
[root@localhost ~]# id jerry
uid=2001(jerry) gid=2002(jerry) 组=2002(jerry),2001(jishu)
[root@localhost ~]#
[root@localhost ~]# groupadd caiwu
[root@localhost ~]# usermod -G caiwu jerry
[root@localhost ~]#
[root@localhost ~]# id jerry
uid=2001(jerry) gid=2002(jerry) 组=2002(jerry),2004(caiwu)
-aG 同时添加到其他组
[root@localhost ~]# usermod -aG jishu jerry
[root@localhost ~]#
[root@localhost ~]# id jerry
uid=2001(jerry) gid=2002(jerry) 组=2002(jerry),2001(jishu),2004(caiwu)
三、踢出用户组
# gpasswd -d 用户 用户组
[root@localhost ~]# gpasswd -d jerry caiwu
[root@localhost ~]# id jerry
uid=2001(jerry) gid=2002(jerry) 组=2002(jerry),2001(jishu)
四、用户的相关配置文件
- 默认会在用户家目录下创建几个隐藏文件
[root@localhost ~]# ls -a /home/student/
. .bash_history .bash_profile .cache .mozilla
.. .bash_logout .bashrc
1、用户配置文件
- 创建用户时,系统会自动从/etc/skel目录复制配置文件到用户的家目录
[root@localhost ~]# ls -a /etc/skel/
. .. .bash_logout .bash_profile .bashrc .mozilla
[root@localhost ~]# ls -a /home/userB/
. .. .bash_logout .bash_profile .bashrc .mozilla
2 .bashrc
- 在用户打开终端时,自动执行该文件中的操作
- 典型应用于定义命令别名
- ~/.bashrc 针对当前用户生效
- /etc/bashrc 针对所有用户生效
3 .bash_profile
- 在用户登录系统时, 会自动执行该文件中的操作
- 典型应用于定义环境变量
- ~/.bash_profile 针对当前用户生效
- /etc/profile 针对所有用户生效
[root@localhost ~]# vim /root/.bash_profile
export PS1='\[\e[31;1m\]\u\[\e[0m\]\[\e[32;1m\]\[\e[0m\]:\[\e[35;1m\]\w\[\e[0m\]\n\$'
4 .bash_history
- 对应用户的历史命令
a.查看历史命令
[root@localhost ~]# history
b.删除历史命令
[root@localhost ~]# history -c
5 .bash_logout
- 用户登出时提示
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 WangShengJJのblog!