用户管理命令:useradd,usermod,userdel,passwd,groupadd,groupdel,id,su chage,chfn (改变用户备注信息),chsh,newgrp,gpasswd
1.用户分类
linux用户有三类:根用户(root用户,命令提示符介面显示#)、普通用户 (命令提示符显介面示#)、虚拟用户
root用户:根用户也就是超级用户,拥有最高权限任务,任何文件权限对根用户无效,用户UID为0
普通用户:可以登陆系统,只能操作自己拥有文件权限的文件。是由系统管理员创建的。用户UID从501开始(500~60000 之间)
虚拟用户:又称伪用户,不具备系统登陆的权限,一般由系统创建或某些程序安装后创建,
2.用户帐号配置文件 (passwd 和 shadow及组文件group)
用户配置文件主要有两个路径是/etc/passwd 和 /etc/shadow及组文件/etc/group
2.1 passwd文件结构:
以上/etc/passwd文件的属性分解如下,共七个属性
smbuser:x:500:500::/home/smbuser:/bin/bash
smbuser: x: 500: 500: : #这里为空 /home/smbuser: /bin/bash
用户名: 加密口令: UID: 用户所属组的GID: 个人信息描述: 用户主目录: 登陆shell
用户名:由字母、数字组成。必须以字母开头,区分大小写,长度不超过8个字符
加密口令:只存放一个特殊字符X,因为passwd文件对所有用户都是可读的,所以为了安全起见,系统将加密口令存放于/etc/shadow文件中且只有超级用户才有读取权
限。
用户UID:系统中用来标识用户的数字(root:UID为0 ,普通用户UID为500-60000之间)
用户所属组GID:默认刚创建,主GID和用户UID相同,是主用户组,可以更改(一般组分为主用户组和附加组)
用户主目录:创建普通系统帐户时会默认创建一个和用户名相同的帐户,用户登陆后默认所处的目录一般为~([root@centso-test ~])
登陆shell:用户登陆后启动以接收并解析执行用户输入命令的程序,如./bin/bash /bin/csh. 虚拟用户一般该属性为空或者是 /sbin/nologin /bin/fase 表示禁止用户登
陆
用户ID范围
管理员:0
一般用户1-65535
系统用户:1-499(系统默认创建)
普通用户:500-65535(由管理员创建)
2.2 shadow文件结构:/etc/shadow
以:作为分隔符,一共有九栏
[root@serverln tmp]# cat /etc/shadow
root:$6$hgwagXkBWGArriiQ$sajFOnZmrW2x0S6dipxvXXAJNfB1/BC0OvzjqeGZqQBVbng3aD9/CeD2j3YOnd6g2NJfPnk7zI1.9xqQ5aO6d0:16381:0:99999:7:::
bin:*:15980:0:99999:7:::
jacob:!!:16382:0:99999:7:::
帐号名称:密码:最近更改密码日期:密码不可被更改日期:密码需重设定日期:密码到期警告天数:密码过期后能使用的天数:帐号失效的日期:保留
一、创建用户和群组及查看用户及群组的信息
命令:useradd usergroup id
1、创建新用户
用法:useradd [ Option ] UserName
option: -c 设置帐号描述信息。
-d 设置用户的家目录
-e 设置帐户的失效日期,格式为YYYY-MM-DD
-g 设置用户的基本组。
-G 设置用户附加组,多个附加组中间用逗号隔开。
-M 不创建家目录,一般与-s结合使用
-s 设置帐户的登陆shell,默认为bash.
-u 指定帐户的UID
示例: [root@serverln user_test]# useradd -c administrator -d /home/admin -e 2014-12-12 -g root -G,bin,mail
创建admin帐户 用户信息,指定用户信息为administrator,家目录为/home/admin,失效日期为2014年12月12日,指定默认组为root,附加组为
bin,mail
2、创建群组
用法:usergroup [ Option ] GroupName
option:-g 设置组ID示例 : [root@serverln user_test]# usergroup -g 1000 tom # 创建组ID为1000的组tom。
3、查看用户及群组信息
用法:id UserName
示例:[root@serverln user_test]# id test1
uid=500(test1) gid=500(test1) groups=500(test1),501(user1) # 显示test1用户的信息后面501为附加组
二、修改用户及组
命令:passwd usermod groupmod
1、更新帐号认证信息
用法:passwd [option] UserName
-u 解锁帐户
-d 快速清空密码
示例 :passwd UserName #只有管理员拥有此权限,修改指定的用户密码
2、修改用户信息
usermod
用法:usermod[ Option ] UserName
option: -c 设置帐号描述信息。
-d 设置用户的家目录
-e 设置帐户的失效日期,格式为YYYY-MM-DD
-g 设置用户的基本组。
-G 设置用户附加组,多个附加组中间用逗号隔开。
-M 不创建家目录,一般与-s结合使用
-s 设置帐户的登陆shell,默认为bash.
-u 指定帐户的UID
3、修改群组信息
groupmod(group modify)
用法:groupmod[ Option ] UserName
option: -g <群组识别码> 设置欲使用的群组识别码。(GID)
-o 重复使用群组识别码。
-n <新群组名称> 设置欲使用的群组名称。
示例:[root@serverln user_test]# groupmod -n user2 user1 #将user1组修改成user2组
三、删除用户及组
userdel
用法:userdel Option ] UserName
option:-r 删除用户时家目录也一起删除,用此项时请备份被删用户家目录
-f 强制删除用户,即使用户处于登陆状态,此项慎用。
groupdel
用法:groupdel GroupName
------------------------------------------------------------
chfn 更改用户注释, chsh 更改登陆shell
chsh
用法:chsh [Option ] UserName
option:-l 查看机器上安装了哪些shell
-s 更改用户使用shell
[root@serverln user_test]# chsh -s /bin/bash user1 #更改user1用户shell为bash
查看电脑目前安装的shell
两种方法可以查看:
第一种:
[root@serverln user_test]# chsh -l
/bin/sh
/bin/bash
/sbin/nologin
/bin/zsh
第二种:
[root@serverln user_test]# cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/bin/zsh
[rocrocket@wupengchong ~]$ echo $SHELL #查看当前电脑使用的shell
/bin/bash
[root@centso-test ~]# useradd smbuser
[root@centso-test ~]# groupadd share
[root@centso-test ~]# usermod -a -G share smbuser #添加到另一个组中,如果不加-a属性会直接更改你所在的组
[root@centso-test ~]# groups smbuser
smbuser : smbuser share