• Welcome to Journal web site.

我是 PHP 程序员

- 开发无止境 -

Next
Prev

Linux 用户和用户组管理

Data: 2015-09-13 17:10:58Form: JournalClick: 12

# Linux 用户和用户组管理

  • Linux 系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统
  • 每个用户账号都拥有一个唯一的用户名和各自的口令
  • 用户在登录时键入正确的用户名和口令后,就能够进入系统和自己的主目录

# 一、useradd 新建用户

语法:useradd [选项] 用户名

编号选项说明
1-uUID 手工指定用户的 UID,注意 UID 的范围(不要小于 500)。
2-d 主目录手工指定用户的主目录。主目录必须写绝对路径,而且如果需要手工指定主目录,则一定要注意权限;
3-c 用户说明手工指定/etc/passwd 文件中各用户信息中第 5 个字段的描述性内容,可随意配置;
4-g 组名手工指定用户的初始组。一般以和用户名相同的组作为用户的初始组,在创建用户时会默认建立初始组。一旦手动指定,则系统将不会在创建此默认的初始组目录。
5-G 组名指定用户的附加组。我们把用户加入其他组,一般都使用附加组;
6-s shell手工指定用户的登录 Shell,默认是 /bin/bash;
7-e 曰期指定用户的失效曰期,格式为 "YYYY-MM-DD"。也就是 /etc/shadow 文件的第八个字段;
8-o允许创建的用户的 UID 相同。例如,执行 "useradd -u 0 -o usertest" 命令建立用户 usertest,它的 UID 和 root 用户的 UID 相同,都是 0;
9-m建立用户时强制建立用户的家目录。在建立系统用户时,该选项是默认的;
10-r创建系统用户,也就是 UID 在 1~499 之间,供系统程序使用的用户。由于系统用户主要用于运行系统所需服务的权限配置,因此系统用户的创建默认不会创建主目录。
# 创建 欧阳克 用户
useradd ouyangke
# 家目录 会多个ouyangke目录
cd /home
ll
# 创建 php 用户,家目录改变位置
useradd -d /www/php php

备:新创建的用户,没有密码,无法使用远程登陆


# 二、passwd 修改用户密码

语法:passwd [选项] 用户名

编号选项说明
1-S查询用户密码的状态,也就是 /etc/shadow 文件中此用户密码的内容。仅 root 用户可用;
2-l暂时锁定用户,该选项会在 /etc/shadow 文件中指定用户的加密密码串前添加 "!",使密码失效。仅 root 用户可用;
3-u解锁用户,和 -l 选项相对应,也是只能 root 用户使用;
4--stdin可以将通过管道符输出的数据作为用户的密码。主要在批量添加用户时使用;
5-n 天数设置该用户修改密码后,多长时间不能再次修改密码,也就是修改 /etc/shadow 文件中各行密码的第 4 个字段;
6-x 天数设置该用户的密码有效期,对应 /etc/shadow 文件中各行密码的第 5 个字段;
7-w 天数设置用户密码过期前的警告天数,对于 /etc/shadow 文件中各行密码的第 6 个字段;
8-i 日期设置用户密码失效日期,对应 /etc/shadow 文件中各行密码的第 7 个字段。
# 修改ouyangke密码
passwd ouyangke
# root账号 查看ouyangke密码
passwd -S ouyangke
# ouyangke PS 2020-03-31 0 99999 7 -1 (Password set, SHA512 crypt.)
# 用户名 密码 设定时间(2020-03-31) 密码修改间隔时间(0) 密码有效期(99999) 警告时间(7) 密码不失效(-1),密码已使用

备:有了密码的账号,就可以使用远程登陆了


# 三、usermod 修改用户

语法:usermod [选项] 用户名

编号选项说明
1-c 用户说明修改用户的说明信息,即修改 /etc/passwd 文件目标用户信息的第 5 个字段;
2-d 主目录修改用户的主目录,即修改 /etc/passwd 文件中目标用户信息的第 6 个字段,需要注意的是,主目录必须写绝对路径;
3-e 日期修改用户的失效曰期,格式为 "YYYY-MM-DD",即修改 /etc/shadow 文件目标用户密码信息的第 8 个字段;
4-g 组名修改用户的初始组,即修改 /etc/passwd 文件目标用户信息的第 4 个字段(GID);
5-u UID修改用户的 UID,即修改 /etc/passwd 文件目标用户信息的第 3 个字段(UID);
6-G 组名修改用户的附加组,其实就是把用户加入其他用户组,即修改 /etc/group 文件;
7-l 用户名修改用户名称;
8-L临时锁定用户(Lock);
9-U解锁用户(Unlock),和 -L 对应;
10-sshell:修改用户的登录 Shell,默认是 /bin/bash。
# 修改ouyangke账号,会报错,zhulaoshi的位置应该是老用户名
usermod -l ouyangke zhulaoshi
# 修改ouyangke账号,正确
usermod -l zhulaoshi ouyangke
# 进入家目录查看
cd /home
ll

# 四、userdel 删除用户

语法:userdel -r 用户名

编号选项说明
1-r选项表示在删除用户的同时删除用户的家目录
# 删除php账号
userdel -r php

# 五、su 用户切换命令

语法:su [选项] 用户名

编号选项说明
1-当前用户不仅切换为指定用户的身份,同时所用的工作环境也切换为此用户的环境(包括 PATH 变量、MAIL 变量等),使用 - 选项可省略用户名,默认会切换为 root 用户。
2-l同 - 的使用类似,也就是在切换用户身份的同时,完整切换工作环境,但后面需要添加欲切换的使用者账号
3-p表示切换为指定用户的身份,但不改变当前的工作环境(不使用切换用户的配置文件)
4-m和 -p 一样
5-c 命令仅切换用户执行一次命令,执行后自动切换回来,该选项后通常会带有要执行的命令。
# 切换成zhulaoshi用户
su zhulaoshi
# 切换成root用户
su root
# 切换成zhulaoshi用户,环境改变
su - zhulaoshi
# 切换成root用户,环境改变
su - root

# 六、groupadd 添加用户组

语法:groupadd [选项] 组名

编号选项说明
1-g GID指定组 ID
2-r创建系统群组
# 添加用户组
groupadd phpcn

# 七、groupmod 修改用户组

语法:groupmod [选项] 组名

编号选项说明
1-g GID修改组 ID
2-n 新组名修改组名
# 修改用户组
groupmod -n wwwphpcn phpcn

# 八、groupdel 删除用户组

语法:groupdel 组名

# 删除用户组
groupdel wwwphpcn
# 删除用户组,失败
groupdel php

备:不能使用 groupdel 命令随意删除群组 备:组如果是某用户的初始组,则无法使用删除


# 九、用户 和 用户组

  • 每个用户都有唯一的用户名和密码。在登录系统时,只有正确输入用户名和密码,才能进入系统和自己的主目录
  • 用户组是具有相同特征用户的逻辑集合
  • 将用户分组是 Linux 系统中对用户进行管理及控制访问权限的一种手段,通过定义用户组,很多程序上简化了对用户的管理工作

关系

  • 用户和用户组的对应关系有以下 4 种:
    • 一对一:一个用户可以存在一个组中,是组中的唯一成员;
    • 一对多:一个用户可以存在多个用户组中,此用户具有这多个组的共同权限;
    • 多对一:多个用户可以存在一个组中,这些用户具有和组相同的权限;
    • 多对多:多个用户可以存在多个组中,也就是以上 3 种关系的扩展。

图片

Name:
<提交>