今天在一个技术Q群中求工作时,给一道看似简单,却很有味道的题目“Redhat下,创建一个用户有几种方式?”,特意上网查看了相关的资料,以作后记。
方法一 传统的Shell命令[adduser/useradd]
这个是最简单、最直接和最常用的方法了,相信大家都很熟悉了吧!下面就给出一些命令:
#adduser username
——>这个可以默认,当然为了安全起见,一般指定ID(尽量大于500)
如:#adduser username -u 600
#passwd username
——>这里必须得指定用户名才可以修改相应的用户的密码,否则将会修改当前用户的密码
下面是adduser命令的详细参数:
-c comment 新帐号password 文档的说明栏 -d home_dir 新帐号每次登入时所使用的home_dir,预设值为default_home内login名称,并当成登入时目录名称 -e expire_date 帐号终止日期,日期的指定格式为MM/DD/YY -f inactive_days 帐号过期几日后永久停权;当值为0时帐号,则立刻被停权;而当值为-1时,则关闭此功能,预设值为-1 -g initial_group group 名称或以数字来做为使用者登入起始群组(group),群组名须为现有存在的名称,群组数字也须为现有存在的群组,预设的群组数字为1 -G group,[...] 定义此使用者为此一堆groups的成员,每个群组使用??区格开来,不可以夹杂空白字元;群组名同-g选项的限制,定义值为使用者的起始群组 -m 使用者目录如不存在则自动建立,如使用-k选项 skeleton_dir内的档案将复制至使用者目录下;然而在/etc/skel目录下的档案也会复制过去取代,任何在skeleton_dir or /etc/skel的目录也相同会在使用者目录下一一建立,-k同-m不建立目录以及不复制任何档案为预设值 -s shell 使用者登入后使用的shell名称,预设为不填写,这样系统会帮你指定预设的登入shell -u uid 用者的ID值,必须为唯一的ID值,除非用-o选项;数字不可为负值,预设为最小不得小于99而逐次增加,0~99传统上是保留给系统帐号使用
方法二 手动创建
其实,手动来创建用户的过程也就是我们用shell命令所做的工作。它所涉及的几个文件是:
etc/passwd 储存账户信息
etc/shadow 真正存放密码文件
etc/group 存放组信息的文件
etc/gshadow 存放组密码吗的文件
而它所涉及的目录:
/hom 家目录
/var/spool/mail 邮件
1、向 passwd 添加用户相关
#vim /etc/passwd 按照以下格式添加: jx:x:600:600:jx:/home/jx:/bin/bash
在该文件中,每一行用户记录的各个数据段用“:”分隔,分别定义了用户的各方面属性,各个字段的顺序和含义如下:
注册名:口令:用户标识号:组标识号:用户名:用户主目录:命令解释程序shell
2、向shadow中添加MD5加密的口令
#grub-md5-crypt Password: Retype password: $1$7CL2v0$N9z0F85BGA31tLUaR7naY1
#chmod 700 /etc/shaow 由于默认是只读,后面完成添加后即刻修改回到原来的权限
#vim /etc/shadow 复制当前用户的行到最后,将第二部分修改为上网刚刚计算出来的MD5值,类似以下: jx:$1$7CL2v0$N9z0F85BGA31tLUaR7naY1:15640::::::
#chmod 000 /etc/shadow
3、添加到组 group中
本文件的主要内容包括用户组(Group)、用户组口令、GID及该用户组所包含的用户(User),每个用户组一条记录;格式如下:
group_name:passwd:GID:user_list
注:用户列表,每个用户之间用“,”号分割;本字段可以为空,如果字段为空表示用户组为GID的用户名
#vim /etc/group 复制当前用户的行到最后,再修改前面和后面即可,注意GID值,如: jxg:x:600:
4、 修改 gshadow 文件添加加密口令
这个文件与“shadow”类似,需要修改权限
#chmod 700 /etc/gshadow
#vim /etc/gshadow 复制当前用户的行到最后,修改第一个为相应的组即可,如: jxg:!::
#chmod 000 /etc/gshadow
5、创建用户的home 目录
#mkdir /home/jx #chmod 770 /home/jx 更改"jx"目录的权限为"770" #chown jx:jxg /home/jx 更改 "jx"目录所有人和组 # cat /etc/skel/. ./ .bash_logout .bashrc .mozilla/ ../ .bash_profile .gnome2/ #cp -a /etc/skel/.* /home/jx 为"jx"用户配置环境变量 在"jx" 目录下生成".bash_logout"、".bash_profile"、".bashrc" 三个隐藏文件(当前用户为root),如下: [root@Nagios ~]#ls -a /home/admin/. . .. .bash_logout .bash_profile .bashrc .gnome2 .mozilla [root@Nagios ~]#cp /home/admin/.* /home/jx [root@Nagios ~]#chown -R jx:jxg /home/jx/* 修改各文件属性权限
6、配置用户邮件mail目录
#cd /var/spool/mail #touch jx #chmod 660 jx 更改"jx"目录权限为660 #chown -R jx:jxg jx 更改 "jx"目录所有人和组
这样下来,我们的手工创建用户就成功啦!
方法三 图形界面-用户管理器
这个方法是在redhat系统的图形界面下使用的,比较简单。