学习内容:用户管理和命令的使用

系统环境:CentOS 6.7/7 x86_64


目录:

1.了解用户及组的管理

2.Linux用户及组相关配置文件

3.用户及组管理的命令使用

useradd,usermod,passwd,userdel

groupadd,groumod,gpasswd,groupdel

id,w,who,whoami

su

一、了解用户及组的管理

Linux用户的分类:

      1.管理员root:具有使用系统所有权限的用户,其UID为0。

      2.普通用户:即一般用户,其使用系统的权限受限,其UID为500-60000之间。

      3.系统用户:保障系统运行的用户,一般不提供密码登录系统,其UID为1-499之间。

注:CentOS6和CentOS7的区别:

系统用户:

CentOS6:1-499

CentOS7:1-999

登录用户:

CentOS6:500+

CentOS7:1000+

Linux组分类管理员组,基本组(私有组),附加组。


二、Linux用户和组的相关配置文件

/etc/passwd #用户名、UID、基本组等信息

用户信息文件分析:

Oracle:x:3000:3000::/home/database:/bin/bash

用户名:密码占位符:用户ID:组ID:描述:用户主目录:用户缺省shell

/etc/group  #组名、GID、组内包含的用户

/etc/shadow #用户密码及相关属性

/etc/gshadow  #组的密码及相关属性

FILES
/etc/passwd
User account information.
/etc/shadow
Secure user account information.
/etc/group
Group account information.
/etc/gshadow
Secure group account information.
/etc/default/useradd
Default values for account creation.
/etc/skel/
Directory containing default files.
/etc/login.defs
Shadow password suite configuration.


三、用户及组管理的命令使用

1.用户管理相关命令

useradd 创建一个新的用户

常用参数:

-r, --system  #创建系统用户

-u, --uid UID #指定UID

-g, --gid GROUP#指定GID

-s, --shell SHELL#指定用户默认SHELL

-G, --groups GROUP1[,GROUP2,...[,GROUPN]]]  #指定所属的附加组

-M #不创建家目录

-d /PATH/TO/SOMEWHERE:指定用户的主目录路径;此位置不能事先存在,否则,其用户相关配置文件将被复制:/etc/skel

练习:创建用户Oracle,所属附加组database和sql,ID号为3000,家目录为/home/database;

[root@LiuHui ~]# groupadd database
[root@LiuHui ~]# groupadd sql
[root@LiuHui ~]# tail -2 /etc/group
database:x:503:
sql:x:504:
[root@LiuHui ~]# useradd -u 3000 -G database,sql -d /home/database Oracle
[root@LiuHui ~]# id Oracle
uid=3000(Oracle) gid=3000(Oracle) groups=3000(Oracle),503(database),504(sql)

usermod 修改用户账号信息

常用参数:

-u, --uid UID#修改UID

-g, --gid GROUP#修改GID

-l, --login NEW_LOGIN#修改登录名

-s, --shell SHELL#修改登入后所使用的shell

-L, --lock#锁定用户密码

-U, --unlock#解除密码锁定

-e, --expiredate EXPIRE_DATE#修改账号的有效期限

-d, --home HOME_DIR#修改用户家目录

-f, --inactive INACTIVE#修改在密码过期后多少天即关闭该账号

-G, --groups GROUP1[,GROUP2,...[,GROUPN]]] #修改用户所属的附加群组


passwd -  用于设置用户的认证信息,包括用户密码、密码过期时间等。系统管理者则能用它管理系统用户的密码。只有管理者可以指定用户名称,一般用户只能变更自己的密码

常用参数:

passwd  [-k]  [-l] [-u [-f]] [-d] [-e] [-n mindays] [-x maxdays] [-w warn-days] [-i inactivedays] [-S] [--stdin] [username]

-k:设置办有在密码过期交的效后,方能更新

-l :锁住密码

-u:解开已上锁的密码

练习:不用交互更改用户密码

#echo "123456"|passwd --stdin  username

userdel - 删除用户

OPTIONS

-f, --force

-r  删除用户时完全删除家目录

#userdel -r username

2.组管理相关命令

groupadd - 用于创建一个新的工作组,新工作组的信息将被添加到系统文件中。

OPTIONS

-g :指定新建工作组的id;

-r :创建系统工作组,系统工作组的ID小于500;

-k :覆盖配置文件/etc/login.defs

-o :允许添加组ID号不唯一的工作组。

练习:

a)建立一个新组newtest,设置组ID号为700

groupadd -g 700  newtest

groupmod - 更改群组识别码或名称。

OPTIONS

-g :更改群UID


gpasswd -设定组密码

练习:

[root@LiuHui ~]# gpasswd sql
Changing the password for group sql
New Password:
Re-enter new password:
[root@LiuHui ~]# su - Oracle
[Oracle@LiuHui ~]$ touch g.txt
[Oracle@LiuHui ~]$ ll g.txt
-rw-rw-r-- 1 Oracle Oracle 0 Aug 28 04:02 g.txt
[Oracle@LiuHui ~]$ newgrp sql
[Oracle@LiuHui ~]$ touch 1.txt
[Oracle@LiuHui ~]$ ll *.txt
-rw-r--r-- 1 Oracle sql    0 Aug 28 04:03 1.txt
-rw-rw-r-- 1 Oracle Oracle 0 Aug 28 04:02 g.txt

groupdel - 删除组

#groupdel username


3.查看用户信息命令

id - 显示直实有效的用户UID和组GID

OPTIONS

-g 显示组ID

-G 显示附加组ID

-n 显示用户,所属组或附加组的名称

-u 显示用户ID

练习:

[Oracle@LiuHui ~]$ id
uid=3000(Oracle) gid=3000(Oracle) groups=3000(Oracle),503(database),504(sql)
[Oracle@LiuHui ~]$ exit
logout
[root@LiuHui ~]# id
uid=0(root) gid=0(root) groups=0(root)
[root@LiuHui ~]# id -u Oracle
3000
[root@LiuHui ~]# id -g Oracle
3000