用户管理有两个最重要的配置文件,一个是保存用户信息的文件/etc/passwd,一个是保存了用户密码的文件/etc/shadow。
超级用户的uid为0,在/etc/passwd上面有好多伪用户,那些用户是不能登陆的,她们的uid在1-499之间linux用户管理文件linux用户管理文件,安装完系统就缺省的添加了那些用户。
UID为0的用户就是超级用户。
将/etc/passwdtest:x:1002:1003::/home/test:/bin/bash将其改为test:x:0:1003::/home/test:/bin/bash
[root@centosoracle]#su-test
上一次登陆:一12月2521:22:01CST2017pts/0上
[root@centos~]#
可以看见test用户变为了超级用户,权限和root一样。
在使用useradd添加的用户是普通用户,在系统安装完毕在/etc/passwd上面就有许多用户,这儿面有好多用户并不是真正可以登录系统和使用的。
root@localhost~]#head-n5/etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
oracle:x:1001:1001:/home/oracle:/bin/bash
在/etc/passwd上面保存了每一个用户的信息,可以使用man5passwd来查看配置文件帮助。
(密码文件)里每行一条记录,而且每行有这样的格式:
account:password:UID:GID:GECOS:directory:shell(账号:密码:用户ID:组ID:通常的信息:目录:shell)
数组描述如下:
account使用者在系统中的名子,它不能包含小写字母.
password加密的用户密码,或则星号。
UID用户ID数。
GID用户的主要组ID数。
GECOS这数组是可选的,一般为了储存信息目的而设的.一般红旗 linux,它包含了用户的全名.GECOS意思是通用电气综合操作系统(GeneralElectricComprehen‐
siveOperatingSystem),当GE的小型系统部分割售卖给Honeywell时它被改为GCOS.DennisRitchie
作过报告:"有时我们发送彩印品或批道作业到GCOS机器时,gcos数组打断了$IDENT卡的信息,不太美观。"
directory用户的$HOME目录.
shell登陆时运行的程序(假如空的,使用/bin/sh).假如设为不存在的执行(程序),用户不能通过login(1)登陆.
在密码位的地方没有储存密码。在linux上面内核只认识数字,不认识密码,
伪用户通常分为两种,一种是与linux系统相关的,一种是与程序服务相关的。例如使用shutdown死机的时侯才会调用伪用户的身分。在linux系统上面任何一个进程操作都必须有一个用户身分,这个就通过调用伪用户。例如安装了apache,http的进程,启动之后也要对应一个用户身分,并且不能对应root启动这个进程,假如他人得到这个进程相当于泄露到管理员root的权限,这样很危险,所以都是通过一些伪用户linux启动盘制作工具,添加一些服务的伪用户,例如apache,mysql。那些实际上是这种进程启动然后调用的用户身分。
所以伪用户最大的作用就是在一些系统操作或一些应用服务的调用的身分而已。
用户组是同样类型用户的集合,一个用户可以属于多个用户组,例如有一个用户叫张三,可以让其管理FTPserver又可以管理webserver,可以让其同时属于这两个组。并且总要有一个缺省的组,UID就是定义缺省组的组id,添加一个一个用户的时侯若果不指定缺省组,默认创建一个和用户名称相同的组而且将用户添加进去。
在实际当中,添加一个用户必须指定所在的组。
一个用户属于某个组就拥有这个组的权限。所以用户加入组就是让用户享有这个组的权限。
描述信息,这个部份可以写内容也可以不写,就是拿来描述用户信息的,建议在添加用户的时侯写上用户的描述信息。
每一个普通用户必需要有一个寄主目录来储存基本信息,例如环境设置的选项,假如创建用户不指定寄主目录,这么都会在/home下边创建和用户同名的寄主目录。
普通用户使用的缺省shell就是bashshell。
假如真的要将linux做一个服务器,这么密码最好使用8位或则8位以上的,大小写数字字母的组合来组成密码。Unix最早采用的加密算法是des,然而des辨识的密码位只有8位,现今使用的linux大多数时侯使用的是des和md5混和使用的,md5是255位的。
Md5进行密码的加密,MD5算法对密码的加密规则,第一个,输入的厚度不固定而且输出的宽度是固定的,不管输入的密码宽度是6位的还是8位的,生成的加密的密码是固定宽度的值,双向不可逆的,难以通过输出推断出输入的值。
[root@centosoracle]#echo"123456"|md5sum
f447b20a7fcbf53a5d5be013ea0b15af-
[root@centosoracle]#echo"1"|md5sum
b026324c6904b2a9cb4b88d6d61c81d1-
可以看见不同厚度的密码最终生成的密文都是同等厚度的,在设置密码的时侯硬度要足够同时应当时常更改密码。
为何不在/etc/passwd上面密码位放上用户的加密密码。
由于在/tec/passwd上面保存了用户的信息,有好多命令在使用的过程当中会调用那些信息,调用那些信息就须要/etc/passwd这个文件。所以查看/etc/passwd文件会发觉每一个用户对其都有一个读的权限,这么将加密密码置于这儿每位人都可以领到加密之后的密码去尝试破解,这样就危险了。(用户密码是储存在/etc/shadow上面)
[root@centosoracle]#ls-ld/etc/passwd
-rw-r--r--.1rootroot245912月2521:25/etc/passwd