学习内容:用户管理和命令的使用
系统环境: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.
三、用户及组管理的命令使用
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
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