1.         账号,群组的增删
 
新建群组:
[root@www /]# groupadd test        #如果需要手动指定GID的话使用-g参数
[root@www /]# grep test /etc/group
test:x:501:   
新建用户并加入到刚刚建立的群组中
[root@www /]# useradd -g 501 testing    #新建用户名testing,GID为501,即test群组
[root@www /]# grep test /etc/passwd
testing:x:501:501::/home/testing:/bin/bash   UID,主目录等默认配置即可   
附:如果想要加入多个群组,使用-G参数,后接群组名,即可加入次要群组。
修改密码
如果用户自己个自己修改密码的话直接键入passwd即可。
如果root账户给别的用户修改密码,键入passwd adbc(用户账户)即可。
[root@www /]# passwd ila
Changing password for user ila.
New UNIX password:       
 
附:
1. 另外一种比较好用的修改密码的方式:echo “password” | passwd –stdin userxxx  
2. 使用chage命令可以迫使用户修改密码。这个一般用于批量建立用户时使用的都是相同密码,用户第一次成功登录后强制用户修改初始密码。使用chage –d 0 userxxx 就可以使用这个功能。chage –l userxxx列出用户密码过期等相关信息。
 
 删除刚才新建的用户和群组
         [root@www /]# groupdel test   #删除群组
groupdel: cannot remove user's primary group.      #群组中还有用户故删除失败
 [root@www /]# userdel testing         #删除群组中的用户,如果不需要保留用户目录等,完全删除用户的话,加-r参数即可
#用户除了/home/xxx下面的文件外,还可能在别的目录下存在文件。要想完全清除这些残留文件的话使用find /xx –user xxx –exec cmdxxx {} \;的方式来作处理(备份或者删除等)
[root@www /]# grep testing /etc/passwd      #用户已删除
[root@www /]# groupdel test               #再删除群组
[root@www /]# grep tset /etc/group             #群组已删除
 
附:
1.        除了使用命令外,我们也可以直接去帐号文件中进行账户的增删工作。如果安装了Linuxconf套件的话,通过userconf命令可以进入图形化界面进行用户的配置。
需要注意的是,如果我们通过修改/etc/passwd文件来增加用户的话,需要用pwconv这个命令来同步/etc/shadow文件,否则无法给新增的用户添加密码。另外,需要到/etc/skel这个目录下拷贝所有的文件(隐藏)到新建用户的宿主目录下。否则用户登录时的提示符就是这样的:bash-3.2$。当我们使用命令添加用户是系统会自动去这个目录下拷贝文件所以就不会出现这个问题。
 
2.        我们使用userdel删除帐号只是对/etc/passwd进行了修改,所以用户的主目录等信息还是存在的。如果需要完全删除一个用户的话,userdel后面需要加-r参数。如果只是暂时的停用一个账户,那么将/etc/shadow的该用户的最后一个字段改为0即可,用户所有的信息都保存着。需要启用的时候再改回来即可。
e.g. 将/etc/shadow中该用户的倒数第一个字段改为0即可停用该账户
testing:$1$KcC3uHhv$MfPwZzqk1qDqT.PMIEA4Z.:15088:0:99999:7::0:
 
3.        阻止用户登录可以通过命令实现:usermod –L xxx即可,实现的效果就是在/etc/shadow文件下对应用户的密码字段将前加两个!,表示密码锁定。
相应的,解锁的命令为:usermod –U xxx 注意参数都是大写的。
使用passwd –l xxx也可以达到锁定的功能。相应的passwd –u就解锁了。
 
4.        另一种锁定的办法就是修改用户登录的shell环境,默认情况下的shell环境是/bin/shell,如果修改成/sbin/nologin,那么用户就无法登录了。
附:/sbin/nologin一般用于系统内置账户的shell,例如mail服务的mail,http服务的aprch,这些账户不用登录系统,所以使用nologin的shell。我们可以在/etc下简历nologin.txt,在这个文本里书写的文字将作为组织这些帐号登录时显示的错误输出。
 
5.        用户和群组的微调命令:usermod groupmod
如果需要修改用户UID,GID等信息,使用usermod命令。
usermod –u xxx –g xxx –G xxxuserxxx   #-u表示修改UID,-g表示修改初始群组,-G表示修改次要群组。
groupmod –g xxx –n xxx groupxxx #-g修改GID,-n修改群组名
 
 
初始群组,次要群组,有效群组
 
因为一个用户可以从属于多个群组,所以有初始群组和次要群组的概念。
在/etc/passwd里面,用户所对应的GID就是初始群组,即用户一登陆就获得该群组的权限。
在/etc/group里面,群组后面如果有用户,说明这个群组是该用户的次要群组,也就是说,用户的初始群组,在/etc/group里面是不显示该用户的。
e.g.
[root@www /]# tail -n 2 /etc/group
1234:x:502:
test:x:503:
如上所示,群组502是123的初始群组,503是test的初始群组。
所谓 有效群组就是用户当前所具有的群组的权限。使用groups命令输出的第一个群组就是当前用户的有效群组。如果用户新建文件或者目录的话,所属群组就是当前的有效群组。有效群组切换命令为:newgrp xxx。
附:加入多个群组的命令就是添加用户时使用-G参数,后接次要群组。
如果想修改用户的初始群组或者次要群组,使用usermod命令
usermod –g xxx:修改初始群组
usermod –G xxx:修改次要群组
修改群组名称
groupmod –n newgrpname oldgrpname