如何通过修改配置文件为linux创建用户
如何通过编辑/etc/passwd、/etc/shadow、/etc/group文件为linux创建普通用户
Linux系统下与账户相关的配置文件有三个:/etc/passwd、/etc/shadow、/etc/group,这里以CentOS 7.1举例。
/etc/passwd:这里存储的是账号的登录名,UserID,GroupID,格式是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 list。User list是属于这个组的成员账号名,中间用逗号隔开。
下面就通过编辑这三个文件,添加一个用户test。(不一定非要按照我的顺序)
-
1. 在/etc/passwd里添加一行:test:x:1001:1001:"Creattest":/home/test:/bin/bash。这里设置test的UID为1001,GID为1001,家目录/home/test。
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查看吧。
3、在/etc/group里添加一行test:x:1001: 。一般的话,如果创建用户的时候没有制定用户所属的组,系统会默认创建一个与用户名称一样的组,成为用户的私有组,这个组只包含这一个用户。这里创建一个test的私有组,GID标示为1001,是刚才我们创建用户时指定的组ID。
4、再将bash的配置文件copy到用户的家目录下,cp –r /etc/skel /home/test 。这会创建用户的家目录,这样test用户就有shell可以登录了。
5、测试创建的账号,可以登录。可以用finger test 、id test、groups test查看用户的信息。可以发现与刚才设置的一样。
至此大功告成!
不当之处,请指正!
转载于:https://blog.51cto.com/xiekangle/1700183