如何通过编辑/etc/passwd/etc/shadow/etc/group文件为linux创建普通用户

 

Linux系统下与账户相关的配置文件有三个:/etc/passwd/etc/shadow/etc/group,这里以CentOS 7.1举例。

/etc/passwd:这里存储的是账号的登录名,UserIDGroupID,格式是accountname:passwd:UID:GID:GECOS:Directory:Shell。当然这里的passwd字段只是当做占位符,真正的密码是放在/etc/shadow中的。

/etc/shadow:这里记录的是账号的密码信息,格式是:loginname:Encrypted passwd:Date of lastpasswd change:minimum passwd age:maxmum passwd change:passwd warning period:passwdinactivity period:account expire date:reserved field.可以man 5 shadow详细查看一下,主要就是一些密码期限的设置。Date of last passwd change表示从1970/01/01到上一次修改密码的时间.设置的时候可以根据需要设置。

/etc/group:这里记录的是系统所有的组信息。格式是:group_name:passwd:GID:User listUser list是属于这个组的成员账号名,中间用逗号隔开。

下面就通过编辑这三个文件,添加一个用户test。(不一定非要按照我的顺序)

  1. 1.    /etc/passwd里添加一行:test:x:1001:1001:"Creattest":/home/test:/bin/bash。这里设置testUID1001GID1001,家目录/home/test

wKioL1YRNeKzRPnxAAGmrUZB5eE347.jpg

2、利用openssl passwd -1 –salt “string88”让自己输入的密码成为密文,加入-salt参数是因为设置密码时需要加入一些“杂质”。因为在/etc/shadow添加的密码字段是Encrypted passwd.这里我设置密码为Test, 然后产生一个加密的密文$1$wewewrqw$WcGacSKi6xZk5yy12hxgX. 将这个复制,在/etc/shadow里添加一行:test:$1$wewewrqw$WcGacSKi6xZk5yy12hxgX.:16712:0:9999:7:::

Date of last passwd change字段设置为1970/01/01到今天所经过的天数,其他字段的意义自己man 5 shadow查看吧。


wKiom1YRNf6wm3y-AACespUGcsU883.jpgwKioL1YRNh2RtACQAAEvGamN9mk825.jpg

3、在/etc/group里添加一行test:x:1001: 。一般的话,如果创建用户的时候没有制定用户所属的组,系统会默认创建一个与用户名称一样的组,成为用户的私有组,这个组只包含这一个用户。这里创建一个test的私有组,GID标示为1001,是刚才我们创建用户时指定的组ID

wKiom1YRNjmzzZGZAACwhddM9Yg133.jpg

4、再将bash的配置文件copy到用户的家目录下,cp –r /etc/skel /home/test 。这会创建用户的家目录,这样test用户就有shell可以登录了。

wKioL1YRNlyBiXRdAAD8JK4cUQs338.jpg

5、测试创建的账号,可以登录。可以用finger test id testgroups test查看用户的信息。可以发现与刚才设置的一样。

wKiom1YRNl-CC3FRAAEiaZuv9_Y085.jpg

wKioL1YRNnzxCZRAAAGLhkdrFt4653.jpg

至此大功告成!


不当之处,请指正!