二十三、账号管理(二)

king's blog
上一节了解了linux下的用户和组保存哪个地方,那本节我们来看看,如何去创建用户,创建组,修改用户密码等,主要内容如下:
一、账号管理
1.useradd
2.passwd
3.usermod
4.userdel
5.chage
6.finger

二、组管理
1.groupadd
2.groupmod
3.groupdel
4.gpasswd

一、账号管理

linux下不是每个用户都可以创建新用户,只有管理员才有该权限,所以下面的例子均root用户进行操作。账号管理包括创建新用户,设置用户密码,修改用户注册信息,查看用户注册信息等,

1.useradd

创建用户,可用useradd命令,格式及说明如下:

命令格式:
useradd [-u UID] [-g 初始群组] [-G 次要群组] [-d 用户目录] [-s 哪种shell] 用户名

参数说明:
1.[]部分都可以省略
2.可通过useradd -D 命令进行查看帮助(读取的是/etc/default/useradd文件内容)

1
2
3
4
5
6
7
8
9
10
ETS157:~ # useradd -D
GROUP=100----------------->表示预设的群组
HOME=/home---------------->表示默认的用户目录
INACTIVE=-1--------------->表示密码失效日
EXPIRE=------------------->表示账号失效日
SHELL=/bin/bash----------->表示默认的shell
SKEL=/etc/skel------------>表示用户目录下的内容数据参考目录
GROUPS=video,dialout------>表示默认的有效群组
CREATE_MAIL_SPOOL=no------>表示是否自动给使用者创建邮箱
UMASK=022----------------->表示用户目录默认的UMASK

说明:
1、Group=100(group=users),代表所有新建用户都隶属于该组,代表性的distributions为SuSe,这就是【共用群组】机制。
2、还有一种【私有群组】机制,就是创建用户的时候,系统会创建一个与账户名相同的群组给使用者作为初始群组(目录权限为700),代表性的distributions为RHEL、CentOS、Fedora

例子:

1
2
3
4
5
6
7
8
9
10
#1.创建oracle用户,初始组为oinstall,次要组为dba
ETS157:~ # useradd -g oinstall -G dba -d /opt/oracle -s /bin/bash -m oralce

#2.查看oracle用户在/etc/passwd中的信息
ETS157:~ # grep 'oracle' /etc/passwd
oracle:x:1002:1002::/opt/oracle:/bin/bash

#3.查看oracle用户的属组
ETS157:~ # groups oracle
oracle : oinstall dba
2.passwd

创建用户后,需要使用passwd命令给用户设置密码,修改密码也是用该命令
命令格式:
passwd 用户名,输入两次相同的密码即可

3.usermod

用usermod命令修改用户信息,或者手动修改/etc/passwd文件

命令格式:
usermod [-参数] 用户名

常用参数:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Usage: usermod ...
usermod - modify a user account

  -c comment     Set the GECOS field for the new account
  -D binddn      Use dn "binddn" to bind to the LDAP directory
  -d homedir     Home directory for the new user
  -e expire      Date on which the new account will be disabled
  -f inactive    Days after a password expires until account is disabled
  -G group,...   List of supplementary groups
  -g gid         Name/number of the users primary group
  -l login       Change login name.
  -m             Move home directory to the new path
  -o             Allow duplicate (non-unique) UID
  -A group,...   List of groups the user should be added to
  -R group,...   List of groups the user should be removed from
  -P path        Search passwd, shadow and group file in "path"
  -p password    Encrypted password as returned by crypt(3)
  -s shell       Name of the user's login shell
  -u uid         Change the userid to the given number
  --service srv  Use nameservice '
srv'
  -L             Locks the password entry for "user"
  -U             Try to unlock the password entry for "user"
      --help     Give this help list
      --usage    Give a short usage message
  -v, --version  Print program version
Valid services are: files, ldap
4.userdel

userdel用于删除用户

命令格式:
userdel [-rf] 用户名

参数说明:
-r : 删除用户的同时,删除用户目录并清空邮件
-f : 强制上次用户目录

5.chage

chage用于查询密码参数和修改密码

命令格式:
chage [-ldEImMW] 账号

1
2
3
4
5
6
7
8
9
10
11
12
13
ETS157:~ # chage --help
Usage: chage [-D binddn][-P path][-m mindays][-M maxdays][-d lastday][-I inactive][-E expiredate][-W warndays] user
       chage -l user
chage - change user password expiry information

  -D binddn      Use dn "binddn" to bind to the LDAP directory
  -P path        Search passwd and shadow file in "path"
  --service srv  Use nameservice 'srv'
  -q, --quiet    Don't be verbose
      --help     Give this help list
  -u, --usage    Give a short usage message
  -v, --version  Print program version
Valid services are: files, nis, nisplus, ldap

参数说明:
1、-l : 列出该账号的详细密码参数
2、-d :后面接日期,修改shadow的第三个字段(即:最近一次修改密码的日期),格式为YYYY-MM-DD
3、-E : 后面接日期,修改shadow的第八个字段(即:账号失效日),格式为YYYY-MM-DD
4、-I :后面接天数,修改shadow的第七个字段(即:密码失效日)
5、-m :后面接天数,修改shadow的第四个字段(即:密码最短保留天数)
6、-M :后面接天数,修改shadow的第五个字段(即:密码多久需要变更)
7、-W :后面接天数,修改shadow的第六个字段(即:密码国企前警告日期)

6.finger

finger命令用于列出用户的相关属性,主要显示/etc/passwd里的信息
命令格式:
finger [-s] username

注意,suse默认有这命令, redhat没有
其他的还有,chfn(change finger)、 chsh(change shell)

二、组管理

组管理涉及到创建、修改、删除用户组等操作

1.groupadd

创建组,使用groupadd命令
命令格式:
groupadd [-g GID] [-r] 组名

参数说明:
-g : 直接设置该组的GID,默认情况是系统自动分配GID
-r : 建立系统群组,与/etc/login.defs中的GID_MIN有关

例子:

1
2
3
4
5
6
#1.创建groupC组
ETS157:~ # groupadd groupC

#2.查看/etc/group
ETS157:~ # grep 'groupC' /etc/group
groupC:!:1005:
2.groupmod
命令格式:
groupmod [-g GID] [-n group_name] 组名

参数说明:
-g : 修改GID
-n :修改组名

例子:

1
2
3
4
5
6
#1.修改groupC的GID为1006,同时名字改为groupD
ETS157:~ # groupmod -g 1006 -n groupD groupC

#2.查看修改后的结果
ETS157:~ # grep 'group[CD]' /etc/group
groupD:!:1006:
3.gpasswd

命令格式:—–RedHat
gpasswd [-A user1,user2…] [-M user1,user2…] [-rR] 组名

参数解释:
root用户可使用的参数
-A : 将groupname的控制权交给指定的使用者管理
-M : 将某些账号加入到该组中
-r : 将groupname的密码移除
-R : 让groupname的密码栏失效
-a : 将user加入到groupname中 (对root用户来说,与-M作用一样)
-d : 将user从groupname中移除

群组管理员(group administrator)可以完成如下的动作
gpasswd [-ad] user groupname
-a : 将user加入到groupname中
-d : 将user从groupname中移除

例子:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#1.gpasswd不加任何参数,这表示给组设置密码
[root@ReapsCindaQA1 ~]# gpasswd groupD
Changing the password for group groupD.
New Password:
Re-enter new password:
Password changed.


#2.移除groupD的密码
[root@ReapsCindaQA1 ~]# gpasswd -r groupD
Password removed.


#3.添加oracle用户成为改组的管理员
[root@ReapsCindaQA1 ~]# gpasswd -A oracle groupD


#4.用oracle用户(groupD的管理员)登陆,并将weblogic用户添加到groupD
[oracle@ReapsCindaQA1 ~]$ whoami
oracle

[oracle@ReapsCindaQA1 ~]$ gpasswd -a weblogic groupD
Adding user weblogic to group groupD

[oracle@ReapsCindaQA1 ~]$ grep 'groupD' /etc/group
groupD:x:1006:weblogic--------------->已经添加成功


#5.用root用户将weblogic移除groupD
[root@ReapsCindaQA1 ~]# gpasswd -d weblogic groupD
Removing user weblogic from group groupD
4.groupdel

命令格式:
groupdel 组名

例子:

1
2
3
#1.删除groupD
[root@ReapsCindaQA1 ~]# groupdel groupD
[root@ReapsCindaQA1 ~]# grep 'groupD' /etc/group
Tags:
文 / 甲乙丙丁
LEAVE A REPLY

loading