Linux用户、组管理
一、与用户和组相关的系统文件:
1、/etc/passwd:主要用来存放用户信息。
------------------------------------------------------------
 

[root@rhce ~]# cat /etc/passwd|sort
redhat:x:500:500: this is redhat :/home/redhat:/bin/bash
root:x:0:0:root:/root:/bin/bash
sabayon:x:86:86:Sabayon user:/home/sabayon:/sbin/nologin

------------------------------------------------------------
    上面是我们查看该文件显示的部分内容,我们来看一下每一部分的意义:(以冒号分割)
第一段:表示用户名(username)
第二段:表示密码位,但实际密码是保存在另一个文件/etc/shadow文件中。
第三段:用户ID(UID),唯一的,用来表示用户身份。UID=0说明是root,新建立的用户的UID从500起。
第四段:用户所属组的ID(GID),表示用户所在的组。
第五段:用户说明。
第六段:用户家目录的路径。
第七段:用户shell的类别。
2、/etc/shadow:主要用来存放密码信息。
-------------------------------------------------------------
 

[root@rhce ~]# cat /etc/shadow |sort
redhat:$1$PS5v6AAP$9gbHDVu2CvgFketEFtiPS/:14486:0:99999:7:::
root:$1$fI51MBg6$GYIPqo0v8/8ZcoB6.zUFD/:14486:0:99999:7:::
sshd:!!:14486:0:99999:7:::
sync:*:14486:0:99999:7:::

-------------------------------------------------------------
    上面是我们查看该文件显示的部分内容,我们来看一下每一部分的意义:(以冒号分割)
第一段:用户名(username)
第二段:表示密码。(密码使用md5加密的)
第三段:最近更待密码的时间;1970年1月1日为1。
第四段:密码多久需要被改动,0表示随时可以修改。
第五段:用户失效时间。9999是永远都不失效。
第六段:表示失效后可以登录账户修改密码的时间。
/etc/group:主要用来存放组的信息。
 

---------------------------------------------------------
[root@rhce ~]# cat /etc/group |sort
sale:x:501:test2
sys:x:3:root,bin,adm
test1:x:503:
test2:x:504:
test:x:502:test1

----------------------------------------------------------
    上面是我们查看该文件显示的部分内容,我们来看一下每一部分的意义:(以冒号分割)
第一段:组名字(groupname);
第二段:组秘密。通常不用设定,用户在不同的组进行切换时使用。当一个用户属于多个组的时候,其中有一个是当前组(有效组),其他的都是辅助组(附属组)。有的时候需要用附属组的身份来做一些事情,但是这个组加密了,那么密码就是这个位置的。真正的密码存放在/etc/gshadow 。
第三段:组号码,GID,唯一的。
第四段:成员账号名称,列出属于这个组的账号。
二、用户管理相关的命令:
1、Useradd:添加新用户命令。
格式:useradd [options] 用户名
常见选项:
- d:修改用户默认家目录。 useradd -d 新用户的家目录 新用户的名
- s:修改用户的登录shell。 useradd -s 新shell的路径 新用户名
-G:保存用户的原有组的同时,用户加入一个新的组中。useradd -G 组名字 新用户名
- g:不建立原有组,加入一个新的组。useradd -g 组名字 新用户
- c:用户说明信息。useradd -c "说明信息" 新用户名
- r:建立用户,不会建立家目录。
2、passwd:设定用户账户密码。
格式:passwd username
3、newusers:用于同时建立一组账户。
1)建立一个新文件:users(文件名可以随便起)。
2)文件内容格式如下:
User1:123456:600:600::/home/user1:/bin/bash
User2:123456:601:601::/home/user2:/bin/bash
User3:123456:602:602::/home/user3:/bin/bash
User4:123456:603:603::/home/user4:/bin/bash
......
3)运行newusers users
-----------------------------------------------------------
 

[root@rhce ~]#  vim users
user1:x:600:600::/home/user1:/bin/bash
user2:x:600:601::/home/user2:/bin/bash
user3:x:600:602::/home/user3:/bin/bash
user4:x:600:603::/home/user4:/bin/bash
user5:x:600:604::/home/user5:/bin/bash
[root@rhce ~]#  newusers users
[root@rhce ~]#  cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
redhat:x:500:500::/home/redhat:/bin/bash
named:x:25:25:Named:/var/named:/sbin/nologin
test1:x:501:503::/home/test1:/bin/bash
test2:x:502:504::/home/test2:/bin/bash
user1:x:600:600::/home/user1:/bin/bash
user2:x:600:601::/home/user2:/bin/bash
user3:x:600:602::/home/user3:/bin/bash
user4:x:600:603::/home/user4:/bin/bash
user5:x:600:604::/home/user5:/bin/bash
------------------------------------------------------------------------------------

4、usermod:修改用户属性:
格式:usermod [options] username 命令
Options说明信息:
-c :修改用户说明信息。usermod -c "说明信息" 目标用户名
-d :修改用户家目录。 usermod -d 新家目录路径 目标用户名
-g :从原来组中移动到新组中。 usermod 目标组名 目标用户名
-G :把目标组添加成用户的辅助组。usermod 目标组名 目标用户名
-s :修改默认登录的shell。usermod -s 新shell路径 目标用户名
5、userdel删除目标用户
格式:userdel [-r] username
-r:递归删除用户家目录。
6、groups:列出目标用户所属的组。
格式:groups username
三、组相关的命令:
1、groupadd:添加一个新组。
格式:groupadd [options] groupname
-g:后面跟组ID,指定新建立的组的组ID号码。
-r:建立用户组时GID控制在101~499之间。
2、groupmod:修改组的属性。
格式:groupmod [-g gid] [-n group_name] group
-g:修改组的组ID。
-n:更改组名字,原来的组将被删除。groupmod -n newgroupname oldgroupname
3、groupdel:删除组
格式:groupdel groupname
g4、passwd:
格式:gpasswd [options] username groupname
Options:
-d:把用户重组中删除。
-a:把用户添加到目标组。
-A:把用户设置成组管理员。
5、newgrp:切换目标用户的有效组。
格式:newgrp groupname


    备注:在进行组、用户管理时多是用groups命令,同时在建立新文件和目录时注意用newgrp命令切换组来查看有效组和辅助组不同身份的效果。