Linux 组群账户管理
一.Linux组群账户配置文件
1./etc/group文件
/etc/group文件是用户组群的配置文件,内容包括用户和用户组群,并且能显示出用户是归属哪个用户组群或哪几个用户组群。一个用户可以归属一个或多个不同的用户组群,同一用户组群的用户之间具有相似的特征。比如把某一用户加入到root用户组群,那么这个用户就可以浏览root用户主目录的文件,如果root用户把某个文件的读写执行权限放开,root用户组群的所有用户都可以修改此文件;如果是可执行的文件,root用户组群的用户也是可以执行的。
(1)./etc/group文件内容
/etc/group文件的内容包括用户组群名、用户组群口令、GID及该用户组群所包含的用户,每个用户组群都有一条记录。一行有4个段位,每个段位用":"分隔,下面是/etc/group文件的部分内容的示例。
[root@redhat2 home]# cat /etc/group
root:x:0:
bin:x:1:bin,daemon
daemon:x:2:bin,daemon
sys:x:3:bin,adm
adm:x:4:adm,daemon
tty:x:5:
disk:x:6:
表8-3所示为/etc/passwd文件中各字段的含义。
|
字段 |
含义 |
|
组群名 |
用户组群名称,如组群名root |
|
组群口令 |
存放加密的密码,在上面示例中我们看到的是一个x,其实口令已被映射到/etc/gshadow文件中 |
|
组群标识号 |
在系统内用一个整数标识组群GID,每个组群的GID都是唯一的,默认普通组群的GID从500开始,如root组群GID是0 |
|
组群成员 |
属于这个组群的成员,如root组群的成员有root用户 |
(2)./etc/gshadow文件
/etc/gshadow是/etc/group的加密文件,比如用户组群管理密口令就是存放在这个文件中。/etc/gshadow和/etc/group是互补的两个文件;
/etc/gshadow文件中每个用户组群都有一条记录。一行有4个段位,每个段位用":"分割,下面是/etc/gshadow文件的部分内容的示例:
[root@redhat2 home]# cat /etc/gshadow
root:::
bin:::bin,daemon
daemon:::bin,daemon
sys:::bin,adm
adm:::adm,daemon
tty:::
disk:::
lp:::daemon
mem:::
kmem:::
wheel:::
mail:::mail,postfix
uucp:::
man:::
games:::
表4-1 所示为/etc/gshadow文件中各字段的含义。
|
字段 |
含义 |
|
组群名 |
组群名称,如组群名root |
|
组群口令 |
口令已经加密,如果这些组群在这里显示的是"!",表示这个组群没有口令。上面示例中组群shanghai没有口令,组群beijing已设置口令。 |
|
组群管理者 |
组群的管理者,有权在该组群中添加、删除用户 |
|
组群成员 |
属于该组群的用户成员列表,如有多个用户用","分隔。上面示例中beijing组群的成员是ou |
二.字符界面下组群账户的设置
在Linux系统字符界面下创建、修改以及删除组群账户主要使用groupadd,groupmod和groupdel这3个命令,其结果与使用“用户管理器”工具一样。
1.创建组群账户
使用groupadd命令可以在Linux系统下创建组群账户。
命令语法:
[root@redhat2 ~]# groupadd
Usage: groupadd [options] GROUP
Options:
-f, --force exit successfully if the group already exists,
and cancel -g if the GID is already used
-g, --gid GID use GID for the new group
-h, --help display this help message and exit
-K, --key KEY=VALUE override /etc/login.defs defaults
-o, --non-unique allow to create groups with duplicate
(non-unique) GID
-p, --password PASSWORD use this encrypted password for the new group
-r, --system create a system account
[root@redhat2 ~]#
2.创建名为china的组群。
[root@redhat2 ~]# groupadd -g 800 ou
[root@redhat2 ~]# cat /etc/group |grep ou
dialout:x:18:
ou:x:800:
[root@redhat2 ~]#
//查看文件/etc/group,可以看到已经创建了组群ou,组群GID是800。
3.创建名为chineses的系统组群。
[root@redhat2 ~]# groupadd -r chineses
[root@redhat2 ~]# cat /etc/group |grep chinese
chineses:x:493:
[root@redhat2 ~]#
4.创建名为chinese的系统组群。
[root@redhat2 ~]# groupadd -r chineses
[root@redhat2 ~]# cat /etc/group |grep chinese
chineses:x:493:
[root@redhat2 ~]#
//查看/etc/group文件,可以看到系统组群chinese的GID是493,是小于500的。
三.修改组群账户
使用groupmod命令可以在Linux系统下修改组群账户,如组群名称、GID等。
命令语法:
[root@redhat2 ~]# groupmod
Usage: groupmod [options] GROUP
Options:
-g, --gid GID change the group ID to GID
-h, --help display this help message and exit
-n, --new-name NEW_GROUP change the name to NEW_GROUP
-o, --non-unique allow to use a duplicate (non-unique) GID
-p, --password PASSWORD change the password to this (encrypted)
PASSWORD
[root@redhat2 ~]#
例1:将组群ou的GID修改为900。
[root@redhat2 ~]# groupmod -g 900 ou
[root@redhat2 ~]# cat /etc/group |grep ou
dialout:x:18:
ou:x:900:
[root@redhat2 ~]#
//查看文件/etc/group,可以看到组群ou的GID已经更改为900。
例2:修改组群ou的新组群名称为shanghai。
[root@redhat2 ~]# groupmod -n shanghai ou
[root@redhat2 ~]# cat /etc/group|grep shanghai
shanghai:x:900:
[root@redhat2 ~]#
//查看/etc/group文件,可以看到当前组群shanghai已经存在。
四.账户相关文件或目录
在创建、修改和删除账户时,涉及到众多的相关文件和目录,如/etc/skel目录、/etc/login.defs文件和/etc/default/useradd文件。
- /etc/skel目录
/etc/skel目录是存放用户启动文件的目录,这个目录由root用户管理,当管理员创建新用户时,这个目录下的文件会自动复制到新创建的用户的主目录下。/etc/skel目录下的文件都是隐藏文件,也就是类似".file"格式的,可以通过添加、修改和删除/etc/skel目录下的文件,来为用户提供一个统一、标准和默认的用户环境。
使用如下命令查看/etc/skel目录内包含的文件信息。
[root@redhat2 ~]# ls -al /etc/skel
total 40
drwxr-xr-x. 4 root root 4096 Jun 4 2014 .
drwxr-xr-x. 100 root root 12288 Jan 11 05:24 ..
-rw-r--r--. 1 root root 18 Apr 23 2012 .bash_logout
-rw-r--r--. 1 root root 176 Apr 23 2012 .bash_profile
-rw-r--r--. 1 root root 124 Apr 23 2012 .bashrc
drwxr-xr-x. 2 root root 4096 Jul 14 2010 .gnome2
-rw-r--r--. 1 root root 121 Apr 11 2012 .kshrc
drwxr-xr-x. 4 root root 4096 Jun 2 2014 .mozilla
[root@redhat2 ~]#
当用户useradd命令创建新用户时,/etc/skel目录下的文件会自动复制到新创建用户的主目录下。另外一种方法也可以达到同样效果,管理员通过修改/etc/passwd文件创建新用户时,设置用户的主目录,然后把/etc/skel下的文件复制到用户的主目录下,最后用chown命令改变新用户主目录的属主。
2./etc/login.defs配置文件
/etc/login.defs文件规定了创建新用户时的一些默认设置,比如创建用户时是否需要主目录、UID和GID的范围、用户账户口令的期限等,这个文件可以通过root用户来修改。
MAIL_DIR /var/spool/mail //创建用户时,要在目录/var/spool/mail中创建一个用户邮箱文件
PASS_MAX_DAYS 99999 //用户必须更改口令的天数
PASS_MIN_DAYS 0 //用户可以更改口令的天数
PASS_MIN_LEN 5 //口令最小长度
PASS_WARN_AGE 7 //在用户口令过期之前的警告时间
UID_MIN 500 //创建新用户时用户的UID从500开始
UID_MAX 60000 //用户最大UID职为60000
GID_MIN 500 //创建新组群时组群的GID从500开始
GID_MAX 60000 //组群最大GID值为60000
CREATE_HOME yes //是否要求创建用户主目录,yes表示要求创建
ENCRYPT_METHOD MD5 //启用MD5加密口令
3./etc/default/useradd文件
/etc/default/useradd文件是在使用useradd命令创建用户账户时的规则文件。
[root@redhat2 ~]# cat /etc/default/useradd
# useradd defaults file
GROUP=100
HOME=/home //把用户的主目录创建在/home目录中
INACTIVE=-1 //是否启用账户过期,-1表示不启用
EXPIRE= //账户终止日期,不设置表示不启用
SHELL=/bin/bash //用户账户所用shell类型
SKEL=/etc/skel //创建新用户时从/etc/skel目录下复制文件到用户主目录
CREATE_MAIL_SPOOL=yes //创建新用户时在/var/spool/mail目录下创建该用户邮箱目录。
五.用户和组群维护命令
1.账户维护命令
在平时的工作中对账户进行维护主要用到passwd,gpasswd,chfn,chsh,su,pwck以及newgrp等众多命令。
(1).passwd命令
使用passwd命令可以设置或修改用户的口令,普通用户和超级权限用户都可以运行passwd。
普通用户只能更改自己的用户口令,root用户可以设置或修改任何用户的口令。
如果passwd命令后面不接任何选项或用户名,则表示修改当前用户的口令。
命令语法:
[root@redhat2 ~]# passwd --help
Usage: passwd [OPTION...] <accountName>
-k, --keep-tokens keep non-expired authentication tokens
-d, --delete delete the password for the named account (root only)
-l, --lock lock the password for the named account (root only)
-u, --unlock unlock the password for the named account (root only)
-e, --expire expire the password for the named account (root only)
-f, --force force operation
-x, --maximum=DAYS maximum password lifetime (root only)
-n, --minimum=DAYS minimum password lifetime (root only)
-w, --warning=DAYS number of days warning users receives before password expiration (root only)
-i, --inactive=DAYS number of days after password expiration when an
account becomes disabled (root only)
-S, --status report password status on the named account (root only)
--stdin read new tokens from stdin (root only)
Help options:
-?, --help Show this help message
--usage Display brief usage message
例1:设置用户zhaoliu的口令
[root@redhat2 home]# passwd zhaoliu
Changing password for user zhaoliu.
New password:
BAD PASSWORD: it is WAY too short
BAD PASSWORD: is too simple
Retype new password:
passwd: all authentication tokens updated successfully.
[root@redhat2 home]#
例2:设置当前用户的口令
[root@redhat2 home]# passwd
Changing password for user root.
New password:
BAD PASSWORD: it is WAY too short
BAD PASSWORD: is too simple
Retype new password:
passwd: all authentication tokens updated successfully.
[root@redhat2 home]#
例3:锁住用户zhaoliu的口令。
[root@redhat2 home]# passwd -l zhaoliu
Locking password for user zhaoliu.
passwd: Success
[root@redhat2 home]#
//用户zhaoliu锁住以后不能登录到系统,但是可以用su命令从其他用户切换到用户zhaoliu
[root@redhat2 home]# passwd -S zhaoliu
zhaoliu LK 2015-01-12 0 99999 7 -1 (Password locked.)
[root@redhat2 home]#
//查看用户口令状态,可以看到用户zhaoliu的口令是锁住的。
[root@redhat2 home]# cat /etc/shadow|grep zhaoliu
zhaoliu:!!$1$fMvAUpfG$yIGyFEzLVkZflgi78rCkJ/:16448:0:99999:7:::
[root@redhat2 home]#
//查看/etc/shadow文件,可以看到用户zhaoliu口令锁住以后在口令字段前有"!!"
例4:解锁用户zhaoliu口令。
[root@redhat2 home]# passwd -u zhaoliu
Unlocking password for user zhaoliu.
passwd: Success
[root@redhat2 home]#
例5:删除用户zhaoliu的口令。
[root@redhat2 home]# cat /etc/shadow|grep zhaoliu
zhaoliu:!!$1$fMvAUpfG$yIGyFEzLVkZflgi78rCkJ/:16448:0:99999:7:::
//查看/etc/shadow文件,可以看到用户zhaoliu设置过口令。
[root@redhat2 home]# passwd -u zhaoliu
Unlocking password for user zhaoliu.
passwd: Success
[root@redhat2 home]# cat /etc/shadow|grep zhaoliu
zhaoliu:$1$fMvAUpfG$yIGyFEzLVkZflgi78rCkJ/:16448:0:99999:7:::
[root@redhat2 home]# passwd -d zhaoliu
Removing password for user zhaoliu.
passwd: Success
[root@redhat2 home]# cat /etc/shadow |grep zhaoliu
zhaoliu::16448:0:99999:7:::
[root@redhat2 home]#
//查看/etc/shadow文件,可以看到用户zhaoliu的口令已经没有了.
(2).gpasswd
使用gpasswd命令可以设置一个组群的组群密码,或是在组群中添加、删除用户。
[root@redhat2 home]# gpasswd
Usage: gpasswd [option] GROUP
Options:
-a, --add USER add USER to GROUP
-d, --delete USER remove USER from GROUP
-r, --remove-password remove the GROUP's password
-R, --restrict restrict access to GROUP to its members
-M, --members USER,... set the list of members of GROUP
-A, --administrators ADMIN,...
set the list of administrators for GROUP
Except for the -A and -M options, the options cannot be combined.
例1:把用户zhaoliu添加到zhang组群中。
[root@redhat2 home]# gpasswd -a zhaoliu zhang
Adding user zhaoliu to group zhang
//正在将用户"zhaoliu"加入到'zhang'组群中。
[root@redhat2 home]# cat /etc/group |grep zhaoliu
zhang:x:513:zhaoliu
[root@redhat2 home]#
//在/etc/group文件中可以看到zhang组群中有用户zhaoliu。
例2:从zhang组群中删除用户zhaoliu。
[root@redhat2 home]# gpasswd -d zhaoliu zhang
Removing user zhaoliu from group zhang
[root@redhat2 home]# cat /etc/group |grep zhang
zhangsan:x:501:
zhang:x:513:
[root@redhat2 home]#
//在/etc/group文件中可以看到zhang组群中已经没有用户zhaoliu了。
例3:设置zhang组群的口令。
[root@redhat2 home]# gpasswd zhang
Changing the password for group zhang
New Password:
Re-enter new password:
[root@redhat2 home]#
//在/etc/gshadow文件中可以看到组群zhang已经设置口令。
例4:取消zhang组群密码。
[root@redhat2 home]# gpasswd -r zhang
[root@redhat2 home]# cat /etc/gshadow |grep zhang
zhangsan:!::
zhang:::
[root@redhat2 home]#
//在/etc/gshadow文件中可以看到组群zhang已经不存在了。
(3).chsh命令
使用chsh命令可以更改用户账户的shell类型。
[root@redhat2 home]# chsh --help
Usage: chsh [ -s shell ] [ --list-shells ] [ --help ] [ --version ]
[ username ]
[root@redhat2 home]#
例1.列出当前系统中所有支持的shell类型。
[root@redhat2 home]# chsh -l
/bin/sh
/bin/bash
/sbin/nologin
/bin/tcsh
/bin/csh
/bin/ksh
[root@redhat2 home]#
例2:更改用户wangwu所用的shell类型为/bin/sh.
[root@redhat2 home]# cat /etc/passwd |grep wangwu
wangwu:x:514:514::/home/wangwu:/bin/bash
//查看/etc/passwd文件,可以看到用户wangwu的shell类型为/bin/bash
[root@redhat2 home]# chsh -s /bin/sh wangwu
Changing shell for wangwu.
Shell changed.
[root@redhat2 home]#
[root@redhat2 home]# cat /etc/passwd |grep wangwu
wangwu:x:514:514::/home/wangwu:/bin/sh
[root@redhat2 home]#
//查看/etc/passwd文件,可以看到用户wangwu的shell类型已经更改为/bin/sh
例3:更改当前用户wangwu 的shell类型为/bin/bash。
[root@redhat2 home]# chsh wangwu
Changing shell for wangwu.
New shell [/bin/sh]: /bin/bash //在此输入shell类型,比如/bin/bash
Shell changed.
[root@redhat2 home]#
(3).pwck命令
使用pwck命令可以检验用户配置文件/etc/passwd和/etc/shadow内容是否合法和完整。
[root@redhat2 home]# pwck
user 'adm': directory '/var/adm' does not exist
user 'uucp': directory '/var/spool/uucp' does not exist
user 'gopher': directory '/var/gopher' does not exist
user 'ftp': directory '/var/ftp' does not exist
user 'avahi-autoipd': directory '/var/lib/avahi-autoipd' does not exist
user 'saslauth': directory '/var/empty/saslauth' does not exist
user 'pulse': directory '/var/run/pulse' does not exist
user 'wangwu': directory '/home/wangwu' does not exist
pwck: no changes
[root@redhat2 home]#
//可以看到用户wangwu的主目录/home/wangwu不存在。
(4).newgrp命令
使用newgrp命令可以让用户账户以另一个组群的身份进行登录。
说明:newgrp指令类似于login指令,是以相同的账号名,不同的组群身份登录系统。如果要使用newgrp指令切换组群,用户必须是该组群的用户,否则将无法登陆指定的组群。单一用户如果要同时隶属多个组群,需利用交替用户的设置。如果不指定组群名称,则newgrp指令会登录该用户名称的预设组群。
例:将用户zhang以组群zhangsan的身份登录系统。
[root@redhat2 home]# su zhang
[zhang@redhat2 home]$ newgrp zhangsan
[zhang@redhat2 home]$ id
uid=513(zhang) gid=513(zhang) groups=513(zhang),501(zhangsan)
[zhang@redhat2 home]$
一.Linux组群账户配置文件
1./etc/group文件
/etc/group文件是用户组群的配置文件,内容包括用户和用户组群,并且能显示出用户是归属哪个用户组群或哪几个用户组群。一个用户可以归属一个或多个不同的用户组群,同一用户组群的用户之间具有相似的特征。比如把某一用户加入到root用户组群,那么这个用户就可以浏览root用户主目录的文件,如果root用户把某个文件的读写执行权限放开,root用户组群的所有用户都可以修改此文件;如果是可执行的文件,root用户组群的用户也是可以执行的。
(1)./etc/group文件内容
/etc/group文件的内容包括用户组群名、用户组群口令、GID及该用户组群所包含的用户,每个用户组群都有一条记录。一行有4个段位,每个段位用":"分隔,下面是/etc/group文件的部分内容的示例。
[root@redhat2 home]# cat /etc/group
root:x:0:
bin:x:1:bin,daemon
daemon:x:2:bin,daemon
sys:x:3:bin,adm
adm:x:4:adm,daemon
tty:x:5:
disk:x:6:
表8-3所示为/etc/passwd文件中各字段的含义。
|
字段 |
含义 |
|
组群名 |
用户组群名称,如组群名root |
|
组群口令 |
存放加密的密码,在上面示例中我们看到的是一个x,其实口令已被映射到/etc/gshadow文件中 |
|
组群标识号 |
在系统内用一个整数标识组群GID,每个组群的GID都是唯一的,默认普通组群的GID从500开始,如root组群GID是0 |
|
组群成员 |
属于这个组群的成员,如root组群的成员有root用户 |
(2)./etc/gshadow文件
/etc/gshadow是/etc/group的加密文件,比如用户组群管理密口令就是存放在这个文件中。/etc/gshadow和/etc/group是互补的两个文件;
/etc/gshadow文件中每个用户组群都有一条记录。一行有4个段位,每个段位用":"分割,下面是/etc/gshadow文件的部分内容的示例:
[root@redhat2 home]# cat /etc/gshadow
root:::
bin:::bin,daemon
daemon:::bin,daemon
sys:::bin,adm
adm:::adm,daemon
tty:::
disk:::
lp:::daemon
mem:::
kmem:::
wheel:::
mail:::mail,postfix
uucp:::
man:::
games:::
表4-1 所示为/etc/gshadow文件中各字段的含义。
|
字段 |
含义 |
|
组群名 |
组群名称,如组群名root |
|
组群口令 |
口令已经加密,如果这些组群在这里显示的是"!",表示这个组群没有口令。上面示例中组群shanghai没有口令,组群beijing已设置口令。 |
|
组群管理者 |
组群的管理者,有权在该组群中添加、删除用户 |
|
组群成员 |
属于该组群的用户成员列表,如有多个用户用","分隔。上面示例中beijing组群的成员是ou |
二.字符界面下组群账户的设置
在Linux系统字符界面下创建、修改以及删除组群账户主要使用groupadd,groupmod和groupdel这3个命令,其结果与使用“用户管理器”工具一样。
1.创建组群账户
使用groupadd命令可以在Linux系统下创建组群账户。
命令语法:
[root@redhat2 ~]# groupadd
Usage: groupadd [options] GROUP
Options:
-f, --force exit successfully if the group already exists,
and cancel -g if the GID is already used
-g, --gid GID use GID for the new group
-h, --help display this help message and exit
-K, --key KEY=VALUE override /etc/login.defs defaults
-o, --non-unique allow to create groups with duplicate
(non-unique) GID
-p, --password PASSWORD use this encrypted password for the new group
-r, --system create a system account
[root@redhat2 ~]#
2.创建名为china的组群。
[root@redhat2 ~]# groupadd -g 800 ou
[root@redhat2 ~]# cat /etc/group |grep ou
dialout:x:18:
ou:x:800:
[root@redhat2 ~]#
//查看文件/etc/group,可以看到已经创建了组群ou,组群GID是800。
3.创建名为chineses的系统组群。
[root@redhat2 ~]# groupadd -r chineses
[root@redhat2 ~]# cat /etc/group |grep chinese
chineses:x:493:
[root@redhat2 ~]#
4.创建名为chinese的系统组群。
[root@redhat2 ~]# groupadd -r chineses
[root@redhat2 ~]# cat /etc/group |grep chinese
chineses:x:493:
[root@redhat2 ~]#
//查看/etc/group文件,可以看到系统组群chinese的GID是493,是小于500的。
三.修改组群账户
使用groupmod命令可以在Linux系统下修改组群账户,如组群名称、GID等。
命令语法:
[root@redhat2 ~]# groupmod
Usage: groupmod [options] GROUP
Options:
-g, --gid GID change the group ID to GID
-h, --help display this help message and exit
-n, --new-name NEW_GROUP change the name to NEW_GROUP
-o, --non-unique allow to use a duplicate (non-unique) GID
-p, --password PASSWORD change the password to this (encrypted)
PASSWORD
[root@redhat2 ~]#
例1:将组群ou的GID修改为900。
[root@redhat2 ~]# groupmod -g 900 ou
[root@redhat2 ~]# cat /etc/group |grep ou
dialout:x:18:
ou:x:900:
[root@redhat2 ~]#
//查看文件/etc/group,可以看到组群ou的GID已经更改为900。
例2:修改组群ou的新组群名称为shanghai。
[root@redhat2 ~]# groupmod -n shanghai ou
[root@redhat2 ~]# cat /etc/group|grep shanghai
shanghai:x:900:
[root@redhat2 ~]#
//查看/etc/group文件,可以看到当前组群shanghai已经存在。
四.账户相关文件或目录
在创建、修改和删除账户时,涉及到众多的相关文件和目录,如/etc/skel目录、/etc/login.defs文件和/etc/default/useradd文件。
- /etc/skel目录
/etc/skel目录是存放用户启动文件的目录,这个目录由root用户管理,当管理员创建新用户时,这个目录下的文件会自动复制到新创建的用户的主目录下。/etc/skel目录下的文件都是隐藏文件,也就是类似".file"格式的,可以通过添加、修改和删除/etc/skel目录下的文件,来为用户提供一个统一、标准和默认的用户环境。
使用如下命令查看/etc/skel目录内包含的文件信息。
[root@redhat2 ~]# ls -al /etc/skel
total 40
drwxr-xr-x. 4 root root 4096 Jun 4 2014 .
drwxr-xr-x. 100 root root 12288 Jan 11 05:24 ..
-rw-r--r--. 1 root root 18 Apr 23 2012 .bash_logout
-rw-r--r--. 1 root root 176 Apr 23 2012 .bash_profile
-rw-r--r--. 1 root root 124 Apr 23 2012 .bashrc
drwxr-xr-x. 2 root root 4096 Jul 14 2010 .gnome2
-rw-r--r--. 1 root root 121 Apr 11 2012 .kshrc
drwxr-xr-x. 4 root root 4096 Jun 2 2014 .mozilla
[root@redhat2 ~]#
当用户useradd命令创建新用户时,/etc/skel目录下的文件会自动复制到新创建用户的主目录下。另外一种方法也可以达到同样效果,管理员通过修改/etc/passwd文件创建新用户时,设置用户的主目录,然后把/etc/skel下的文件复制到用户的主目录下,最后用chown命令改变新用户主目录的属主。
2./etc/login.defs配置文件
/etc/login.defs文件规定了创建新用户时的一些默认设置,比如创建用户时是否需要主目录、UID和GID的范围、用户账户口令的期限等,这个文件可以通过root用户来修改。
MAIL_DIR /var/spool/mail //创建用户时,要在目录/var/spool/mail中创建一个用户邮箱文件
PASS_MAX_DAYS 99999 //用户必须更改口令的天数
PASS_MIN_DAYS 0 //用户可以更改口令的天数
PASS_MIN_LEN 5 //口令最小长度
PASS_WARN_AGE 7 //在用户口令过期之前的警告时间
UID_MIN 500 //创建新用户时用户的UID从500开始
UID_MAX 60000 //用户最大UID职为60000
GID_MIN 500 //创建新组群时组群的GID从500开始
GID_MAX 60000 //组群最大GID值为60000
CREATE_HOME yes //是否要求创建用户主目录,yes表示要求创建
ENCRYPT_METHOD MD5 //启用MD5加密口令
3./etc/default/useradd文件
/etc/default/useradd文件是在使用useradd命令创建用户账户时的规则文件。
[root@redhat2 ~]# cat /etc/default/useradd
# useradd defaults file
GROUP=100
HOME=/home //把用户的主目录创建在/home目录中
INACTIVE=-1 //是否启用账户过期,-1表示不启用
EXPIRE= //账户终止日期,不设置表示不启用
SHELL=/bin/bash //用户账户所用shell类型
SKEL=/etc/skel //创建新用户时从/etc/skel目录下复制文件到用户主目录
CREATE_MAIL_SPOOL=yes //创建新用户时在/var/spool/mail目录下创建该用户邮箱目录。
五.用户和组群维护命令
1.账户维护命令
在平时的工作中对账户进行维护主要用到passwd,gpasswd,chfn,chsh,su,pwck以及newgrp等众多命令。
(1).passwd命令
使用passwd命令可以设置或修改用户的口令,普通用户和超级权限用户都可以运行passwd。
普通用户只能更改自己的用户口令,root用户可以设置或修改任何用户的口令。
如果passwd命令后面不接任何选项或用户名,则表示修改当前用户的口令。
命令语法:
[root@redhat2 ~]# passwd --help
Usage: passwd [OPTION...] <accountName>
-k, --keep-tokens keep non-expired authentication tokens
-d, --delete delete the password for the named account (root only)
-l, --lock lock the password for the named account (root only)
-u, --unlock unlock the password for the named account (root only)
-e, --expire expire the password for the named account (root only)
-f, --force force operation
-x, --maximum=DAYS maximum password lifetime (root only)
-n, --minimum=DAYS minimum password lifetime (root only)
-w, --warning=DAYS number of days warning users receives before password expiration (root only)
-i, --inactive=DAYS number of days after password expiration when an
account becomes disabled (root only)
-S, --status report password status on the named account (root only)
--stdin read new tokens from stdin (root only)
Help options:
-?, --help Show this help message
--usage Display brief usage message
例1:设置用户zhaoliu的口令
[root@redhat2 home]# passwd zhaoliu
Changing password for user zhaoliu.
New password:
BAD PASSWORD: it is WAY too short
BAD PASSWORD: is too simple
Retype new password:
passwd: all authentication tokens updated successfully.
[root@redhat2 home]#
例2:设置当前用户的口令
[root@redhat2 home]# passwd
Changing password for user root.
New password:
BAD PASSWORD: it is WAY too short
BAD PASSWORD: is too simple
Retype new password:
passwd: all authentication tokens updated successfully.
[root@redhat2 home]#
例3:锁住用户zhaoliu的口令。
[root@redhat2 home]# passwd -l zhaoliu
Locking password for user zhaoliu.
passwd: Success
[root@redhat2 home]#
//用户zhaoliu锁住以后不能登录到系统,但是可以用su命令从其他用户切换到用户zhaoliu
[root@redhat2 home]# passwd -S zhaoliu
zhaoliu LK 2015-01-12 0 99999 7 -1 (Password locked.)
[root@redhat2 home]#
//查看用户口令状态,可以看到用户zhaoliu的口令是锁住的。
[root@redhat2 home]# cat /etc/shadow|grep zhaoliu
zhaoliu:!!$1$fMvAUpfG$yIGyFEzLVkZflgi78rCkJ/:16448:0:99999:7:::
[root@redhat2 home]#
//查看/etc/shadow文件,可以看到用户zhaoliu口令锁住以后在口令字段前有"!!"
例4:解锁用户zhaoliu口令。
[root@redhat2 home]# passwd -u zhaoliu
Unlocking password for user zhaoliu.
passwd: Success
[root@redhat2 home]#
例5:删除用户zhaoliu的口令。
[root@redhat2 home]# cat /etc/shadow|grep zhaoliu
zhaoliu:!!$1$fMvAUpfG$yIGyFEzLVkZflgi78rCkJ/:16448:0:99999:7:::
//查看/etc/shadow文件,可以看到用户zhaoliu设置过口令。
[root@redhat2 home]# passwd -u zhaoliu
Unlocking password for user zhaoliu.
passwd: Success
[root@redhat2 home]# cat /etc/shadow|grep zhaoliu
zhaoliu:$1$fMvAUpfG$yIGyFEzLVkZflgi78rCkJ/:16448:0:99999:7:::
[root@redhat2 home]# passwd -d zhaoliu
Removing password for user zhaoliu.
passwd: Success
[root@redhat2 home]# cat /etc/shadow |grep zhaoliu
zhaoliu::16448:0:99999:7:::
[root@redhat2 home]#
//查看/etc/shadow文件,可以看到用户zhaoliu的口令已经没有了.
(2).gpasswd
使用gpasswd命令可以设置一个组群的组群密码,或是在组群中添加、删除用户。
[root@redhat2 home]# gpasswd
Usage: gpasswd [option] GROUP
Options:
-a, --add USER add USER to GROUP
-d, --delete USER remove USER from GROUP
-r, --remove-password remove the GROUP's password
-R, --restrict restrict access to GROUP to its members
-M, --members USER,... set the list of members of GROUP
-A, --administrators ADMIN,...
set the list of administrators for GROUP
Except for the -A and -M options, the options cannot be combined.
例1:把用户zhaoliu添加到zhang组群中。
[root@redhat2 home]# gpasswd -a zhaoliu zhang
Adding user zhaoliu to group zhang
//正在将用户"zhaoliu"加入到'zhang'组群中。
[root@redhat2 home]# cat /etc/group |grep zhaoliu
zhang:x:513:zhaoliu
[root@redhat2 home]#
//在/etc/group文件中可以看到zhang组群中有用户zhaoliu。
例2:从zhang组群中删除用户zhaoliu。
[root@redhat2 home]# gpasswd -d zhaoliu zhang
Removing user zhaoliu from group zhang
[root@redhat2 home]# cat /etc/group |grep zhang
zhangsan:x:501:
zhang:x:513:
[root@redhat2 home]#
//在/etc/group文件中可以看到zhang组群中已经没有用户zhaoliu了。
例3:设置zhang组群的口令。
[root@redhat2 home]# gpasswd zhang
Changing the password for group zhang
New Password:
Re-enter new password:
[root@redhat2 home]#
//在/etc/gshadow文件中可以看到组群zhang已经设置口令。
例4:取消zhang组群密码。
[root@redhat2 home]# gpasswd -r zhang
[root@redhat2 home]# cat /etc/gshadow |grep zhang
zhangsan:!::
zhang:::
[root@redhat2 home]#
//在/etc/gshadow文件中可以看到组群zhang已经不存在了。
(3).chsh命令
使用chsh命令可以更改用户账户的shell类型。
[root@redhat2 home]# chsh --help
Usage: chsh [ -s shell ] [ --list-shells ] [ --help ] [ --version ]
[ username ]
[root@redhat2 home]#
例1.列出当前系统中所有支持的shell类型。
[root@redhat2 home]# chsh -l
/bin/sh
/bin/bash
/sbin/nologin
/bin/tcsh
/bin/csh
/bin/ksh
[root@redhat2 home]#
例2:更改用户wangwu所用的shell类型为/bin/sh.
[root@redhat2 home]# cat /etc/passwd |grep wangwu
wangwu:x:514:514::/home/wangwu:/bin/bash
//查看/etc/passwd文件,可以看到用户wangwu的shell类型为/bin/bash
[root@redhat2 home]# chsh -s /bin/sh wangwu
Changing shell for wangwu.
Shell changed.
[root@redhat2 home]#
[root@redhat2 home]# cat /etc/passwd |grep wangwu
wangwu:x:514:514::/home/wangwu:/bin/sh
[root@redhat2 home]#
//查看/etc/passwd文件,可以看到用户wangwu的shell类型已经更改为/bin/sh
例3:更改当前用户wangwu 的shell类型为/bin/bash。
[root@redhat2 home]# chsh wangwu
Changing shell for wangwu.
New shell [/bin/sh]: /bin/bash //在此输入shell类型,比如/bin/bash
Shell changed.
[root@redhat2 home]#
(3).pwck命令
使用pwck命令可以检验用户配置文件/etc/passwd和/etc/shadow内容是否合法和完整。
[root@redhat2 home]# pwck
user 'adm': directory '/var/adm' does not exist
user 'uucp': directory '/var/spool/uucp' does not exist
user 'gopher': directory '/var/gopher' does not exist
user 'ftp': directory '/var/ftp' does not exist
user 'avahi-autoipd': directory '/var/lib/avahi-autoipd' does not exist
user 'saslauth': directory '/var/empty/saslauth' does not exist
user 'pulse': directory '/var/run/pulse' does not exist
user 'wangwu': directory '/home/wangwu' does not exist
pwck: no changes
[root@redhat2 home]#
//可以看到用户wangwu的主目录/home/wangwu不存在。
(4).newgrp命令
使用newgrp命令可以让用户账户以另一个组群的身份进行登录。
说明:newgrp指令类似于login指令,是以相同的账号名,不同的组群身份登录系统。如果要使用newgrp指令切换组群,用户必须是该组群的用户,否则将无法登陆指定的组群。单一用户如果要同时隶属多个组群,需利用交替用户的设置。如果不指定组群名称,则newgrp指令会登录该用户名称的预设组群。
例:将用户zhang以组群zhangsan的身份登录系统。
[root@redhat2 home]# su zhang
[zhang@redhat2 home]$ newgrp zhangsan
[zhang@redhat2 home]$ id
uid=513(zhang) gid=513(zhang) groups=513(zhang),501(zhangsan)
[zhang@redhat2 home]$
Linux 组群账户管理的更多相关文章
- 轻松学习Linux之用户账户管理及实例
Linux用户管理基础 (下载清晰视频:http://down.51cto.com/data/158699) 轻松学习Linux之用户账户管理的实例-跨硬盘移动数据 (此处视频不清楚下按下面地址下载清 ...
- 实验室 Linux 集群的管理常用命令
实验室有一个Linux集群,本文做一下记录. SSH相关命令 通过SSH登录集群中的其他机器上的操作系统(或虚拟机中的操作系统).操作系统之间已经设置免密码登录. 1. 无选项参数运行 SSH 通常使 ...
- CentOS下的账户管理
在Linux中,每个文件都分3类权限:账户本身的权限,账户所在群组的权限和其它权限.账户和群组是多对多的关系,即一个账户可以属于多个群组,一个群组可以包含多个账户.但是,对于每一个已登录的账户,只能存 ...
- Linux命令应用大词典-第13章 用户和组群管理
13.1 useradd:创建用户账户 13.2 adduser:创建用户账户 13.3 lnewusers:创建用户账户 13.4 usermod:修改用户账户 13.5 userdel:删除用户账 ...
- linux用户和组账户管理
linux操作系统是一个多用户操作系统,它允许多用户同时登录到系统上并使用资源.系统会根据账户来区分每个用户的文件,进程,任务和工作环境,使得每个用户工作都不受干扰. 用户账户 A.普通用户账户:普通 ...
- linux账户管理[转自vbird]
useraddpasswdchageusermoduserdelfingerchfnchshidgroupaddgroupmodgroupdelgpasswd useradd 完全参考默认值创建一个用 ...
- Linux学习历程——Centos 7 账户管理命令(用户篇)useradd usermod userdel
一.命令介绍 useradd 用于创建新的用户 usermod 用于修改用户属性 userdel 用于删除用户 -------------------------------- ...
- linux用户和组 之 用户管理
一. linux 用户和组的基本介绍 1.linux下 有三种用户: 1. root: 权限最大的. 2. 系统用户: UID小于1000的.系统服务管理用户,一般是不允许登录系统的.(比如mysql ...
- linux账户管理(centos)
1./etc/passwd 非常详细的/etc/passwd解释 http://luzl.iteye.com/blog/564404 vi /etc/passwd,可以看到如下信息,在最后一行可以看到 ...
随机推荐
- jdk6提供的加密算法
SUN:SHA1PRNG____sun.security.provider.SecureRandomSUN:SHA1withDSA____sun.security.provider.DSA$SHA1w ...
- 设计模式之二:MVC
模型(Model) 视图(View) 控制器(Controller) (MVC) 是 Cocoa 中的一种行为模块,并且也是所有 Cocoa 设计模式中使用最多的.在程序中按照它们的角色来分类这些对象 ...
- Cache-control使用Cache-control:private学习笔记
其作用根据不同的重新浏览方式,分为以下几种情况:(1).打开新窗口值为private.no-cache.must-revalidate,那么打开新窗口访问时都会重新访问服务器.而如果指定了max-ag ...
- 数据库连接JDBC和数据库连接池C3P0自定义的java封装类
数据库连接JDBC和数据库连接池C3P0自定义的java封装类 使用以下的包装类都需要自己有JDBC的驱动jar包: 如 mysql-connector-java-5.1.26-bin.jar(5.1 ...
- My first Scratch small game
My first Scratch small game:https://scratch.mit.edu/projects/62700370/ PC or Mac only. Browser & ...
- 关于NS2安装的若干问题
之前就知道这个软件安装起来很恶心,因为毕竟是10年前的软件,可没想到真的好恶心...花了整整一天才装上. 我安装的版本是ns-allinone-2.28,系统版本是ubuntu14.04 其实大部分出 ...
- 在Oracle Linux上使用DTrace的相关指导
如果你使用的Oracle Linux,因为sun被Oracle收购后,Oracle Linux版本的DTrace可以直接在Oracle官网进行下载. 下载地址 http://www.oracle.co ...
- c语言scanf返回值
1. scanf 函数是有返回值的,它的返回值可以分成三种情况 1) 正整数,表示正确输入参数的个数.例如执行 scanf("%d %d", &a, &b); 如果 ...
- 2015.12.29~2015.12.30真题回顾!-- HTML5学堂
2015.12.29~2015.12.30真题回顾!-- HTML5学堂 吃饭,能够解决饥饿,提供身体运作机能.练习就像吃饭,强壮自己,提升编程技能,寻求编程技巧的最佳捷径!吃饭不能停,练习同样不能停 ...
- Python asyncio库的学习和使用
因为要找工作,把之前自己搞的爬虫整理一下,没有项目经验真蛋疼,只能做这种水的不行的东西...T T,希望找工作能有好结果. 之前爬虫使用的是requests+多线程/多进程,后来随着前几天的深入了解 ...