linux 创建新账号 useradd 命令使用

Linux创建新账号useradd详解
本文详细介绍了Linux系统中使用useradd命令创建新账号的过程,包括与用户管理相关的文件和参数,通过示例展示了创建账号的具体步骤,并揭示了useradd命令的默认设置。

在好久好久以前,我曾经写过两篇介绍 linux 下面与用户有关的一些文件,现准备用一些时间来介绍一下 linux 管理账号相关的操作,既然是管理账号咱就先来了解一下 linux 创建新账号useradd的命令,改日为您奉上设置用户密码,及删除账号的一些命令。

本文仍然参考自《鸟哥的Linux私房菜》,所以如果列位也可认为我是把鸟哥的一些东西整理一下也好。呵呵,反正是为了自己和大家看着方便。Let’s Go~

与用户管理相关的文件:

虽然以前介绍过,但是这里再简单回顾一下,温故而知新。在 Linux 系统中,与用户管理有关的文件主要有如下几个:分别是/etc/passwd,/etc/shadow,/etc/gfoup,/etc/gshadow 。它们分别与用户的账号,密码,用户组及用户组密码有关。

所以创建新账号的过程也就是和这几个文件在打交道,不过不要害怕,通过 useradd 命令来创建新账号,系统会自动与这些文件进行操作不用咱手动一个一个的来更改,这样也不用担心出错的问题。呵呵。

useradd 语法结构:

有事找“男人”是Linux最有效的方法,咱先来看一下useradd的语法结构,因为本人现在系统是Fedora11,其man语句直接用的中文,虽然方便阅读却也难免有错误,不过基本还好,大家看到下面的汉字勿怪,呵呵:

名 称 useradd – 帐 号 建 立 或 更 新 新 使 用 者 的 资 讯

语 法 useradd [-c comment] [-d home_dir]
[-e expire_date] [-f inactive_time]
[-g initial_group] [-G group[,...]]
[-m [-k skeleton_dir] | -M] [-s shell]
[-u uid [ -o]] [-n] [-r] username

useradd -D [-g default_group] [-b default_home]
[-f default_inactive] [-e default_expire_date]
[-s default_shell]

首先来说一下这个 -D 参数,如果加上此参数当 useradd 会显示出现创建新账号的一些默认值,或是通过指定参数内容来更新默认值。这个咱们稍候再来讨论,暂且略过。

看其没有-D参数的各个选项,下面简单为大家描述一二,有个印象,一会儿再看我给列位的示例时也不至于头晕。呵呵。

参数名描述
-u后面接UID,是一组数字。直接给这个账号指定一个特定的UID。
-g后面接的用户组名称就是之前提到的初始用户组。
该group ID(GID)会放置到 /etc/passwd 的第四个字段内。
-G后面接的用户组名称是这个账号还可以属于哪些用户组。
此参数会修改 /etc/group 内的相关数据。
-M强制不创建家目录。
-m强制必须创建家目录。
-c就是 /etc/passwd 第五栏的用户说明信息,可以随便设置,各位随意。
-d用此参数后面指定的路径做为新账号的家目录,而不使用默认值。
-r创建的账号为系统账号:该账号的UID会有限制(/etc/login.defs)
-s指定新账号的默认shell

useradd 示例:

说了这么半天,咱也来动手用 useradd 命令新建几个账号,提升一下咱的动手能力。另外,算是做个演示吧,毕竟实践出真知嘛。呵呵,不过我忘了这是哪位伟人说的话了。嗯。

# 不加任何参数,直接默认创建一个新用户 chongpig 
[simaopig@xiaoxiaozi ~]$ useradd chongpig
bash: /usr/sbin/useradd: 权限不够
[simaopig@xiaoxiaozi ~]su
密码:
[root@xiaoxiaozi simaopig]# useradd chongpig
[root@xiaoxiaozi simaopig]# ls -l /home/
总计 24
drwx------.  4 chongpig chongpig  4096 07-21 21:58 chongpig
drwx------.  2 root     root     16384 07-12 13:08 lost+found
drwxr-xr-x. 44 simaopig simaopig  4096 07-21 21:21 simaopig

# 在和用户相关联的几个文件里面搜一下chongpig这个账号

[root@xiaoxiaozi simaopig]# grep chongpig /etc/passwd /etc/shadow /etc/group
/etc/passwd:chongpig:x:501:501::/home/chongpig:/bin/bash
/etc/shadow:chongpig:!!:14446:0:99999:7:::
/etc/group:chongpig:x:501:
# 创建一个新账号 simaopig2 ,且看一下 UID 888 不存在,那么就指定给simaopig2,
# 并且把它加到 mysql 组中
[root@xiaoxiaozi simaopig]# grep 888 /etc/passwd
[root@xiaoxiaozi simaopig]# useradd -u 888 -g mysql simaopig2
[root@xiaoxiaozi simaopig]# grep simaopig2 /etc/passwd /etc/shadow /etc/group
/etc/passwd:simaopig2:x:888:27::/home/simaopig2:/bin/bash
/etc/shadow:simaopig2:!!:14446:0:99999:7:::
# 建立一个系统账号simaopig3 看一下系统账号有啥不同
[root@xiaoxiaozi simaopig]# useradd -r simaopig3 
[root@xiaoxiaozi simaopig]# grep simaopig3 /etc/passwd /etc/shadow /etc/group
/etc/passwd:simaopig3:x:490:484::/home/simaopig3:/bin/bash
/etc/shadow:simaopig3:!!:14446::::::
/etc/group:simaopig3:x:484:

系统账号的 UID 与 GID 竟然不同,而且在 /etc/group 里面有对应关系。

细心的同学一定会发现,用 useradd 创建的账号是没有登录功能的,因为其在 /etc/shadow 中的密码栏是不可能登录的,以 ! 开头。所以近日我们还会讨论 Linux 给用户更改密码的方法。

useradd 默认值:

上面的示例可以让我们了解到,系统其实已经规范好了一些新增用户时的参数了,像我没有指定用户的家目录,也没有指定用户的 UID 和 GID 可是系统会帮我们为用户加上,同时其默认shell被设置成了 /bin/bash ,也让我知道了,使用 useradd 命令一定要有 root 权限。那么, useradd 去新增用户时,其默认值是多少呢?

使用上面所说的 useradd 的 -D 参数可以显示出其默认值,各位可以看出,其值完全与 /etc/default/useradd 这个文件里面的内容相同。原来在 linux 中使用 useradd 去新增用户时,一些在 /etc/passwd 中的值是会去参考 /etc/default/useradd 这个文件的。其文件内容基本如下:

# useradd defaults file
# 默认的用户组
GROUP=100
# 家目录的地址
HOME=/home 
# 密码过期的宽限时间,对应 /etc/shadow 的第七栏
INACTIVE=-1             
# 账号失效日期,对应 /etc/shadow 的第八栏
EXPIRE=                 
# 默认使用的shell
SHELL=/bin/bash          
# 用户家目录里面的内容参照文件(里面基本上全为隐藏文件——>以“.”开头的文件)
SKEL=/etc/skel            
# 建立使用者的mailbox
CREATE_MAIL_SPOOL=yes

总结及啰嗦:

简简单单的先介绍至此,传说中 linux 创建账号还可以使用 adduser 命令,其实这与 useradd 是同一个命令的不同名字罢了。因为大家用 man adduser 进入的完全是 useradd 的介绍页。当然有更简单的通过图形界面创建用户的方法,但是这我就不教大家了。

悄悄的告诉大家,其实这些示例也都是我在敲这篇文章的时候挨个试的,现在我的系统里面真的多了好多用户。呵呵。不过为了保证程序的准确性这是必须滴,毕竟这是我自己的学习过程。

PS:订阅量过40了,有点小开心。谢谢大家。

KesionCMS是漳州科兴信息技术有限公司开发的一套万能建站产品,是CMS行业最流行的网站建设解决方案之一。最版X1.0把主系统及一些辅助系统模块化开发,前后台UI采用HTML5全架构,方便随时删除(隐藏)安装所需要的模块。应广大用户群体建议,此次版本改动所有涉及编辑器和视频播放的模块,全部采用百度编辑器(ueditor)及ckplayer视频播放器,改进后的视频(flv,mp4等格式视频)支持在手机上播放。且版本X1.0增加了手机短信接口,可以启用注册会员短信验证注册,手机取回密码,商城支付短信通知,手机号码实名认证,商城订单提醒,稿件审核,后台给指定会员群发手机短信等等。 在此大篇幅的改进后,以下简要介绍版本的部分功能模块开发预览: 一、会员系统及空间门户改进 1、 会员用户组增加自动升级功能,当达到一定的条件用户组将会自动从低权限的用户级别升级到高权限的用户级别 2、 会员系统的用户组支持无限级扩展分类 3、 个人/企业空间的博文增加可以后台设置幻灯及推荐属性 4、 增个人/企业空间联系方式可以设置只有指定的用户组才可以查看 5、 后台会员管理增加可以手工将通过充值卡获得的VIP用户组,到期后更为免费会员组 6、后台增加给会员批量发送手机短信功能 7、门户圈子增加查看权限,可以设置只有圈子里的成员才可以查看本圈里的帖子 8、在网站后台的用户管理里,可以直接登陆某个会员的会员中心 二、影视系统改进 1、影视系统前台投稿支持发布多集影片 2、影视系统播放器重开发集成ckplayer 3、影视系统允许设置VIP会员组播放前无需播放广告功能 4、影视系统增加3G手机版本支持 5、影视系统批量设置支持设置服务器,前置广告等。 6、支持播放前广告及暂停广告设置,并支持自动播放下一集 三、考试系统的改进 1、考试系统日常练习改进有效期用户每天练习不受限制 2、修复考试系统答题页面时间提示框不能固定居中的BUG 3、考试系统改进同一个大型里加的小试题的题目类型可以不一样 4、考试系统视频讲解调用ckplayer播放器,支持手机播放 四、商城系统改进 1、商城系统发放优惠券增加站内消息,电子邮件及手机短信通知功能 2、修复商城商品加入购物车提示对不起普通商品和积分兑换商品不能放在一起 4、商城系统优惠券增加加入导出EXCEL功能 5、商城的团购允许设置只付定金 6、商城增加可能按条件搜索后批量调价 7、添加/修改商品可以直接将商品加入限时限量抢购,并且限时抢购时间一到会自动将商品还原来普通销售模式 8、商城增加VIP价格,VIP用户助独享VIP价 五、模型、栏目及字段的改进 1、模型增加可以排序功能 2、主模型的自定义字段支持分组 3、栏目名称可以在模型管理里定义 4、增加栏目时可以设置首字母,及可以设置栏目的打开方式 5、栏目批量设置里增加可以批量设置画中画广告 6、添加/编辑栏目允许直接设置允许管理本栏目的管理员角色 六、自定义表单改进 1、自定义表单发送到管理员邮箱,支持设置多个接收邮箱,并且可以设置是否同时发给用户和管理员 2、自定义表单可以设置提交成功提示信息及设置提交成功后要返回的页面 3、自定义表单可以设置每个IP只能提交一次 4、改进自定表单上传的文件,删除表单提交记录时,可以将其随之删除 七、手机3G版本改进 1、手机3G版本增加搜索功能 2、手机版本增加在线拍照修改头像功能 3、手机3G版本增加自动识别当采用手机访问时,自动跳转到对应的手机版本。 4、手机版本自带模板的优化 温馨提示:KesionCMS X1.0 功能改进之多,并未能全部一一列出,更多详细资料可移步至官网查看。
20.1 ftp服务 ftp采用客户/服务器工作模式,这里采用的是vsftpd ftp服务器软件。ftp工作方式分为两种,一种port主动模式,一种pasv被动模式,是服务主动与被动进行连接。一般ftp服务器都为被动模式 。 20.1.1 vsftp概述 rpm -qc vsftpd /etc/logrotate.d/vsftpd.log /etc/pam.d/vsftpd /*vsftp的安全验证文件*/ /etc/vsftpd/ftpusers /*其中的用户不能登陆ftp*/ /etc/vsftpd/user_list /*其中的用户不能登陆ftp同上一样*/ /etc/vsftpd/vsftpd.conf /*ftp主配置文件*/ /etc/vsftpd/vsftpd_conf_migrate.sh vsftp的主目录的位置在/var/ftp下,并且是系统默认,不能更改。vsftp在通过rpm包安装好后,打开其服务并设为自动运行后,ftp就可以 提供服务了。 20.1.2 vsftp安装与启动 如果没有安装的话,通过以下方式进行安装。 rpm -ivh vsftpd-2.0.4-1.2.i386.rpm warning: vsftpd-2.0.4-1.2.i386.rpm: Header V3 DSA signature: NOKEY, key ID 4f2a6fd2 Preparing... ########################################### [100%] 1:vsftpd ########################################### [100%] vsftpd服务采用是独立启动方式来启动的。 chkconfig --level 345 vsftpd on设为开机自启动 service vsftpd start 启动ftp服务。 20.2 vsftp访问配置 20.2.1 vsftp匿名用户 匿名用户:ftp 与anonymous其主目录为/var/ftp 普通用户:用户名为登录用户名,主目录为/home/用户名 20.2.2 vsftp默认配置文件 去掉#后配置选项如下: vi vsftpd.conf anonymous_enable=YES /*匿名用户启用*/ local_enable=YES /*本地用户可登陆*/ write_enable=YES /*是否允许写*/ local_umask=022 /*锁定创建文件权限*/ #anon_upload_enable=YES /*是否允许匿名用户上传*/ #anon_mkdir_write_enable=YES /*是否允许匿名用户创建目录*/ dirmessage_enable=YES /*允许显示目录信息*/ xferlog_enable=YES /*启用记录上传与下载日志*/ connect_from_port_20=YES /*开启20端口*/ #chown_uploads=YES #chown_username=whoever #xferlog_file=/var/log/vsftpd.log /*上传与下载日志文件*/ xferlog_std_format=YES /*使用标准日志格式*/ #idle_session_timeout=600 /*会话空闲时间*/ #data_connection_timeout=120 /*连接超时时间*/ #nopriv_user=ftpsecure #async_abor_enable=YES #ascii_upload_enable=YES /*是否使用ascii格式上传*/ #ascii_download_enable=YES /*是否使用ascii格式下载*/ #ftpd_banner=Welcome to blah FTP service. /*服务器banner*/ #deny_email_enable=YES /*启用电子邮件阻止*/ #banned_email_file=/etc/vsftpd/banned_emails /* 阻止的邮件地址文件*/ #chroot_list_enable=YES /*是否允许用户改变主目录*/ #chroot_list_file=/etc/vsftpd/chroot_list /*允许改变主目录的用户*/ #ls_recurse_enable=YES /*是否允许用户ls -R循环显示每一个目录*/ pam_service_name=vsftpd /*验证服务名*/ userlist_enable=YES /*用户列表中的用户不能登录FTP*/ #userlist_file=/etc/vsftpd/user_list listen=YES /*监听模式*/ tcp_wrappers=YES 说明:默认配置文件就已经能够实现匿名用户对/var/ftp文件内容的下载,以及本机用户对自已主目录的访问(上传与下载)。 20.3 vsftp配置基本实例 20.3.1 改变端口号 vi vsftpd.conf #增底下一行,原有的配置不动 listen_port=2121 #重启服务 service vsftpd restart 20.3.2 特定用户不能更改目录 使用者的预设目录为/home/username,若是我们不希望使用者redhat在ftp 时能够切换到上一层目录/home,则可参考以下步骤。 #去掉注释 chroot_list_enable=YES chroot_list_file=/etc/vsftpd/chroot_list #或以上选项注释掉,所有用户都不能更改目录。 #编辑下列文件 vi /etc/vsftpd/chroot_list #加入内容 redhat #重启服务 service vsftpd restart 20.3.3 允许匿名上传 vi vsftpd.conf #修改以下内容 anon_upload_enable=YES /*是否允许匿名用户上传*/ anon_mkdir_write_enable=YES /*是否允许匿名用户创建目录*/ #重启服务 service vsftpd restart 注意:对于上传目录,必须设为可写才行。 chmod o+w /var/ftp 20.3.4 取消匿名登录 说明:取消匿名登录后,系统用户都可以通过用户名与密码来访问FTP服务器了。 vi vsftpd.conf #修改以下内容 anonymous_enable=NO #重启服务 service vsftpd restart 20.3.5 设置欢迎信息 vi vsftpd.conf #修改以下内容 ftpd_banner=Welcome to koumm’s FTP service. /*服务器欢迎信息*/ dirmessage_enable=YES /*默认是开启状态*/ #然后在/var/ftp中建立.message文件。 #该文件为目录说明文件,用于对目录的说明,每个目录中都可有。 vi /var/ftp/.message 欢迎访问ftp主目录。 /*通过SecureCRT登录可以打汉字,并可显示*/ #重启服务 service vsftpd restart 20.3.6 以独立进程联机 vi vsftpd.conf #加入以下内容 setproctitle_enable=YES /*默认是开启状态*/ #重启服务 service vsftpd restart #测试 ps -ef|grep ftp #该功能可能只是在管理上可以查看用户登录的情况吧。 20.3.7 限制下载速度 vi vsftpd.conf #加入以下内容 anon_max_rate=100000 /*匿名最高速为100KB*/ local_max_rate=200000 /*本机用户最高速为200KB */ #实际速度会在80-120%之间。 #重启服务 service vsftpd restart 20.3.8 使用pasv联机模式 vi vsftpd.conf #加入以下内容 listen_port=2121 /*监听2121端口,用于防火墙 */ pasv_enable=YES /*启用pasv模式*/ pasv_min_port=9981 /*pasv端口范围*/ pasv_max_port=9986 #重启服务 service vsftpd restart 20.3.9 超级守护程序启动 vi vsftpd.conf #修改以下内容 listen=NO /*监听2121端口,用于防火墙 */ #在/etc/xinetd.d/建以下内容 vi /etc/xinetd.d/vsftpd service vsftpd { disable = no socket_type = stream wait = no user = root server = /usr/sbin/vsftpd port = 21 log_on_success += PID HOST DURATION log_on_failure += HOST } #重启服务 service xinetd restart 注:该配置是对以前服务的一个加深的理解,也相应的也提供了一个处理问题的思路。 20.3.10 最大连机数 vi vsftpd.conf #加入以下内容 max_clients = 100 /*服务器最大连机默认为0无限制*/ max_per_ip = 5 /*单IP最大连机默认为0无限制*/ #重启服务 service xinetd restart 注:该配置是对以前服务的一个加深的理解,也相应的也提供了一个处理问题的思路。 20.3.11 特定用户不能登录方法一 #其中的用户不能登陆ftp /etc/vsftpd/ftpusers #可以通过以下文件来进行控制的,第二行内容。 vi /etc/pam.d/vsftpd #%PAM-1.0 auth required pam_listfile.so item=user sense=deny file= /etc/vsftpd/ftpusers onerr=succeed auth required pam_shells.so auth include system-auth account include system-auth session include system-auth session required pam_loginuid.so #如果把上面的sense=deny改为allow后,也就是说只有/etc/vsftpd/ftpusers中的用户才能够访问ftp服务器了。这里提供了一个配置思路, 以供在实际环境中使用。 20.3.12 特定用户不能登录方法二 #编辑下列文件 vi /etc/vsftpd/chroot_list #修改或加入内容user_list文件本身就有,如没有,请手动添加。 # userlist_enable=YES userlist_file=/etc/vsftpd/ user_list #重启服务 service vsftpd restart 20.4 ftp虚拟用户配置 虚拟帐户与samba中的虚拟帐户有点像,就是为了防止别人用真正的帐户登录系统,而采用的一个帐户的别名帐户,而虚拟帐户只能够登录 ftp,而不能用做其它目的。 20.4.1 创建虚拟帐户文件 [root@redhat vsftpd]# vi vuser.txt bill /*用户名*/ password /*密码*/ koumm abc,.123 通过以上文件来创建用户数据库。 20.4.2 创建虚拟帐户数据库文件 [root@redhat vsftpd]# db_load -T -t hash -f vuser.txt /etc/vsftpd_login.db [root@redhat vsftpd]# chmod 600 /etc/vsftpd_login.db [root@redhat vsftpd]# ll /etc/vsftpd_login.db -rw------- 1 root root 12288 6月 15 17:06 /etc/vsftpd_login.db 修改权限以保证安全。 20.4.3 配置pam文件 为了能够使用ftp服务器能够使用数据库文件对用户进行身份验证,还需要修改vsftpd的PAM文件,把以前的pam中的内容注释掉,并加入以下 内容。 [root@redhat etc]# vi /etc/pam.d/vsftpd #auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd.ftpusers onerr=succeed #auth required pam_stack.so service=system-auth #auth required pam_shells.so #account required pam_stack.so service=system-auth #session required pam_stack.so service=system-auth auth required pam_userdb.so db=/etc/vsftpd_login account required pam_userdb.so db=/etc/vsftpd_login 20.4.4 创建虚拟帐户目录 mkdir /var/ftp/vuser useradd -d /var/ftp/vuser vuser useradd ftpvip 说明:创建一个帐户,指定主目录,也是ftp的主目录。不指定就是/home/vuser chown vuser.vuser /var/ftp/vuser chmod o+rw /var/ftp/vuser 20.4.5 编辑配置文件 1.编辑配置文件 [root@redhat pam.d]# vi /etc/vsftpd/vsftpd.conf anonymous_enable=NO /*不能允许匿名用户登录*/ local_enable=YES /*本地用户登录*/ write_enable=NO local_umask=022 anon_upload_enable=NO anon_mkdir_write_enable=NO #加入以下内容 guest_enable=YES /*开启虚拟帐户访问*/ guest_username=vuser /*虚拟帐户对应的系统帐户*/ 说明:虚拟用户的上传下载权限的配置是用匿名配置选项来进行配置的,前提是不能允许匿名用户登录,可以匿名用户可写,虚拟用户就可 以写或上传了。 2.编辑独立配置文件 (1)虚拟帐户配置文件目录 vsftpd可以为不同的虚拟用户创建不同的单独的配置文件,来实现不同的功能,思想就是:可以为不同的虚拟用户对应不同的实体用户,从 而实现不能的功能。 [root@redhat pam.d]# vi /etc/vsftpd/vsftpd.conf 加入以下内容: vi /etc/vsftpd/vsftpd.conf user_config_dir=/ftpconfig /*虚拟用户主配置文件目录*/ (2)单独创建虚拟帐户配置文件 vi /ftpconfig/bill /*创建的虚拟用户*/ guest_enable=yes guest_username=vuser /*设置ftp对应的系统帐号为ftpuser*/ anon_world_readable_only=no /*允许匿名用户浏览文件系统*/ anon_max_rate=50000 /*限定传输速率为50KB/s*/ vi /ftpconfig/koumm /*创建的虚拟用户*/ guest_enable=yes /*开启虚拟帐号登录*/ guest_username=ftpvip /*设置ftp对应的系统帐号为ftpvip*/ anon_world_readable_only=no /*允许匿名用户浏览器整个服务器的文件系统*/ write_enable=yes /*允许在文件系统写入权限*/ anon_mkdir_write_enable=yes /*允许创建文件夹 */ anon_upload_enable=yes /*开启匿名帐号的上传功能*/ anon_max_rate=100000 /*限定传输速度为100KB/s*/ 说明:以上实体用户还需要事先创建,用户的主目录如是事先安装的话在/home中。以上方法可以应用一些复杂的应用环境中。 20.5 ftp客户端 20.5.1 ftp命令 ftp命令的功能是在本地机和远程机之间传送文件。 该命令的一般格式如下: ftp 主机名/IP 最常用的命令有: ls 列出远程机的当前目录 cd 在远程机上改变工作目录 lcd 在本地机上改变工作目录 ascii 设置文件传输方式为ASCII模式 binary 设置文件传输方式为二进制模式 close 终止当前的ftp会话 hash 每次传输完数据缓冲区中的数据后就显示一个#号 get(mget) 从远程机传送指定文件到本地机 put(mput) 从本地机传送指定文件到远程机 open 连接远程ftp站点 quit 断开与远程机的连接并退出ftp ? 显示本地帮助信息
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值