用户一般来说是指使用计算机的人,计算机对针使用其的每一个人给了一个特定的名称,用户就可以使用这些名称来登录使用计算机,除了人之外,一些系统服务也需要含有部分特权的用户账户运行;因此出于安全考虑,用户管理应运而生,它加以明确限制各个用户账户的权限,root在计算机中用拥有至高特权,所以一般只作管理用,非特权用户可以通过SU来临时获得特权,要想实现用户账号的管理,要完成的工作主要有如下几个方面:用户账号的添加、删除、修改以及用户密码的管理。
用户与组的关系:一对一:一个用户可以存在一个组中;一对多:一个用户可以存在多个组中;
多对一:多个用户可以存在一个组中;多对多:多个用户可以存在多个组中。
用户管理:
1、添加用户
语法:#useradd 选项 用户名
常用选项:
-g:表示指定用户的用户主(主要)组,选项的值可以是用户组的id,也可以是组名
-G:表示指定用户的用户附加(额外)组,选项的值可以是用户组的id,也可以是组名
-u:uid,用户的id(用户的标识符),系统默认会从1000之后按顺序分配uid,如果不想使用系统分配的,可以通过该选项自定义【类似于腾讯QQ的自选靓号情况】
-c:comment,添加注释
-s:指定用户登入后所使用的shell 解释器 【专门的接待员】
-d:指定用户登入时的启始目录(家目录位置)
-n:取消建立以用户名称为名的群组
建立新的用户text1
[root@localhost ~]# useradd text1
[root@localhost ~]# tail -1 /etc/passwd
text1:x:1003:1003::/home/text1:/bin/bash
/etc/passwd每个字段的指代
text1:x:1003:1003::/home/text1:/bin/bash
用户名:用户密码占位符:UID:GID:用户描述:用户主目录:用户登录后使用的shell
这个格式也就是passwd的格式,需要能够认得。
shell: 查看系统中,支持哪些shell
[root@localhost ~]# cat /etc/shells #查看系统中,支持哪些shell
[root@localhost ~]# cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/usr/bin/sh
/usr/bin/bash
/usr/sbin/nologin
/bin/tcsh
/bin/csh
2、修改用户
语法:#usermod 选项 用户名
Usermod:user modify,用户修改
常用选项:
-g:表示指定用户的用户主组,选项的值可以是用户组的id,也可以是组名
-G:表示指定用户的用户附加组,选项的值可以是用户组的id,也可以是组名
-u:uid,用户的id(用户的标识符),
-l:修改用户名
-c<备注>:修改用户帐号的备注文
-d<登入目录>:修改用户登入时的目录
-s<shell>:修改用户登入后所使用的shell
如:将text1更名为text2
#usermod -l text2 text1 [新名字在前,旧名字在后]
3、设置密码
Linux不允许没有密码的用户登录到系统,因此前面创建的用户目前都处于锁定状态,需要设置密码之后才能登录计算机。
语法:#passwd [用户名] 【如果不指定用户名则修改自己的密码】
在设置密码的时候也是没有任何输入提示的,放心输入,确保两次输入的密码一致,按下回车即可。
设置密码之后shadow文件中的体现:能够看出新建立的用户没有密码的。
[root@localhost ~]# tail -3 /etc/shadow
he:$6$QHkFb3taJPeFdnmo$RGx3/G78r2oBXt0WwpE1eXNtuCTgwXw6KB6qwPP/7gudGsmrPjTykWiybnLmSVe36ieZHmTka2Hg11j8GsUum.::0:99999:7:::
mang:$6$jbo.rYFA$ODDMm/IP9AB7jYH/1HSstcjoUecTPgUde.WtHMcv4EuFuAkuv1Up7qNIWuhaEPqPFbi1k/jJ0MO2VwzhcTa5f1:18025:0:99999:7:::
text1:$6$pq7Jl./L$7XM/SN0sVtsvYieH5KGOsidtJ2xMYhx9CDtG4.3wFjKcJPYSD47YCw7IyYi/1B4iT0tcplvI2rut5Mf16kU60/:18027:0:99999:7:::
切换用户命令:#su [用户名](switch user)
如果用户名不指定则表示切换到root用户。
切换用户需要注意的事项:
a. 从root往普通用户切换不需要密码,但是反之则需要root密码;
b. 切换用户之后前后的工作路径是不变的;
c. 普通用户没有办法访问root用户家目录,但是反之则可以;
给用户添加密码:
交互(两次)
[root@localhost ~]# useradd ge
[root@localhost ~]# tail -1 /etc/passwd
ge:x:1004:1004::/home/ge:/bin/bash
[root@localhost ~]# id ge
uid=1004(ge) gid=1004(ge) 组=1004(ge)
[root@localhost ~]# passwd ge
更改用户 ge 的密码 。
新的 密码:
无效的密码: 密码少于 8 个字符
重新输入新的 密码:
不交互(一次)
[root@localhost ~]# useradd chali
[root@localhost ~]# tail -1 /etc/passwd
chali:x:1005:1005::/home/chali:/bin/bash
[root@localhost ~]# echo heping|passwd --stdin chali
更改用户 chali 的密码 。
4、删除用户
语法:#userdel 选项 用户名
Userdel:user delete(用户删除)
常用选项:
-r:表示删除用户的同时,删除其家目录;
如删除ge用户:
[root@localhost ~]# userdel -r ge
[root@localhost ~]# ll /home
总用量 4
drwx------. 3 chali chali 78 5月 11 21:30 chali
drwx------. 18 he he 4096 5月 11 21:21 he
drwx------. 5 mang text 196 5月 10 12:02 text
drwx------. 5 text1 text1 107 5月 11 21:22 text1
删除chali用户:
【root@localhost ~】# userdel -r chali
[root@localhost ~]# ll /home
总用量 4
drwx------. 18 he he 4096 5月 11 21:21 he
drwx------. 5 mang text 196 5月 10 12:02 text
drwx------. 5 text1 text1 107 5月 11 21:22 text1
删除完成。
注意这个表格:
名 称 |
帐号信息 |
说 明 |
用户配置文件 |
/etc/passwd |
记录了每个用户的一些基本属性,并且对所有用户可读,每一行记录对应一个用户,每行记录通过冒号进行分隔 |
用户组文件 |
/etc/group |
用户组的所有信息存放地儿,并且组名不能重复 |
用户对应的密码信息 |
/etc/shadow |
因为passwd文件对所有用户是可读的,为安全起见把密码从passwd中分离出来放入这个单独的文件,该文件只有root用户拥有读权限,从而保证密码安全性 |