(一)用户账号管理
- 概念 【可参考以下】
(1条消息) Linux使用者与群组的概念_陈yy哦的博客-CSDN博客
即 文件拥有者,群组概念,其他人概念,用户身份与记录群主记录的文件
用户与用户组文件:
在Linux系统当中,默认情况下所有用户信息保存在/etc/passwd文件内(包括root用户),用户密码信息保存在/etc/shadow文件内;所有用户组信息保存在/etc/group文件内,用户组密码信息保存在/etc/gshadow文件内。这四个文件非常重要,不要轻易做变动。
文件 | 作用 |
/etc/passwd | 用户账户信息 |
/etc/shadow | 账户密码信息 |
/etc/group | 组账户信息 |
/etc/gshadow | 组密码信息 |
/etc/login.defs | 设置用户账号限制文件,但配置对root用户无效 |
(二)用户操作
切换用户
创建普通用户【hower】,登录root用户
root切换到普通用户【提示符由#变成$】
普通用户切换到root 用户或者其他用户
执行:exit 命令【也可以执行两次 exit 命令,返回最开始的环境】
执行:su root 命令
查看环境变量,执行:env
root用户环境变量如下:[先切换至root用户,再查看环境变量]
普通用户环境变量如下:[先切换至普通用户,再查看环境变量]
以下命令,记得切换到root用户进行
查看用户
查看全部用户,执行: cat /etc/passswd
说明:
/etc/passwd文件是Linux中的重要系统文件之一,主要作用是存储系统用户的信息。文件中的每一行表示一个用户信息,有多少行就表示多少个用户信息。各内容之间通过“:”号划分成了多个字段,共7部分,这7部分分别定义了用户的不同属性。
以passwd文件中howard一行为例介绍各个字段作用
howard | :x | :1000 | :1000 | :howard | :/home/howard | :/bin/bash |
用户名称 | :用户密码 | :用户UID | :用户组GID | :用户说明 | :用户家目录 | :shell解释器 |
查看系统内置用户与新增用户,执行 cat /etc/passwd | head -n
说明:| 是管道命令,head -3 表示显示前3条记录
末尾记录,执行:cat /etc/passwd | tail -n
说明:
| 是管道命令,tail -3 表示显示末尾3条记录
新增用户的id必然大于或等于1000
howard用户的用户id是1000,不是系统内置用户,而是新增用户
查看不能登录的伪用户,执行 cat /etc/passwd | grep nologin
说明:
| 是管道命令, grep 是抓取命令(可使用通配符*),合在一起表示抓取前一个命令的结果中满足条件的信息
查看指定某个用户的信息,执行 cat /etc/passwd | grep hower
注意:
hower是用户名
添加用户
语法:
useradd[选项]用户名
选项说明:
参数 | 说明 |
-g | 主组 |
-G | 附加组 |
-d | 主目录 |
-s | 指定用户登录后使用的shell,默认值是/bin/bash |
-c | 注释 |
-u | 用户ID |
-p | 密码 |
useradd+参数+参数
注意事项:
- 添加用户,不设置主组,会默认创建同名的主组。
- 增加用户账号就是在
/etc/passwd
文件中为新用户增加一条记录,同时更新其他系统文件/etc/shadow
,/etc/group
等。
修改用户
例如修改用户的主目录、登录名、登录shell、密码到日期等,需要使用usermod命令
格式:
usermod[选项]用户名 (其中mod是单词modify的前三个字母)
选项说明:
参数 | 说明 |
-a | -append##把用户追加到某些组中,仅与-G选项一起使用 |
-c | -comment##修改/etc/passwd文件第五段comment |
-d | -home##修改用户的家目录通常和-m选项一起使用 |
-e | -expiredate##指定用户账号禁用的日期,格式YY-MM-DD |
-f | -inactice##用户密码过期多少天后就禁用该账号,0表示密码已过期就禁用账号,-1表示禁用此功能,默认值是-1 |
-g | -gid##修改用户的gid,改组一定存在 |
-G | -groups##把用户追加到某些组中,仅与-a选项一起使用 |
-l | -login##修改用户的登录名称 |
-L | -lock##锁定用户的密码 |
-m | -move-home##修改用户的家目录通常和-d选项一起使用 |
-s | -shell##修改用户的shell |
-u | -uid###修改用户的uid,该uid必须唯一 |
-U | -unlock###解锁用户的密码 |
例:修改用户mike
运用/etc/passwd和etc/shadow文件里查看更改后的用户信息
查看mike用户主目录
删除用户
语法格式:
userdel[选项]用户名 (del是单词delete的前三个字母)
选项说明:
选项 | 说明 |
-f | (forcible)强制删除用户,即使用户当前已登录 |
-f | (recursive)删除用户的同时,删除与用户相关的所有文件 |
强制删除用户,执行:userdel -rf mike
查看是否还有mike用户【彻底删除用户】
再次执行删除命令,可以看到会提示用户不存在
查看/home目录中是否有dear-mike
后续需要,创建mike用户
(三)用户组操作
- 增删改用户组
操作 | 语法格式 |
添加用户组 | 用户组id 用户组名 【groupadd -g】 |
修改用户组 | 用户组id 用户组名 【groupmod -g】 |
删除用户组 | 用户组名 【groupdel】 |
- 用户组里增删改用户
操作 | 语法格式 |
用户组里添加用户 | 用户组 用户名 【useradd -G】 |
用户组里修改用户 | 用户组 用户名 【usermod -G】 用户组 用户名 【usermod -a -G】 |
用户组里删除用户 | 用户名 用户组 【gpasswd -d】 |
每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理。不同Linux 系统对用户组的规定有所不同,如Linux下的用户属于与它同名的用户组,这个用户组在创建用户时同时创建。用户组的管理涉及用户组的添加、删除和修改,实际上就是对/etc/group
文件的更新。
4、案例演示
- 案例演示
安装CentOS时创建普通用户hower(具体看自己当时创建的普通用户),前面我们又命令创建了一个普通用户mike
创建一个用户组lzy,组id是666
将已有用户mike 添加到该用户组
添加用户alice,密码:123456,主目录/home/alice,加入lzy组
查看lzy的情况,目前该组有两个用户mike和alice
查看/home目录下的三个用户
创建新用户组,实现组迁移
创建一个组luzhou,组编号777
将用户mike从lzy组迁移到luzhou组【以下用户组情况可知,alice在lzy组中,mike在luzhou 中】
创建一个用户smith,密码:111111,并同时加入lzy组和luzhou组
查看smith 的情况(lzy与luzhou两个组中都有smith)
自动编号递增成为1012
让已有用户加入另一个组别中
让lzy组的alice同时加入luzhou 组,【注意:有两个选项参数-a -G】
查看alice用户的情况,在lzy与luzhou两个组都有痕迹
让用户mike从luzhou组中移除
查看luzhou用户组中是否还有mike用户
删除组中不存在用户
删除用户组
删除luzhou用户
删除luzhou,但不删除里面用户smith和alice