FreeBSD 中文社区 2025 第二季度问卷调查
FreeBSD 中文社区(CFC)
VitePress 镜像站QQ 群 787969044视频教程Ⅰ视频教程Ⅱ
  • FreeBSD 从入门到追忆
  • 中文期刊
  • 状态报告
  • 发行说明
  • 手册
  • 网络文章集锦
  • 笔记本支持报告
  • Port 开发者手册
  • 架构手册
  • 开发者手册
  • 中文 man 手册
  • 文章与书籍
  • UNIX 四分之一世纪
  • Unix 痛恨者手册
  • man
  • man1
    • Mail.1
    • addr2line.1
    • alias.1
    • alloc.1
    • apply.1
    • apropos.1
    • ar.1
    • at.1
    • atq.1
    • atrm.1
    • awk.1
    • basename.1
    • batch.1
    • bc.1
    • bg.1
    • bind.1
    • bindkey.1
    • break.1
    • breaksw.1
    • bsdcat.1
    • bsdtar.1
    • btsockstat.1
    • builtin.1
    • builtins.1
    • c++.1
    • case.1
    • cat.1
    • cc.1
    • chdir.1
    • chfn.1
    • chgrp.1
    • chkey.1
    • chmod.1
    • cksum.1
    • clang++.1
    • clang-cpp.1
    • cmp.1
    • colrm.1
    • column.1
    • comm.1
    • command.1
    • complete.1
    • continue.1
    • cp.1
    • cpp.1
    • crypt.1
    • csh.1
    • ctfdump.1
    • cut.1
    • date.1
    • dd.1
    • default.1
    • df.1
    • dialog.1
    • diff.1
    • diff3.1
    • dirname.1
    • dirs.1
    • do.1
    • done.1
    • dtrace.1
    • du.1
    • echo.1
    • echotc.1
    • edit.1
    • ee.1
    • egrep.1
    • elfdump.1
    • elif.1
    • else.1
    • end.1
    • endif.1
    • endsw.1
    • enigma.1
    • env.1
    • esac.1
    • eval.1
    • exec.1
    • exit.1
    • export.1
    • fc.1
    • fg.1
    • fgrep.1
    • fi.1
    • filetest.1
    • find.1
    • for.1
    • foreach.1
    • fsync.1
    • ftp.1
    • fuser.1
    • gate-ftp.1
    • getopts.1
    • glob.1
    • goto.1
    • grep.1
    • groups.1
    • gunzip.1
    • gzcat.1
    • gzip.1
    • hash.1
    • hashstat.1
    • head.1
    • history.1
    • host.1
    • hostname.1
    • hup.1
    • ibv_asyncwatch.1
    • ibv_devices.1
    • ibv_devinfo.1
    • ibv_ud_pingpong.1
    • id.1
    • ident.1
    • if.1
    • intro.1
    • introduction.1
    • jobid.1
    • jobs.1
    • kdump.1
    • kenv.1
    • keylogin.1
    • keylogout.1
    • kill.1
    • killall.1
    • ktrace.1
    • last.1
    • lastcomm.1
    • ld.1
    • ld.lld.1
    • ldd.1
    • ldd32.1
    • less.1
    • lessecho.1
    • limit.1
    • limits.1
    • link.1
    • llvm-addr2line.1
    • llvm-ranlib.1
    • ln.1
    • locate.1
    • lockstat.1
    • log.1
    • logger.1
    • login.1
    • logname.1
    • logout.1
    • look.1
    • lorder.1
    • ls-F.1
    • ls.1
    • lsvfs.1
    • lzcat.1
    • lzma.1
    • lzmadec.1
    • lzmainfo.1
    • mailx.1
    • make.1
    • man.1
    • mandoc.1
    • manpath.1
    • md5.1
    • mdocml.1
    • mkdir.1
    • mkfilters.1
    • more.1
    • mv.1
    • nawk.1
    • nc.1
    • netstat.1
    • newaliases.1
    • nice.1
    • notify.1
    • onintr.1
    • pagesize.1
    • passwd.1
    • paste.1
    • pax.1
    • perror.1
    • pftp.1
    • popd.1
    • printenv.1
    • ps.1
    • pushd.1
    • pwd.1
    • qemu.1
    • ranlib.1
    • read.1
    • readelf.1
    • readlink.1
    • readonly.1
    • realpath.1
    • ree.1
    • rehash.1
    • repeat.1
    • rev.1
    • revoke.1
    • rgrep.1
    • rm.1
    • rmd16.1
    • rmdir.1
    • rping.1
    • ruptime.1
    • rwho.1
    • sched.1
    • scp.1
    • sdiff.1
    • sed.1
    • seq.1
    • set.1
    • setenv.1
    • settc.1
    • setty.1
    • setvar.1
    • sftp.1
    • sh.1
    • sha1.1
    • sha224.1
    • sha256.1
    • sha384.1
    • sha512.1
    • sha512t256.1
    • shift.1
    • skein1024.1
    • skein256.1
    • skein512.1
    • slogin.1
    • sockstat.1
    • sort.1
    • source.1
    • split.1
    • ssh-copy-id.1
    • ssh-keygen.1
    • ssh.1
    • stat.1
    • stop.1
    • su.1
    • suspend.1
    • svnlite.1
    • switch.1
    • systat.1
    • tail.1
    • tar.1
    • tcpdump.1
    • tcsh.1
    • telltc.1
    • telnet.1
    • then.1
    • time.1
    • timeout.1
    • times.1
    • top.1
    • touch.1
    • trap.1
    • truncate.1
    • truss.1
    • type.1
    • ulimit.1
    • umask.1
    • unalias.1
    • uname.1
    • uncomplete.1
    • unhash.1
    • uniq.1
    • unlimit.1
    • unlink.1
    • unlzma.1
    • unset.1
    • unsetenv.1
    • until.1
    • unxz.1
    • uptime.1
    • users.1
    • uuidgen.1
    • view.1
    • w.1
    • wait.1
    • wall.1
    • wc.1
    • whatis.1
    • where.1
    • whereis.1
    • which.1
    • while.1
    • who.1
    • whoami.1
    • xargs.1
    • xz.1
    • xzcat.1
    • xzdec.1
    • xzdiff.1
    • yes.1
    • yppasswd.1
    • zcat.1
    • zcmp.1
    • zdiff.1
    • zforce.1
    • zless.1
    • zmore.1
    • znew.1
  • man4
    • ow.4
    • ow_temp.4
    • owc.4
  • man5
    • device.hints.5
  • man7
    • hire
  • man8
    • adduser.8
    • authpf-noip.8
    • authpf.8
    • autounmountd.8
    • beastie.4th.8
    • bhyve.8
    • bhyvectl.8
    • bhyveload.8
    • blacklistctl.8
    • boot.8
    • boot0cfg.8
    • boot_i386.8
    • bsdconfig.8
    • camcontrol.8
    • check-password.4th.8
    • chown.8
    • chroot.8
    • config.8
    • crash.8
    • crashinfo.8
    • devctl.8
    • devinfo.8
    • devmatch.8
    • diskinfo.8
    • dmesg.8
    • fastboot.8
    • fasthalt.8
    • freebsd-update.8
    • fstyp.8
    • ftp-proxy.8
    • ftpd.8
    • gpart.8
    • gpioctl.8
    • gptboot.8
    • gptzfsboot.8
    • growfs.8
    • halt.8
    • i2c.8
    • ifconfig.8
    • inetd.8
    • init.8
    • intro.8
    • iostat.8
    • ipfw.8
    • jail.8
    • jexec.8
    • jls.8
    • kldconfig.8
    • kldload.8
    • kldstat.8
    • kldunload.8
    • kldxref.8
    • lastlogin.8
    • loader.4th.8
    • loader.8
    • loader.efi.8
    • mail.local.8
    • mailstats.8
    • menu.4th.8
    • mount.8
    • mount_cd9660.8
    • mount_msdosfs.8
    • moused.8
    • mtree.8
    • natd.8
    • nmtree.8
    • ntptime.8
    • password.lua.8
    • periodic.8
    • ping.8
    • pkg.8
    • pmccontrol.8
    • pmcstat.8
    • powerd.8
    • poweroff.8
    • pw.8
    • pwm.8
    • quot.8
    • rarpd.8
    • rc.8
    • rc.d.8
    • rc.firewall.8
    • rc.local.8
    • rc.network.8
    • rc.pccard.8
    • rc.resume.8
    • rc.serial.8
    • rc.shutdown.8
    • rc.subr.8
    • rcorder.8
    • reboot.8
    • renice.8
    • rescue.8
    • rmuser.8
    • route.8
    • route6d.8
    • routed.8
    • rpc.rusersd.8
    • service.8
    • shutdown.8
    • spi.8
    • ssh-keysign.8
    • sysctl.8
    • sysrc.8
    • tcpdrop.8
    • tftpd.8
    • tzsetup.8
    • umount.8
    • vmstat.8
    • watchdog.8
    • watchdogd.8
    • zfs.8
由 GitBook 提供支持
LogoLogo

FreeBSD 中文社区(CFC) 2025

在本页
  • 名称
  • 概要
  • 描述
  • 限制
  • UNIQUE GROUPS
  • 配置
  • 选项
  • 格式
  • 文件
  • 参见
  • 历史
  • 作者
  • 缺陷
在GitHub上编辑
导出为 PDF
  1. man8

adduser.8

上一页hire下一页authpf-noip.8

最后更新于1年前

ADDUSER(8)

ADDUSER(8)

FreeBSD System Manager's Manual

ADDUSER(8)

adduser —

添加新用户的命令

adduser [-CDENShq] [-G groups] [-L login_class] [-M mode] [-d partition] [-f file] [-g login_group] [-k dotdir] [-m message_file] [-s shell] [-u uid_start] [-w type]

adduser 实用程序是一个 shell 脚本,围绕 pw(8) 命令实现,用于添加新用户。 它创建密码/组条目、主目录、复制点文件并向新用户发送欢迎消息。 它支持两种操作模式。 它可以在命令行交互使用,一次添加一个用户,也可以直接从文件中获取新用户列表并以批处理模式操作,而无需任何用户交互。

username

登录名。 用户名仅限于 pw(8) 将接受的任何内容。 通常这意味着它可能只包含小写字符或数字,但不能以 ‘-’ 字符开头。 最大长度为 16 个字符。 这个限制的原因是历史性的。 鉴于人们传统上出于审美原因想要打破这个限制,在 UNIX 中打破这样一个基本的基本参数从来都不是很重要。 您可以更改 <utmp.h> 中的 UT_NAMESIZE 并重新编译世界;人们已经做到了这一点并且它有效,但是任何预编译程序或假定名称限制为 8 个字符的源(例如 NIS)都会出现问题。 NIS 协议要求使用 8 个字符的用户名。 如果您需要更长的电子邮件地址登录名,您可以在 /etc/mail/aliases 中定义一个别名。

full name

这通常称为 gecos 字段,通常包含用户的全名。 此外,它可能包含一个逗号分隔的值列表,例如办公室号码和工作电话和家庭电话。 如果名称包含 & 符号,则在其他程序显示时将替换为大写的登录名。 ‘:’ 字符是不允许的。

shell

除非提供了 -S 参数,否则只允许来自 shell 数据库 (/etc/shells) 的有效 shell。 此外,可以提供 shell 的基本名称或完整路径。

UID

自动生成或您的选择。 它必须小于 32000。

GID/login group

自动生成或您的选择。 它必须小于 32000。

password

您可以选择空密码、禁用密码、使用随机生成的密码或指定您自己的明文密码,这些密码在存储到用户数据库之前将被加密。

也许你错过了这个与大多数其他方案不同的方案 can 做的事情。 对于他们自己组中的每个用户,他们可以安全地使用 002 而不是通常的 022 的 umask 运行,并在他们的主目录中创建文件,而不必担心其他人能够更改它们。

对于共享区域,您创建一个单独的 UID/GID,将应该能够访问该区域的每个人放置到该新组中。

这种 UID/GID 管理模型比将用户分组并在共享区域工作时不得不使用 umask 提供更大的灵活性。

我已经使用这个模型将近 10 年了,发现它适用于大多数情况,并且从未妨碍我。(罗德·格兰姆斯)

adduser 实用程序从 /etc/adduser.conf 读取其配置信息。 如果此文件不存在,它将使用预定义的默认值。 虽然可以手动编辑此文件,但更安全的选择是使用 -C 命令行参数。 使用此参数, adduser 将启动交互式输入,将其提示的答案保存在 /etc/adduser.conf 中,并在不修改用户数据库的情况下立即退出。 在命令行上指定的选项将优先于保存在此文件中的任何值。

创建新的配置文件并退出。 此选项与 -f 选项互斥。

家庭分区。 默认分区,所有用户目录都将位于该分区下。 /nonexistent 分区被认为是特殊的。 adduser 脚本不会使用该名称创建和填充主目录。 否则,默认情况下它会尝试创建主目录。

不要尝试创建主目录。

禁用该帐户。 此选项将通过在密码字段前添加字符串 “*LOCKED*” 来锁定帐户。 超级用户可以使用 pw(8) 命令解锁该帐户:

pw unlock [name | uid]

获取要从 file 创建的帐户列表。 如果 file 为 “-”, 则从标准输入中获取列表。 如果指定了此选项, adduser 将以批处理模式运行,并且不会搜索任何用户输入。 如果在处理帐户时遇到错误,它将向标准错误写入消息并移至下一个帐户。 输入文件的格式如下所述。

通常,如果没有指定登录组,则假定它与用户名相同。 此选项使 login_group 成为默认值。

其他组的空格分隔列表。 此选项允许用户指定要添加用户的其他组。 除了登录组之外,用户还是这些组的成员。

打印选项摘要并退出。

将文件从 directory 复制到新用户的主目录; dot.foo 将重命名为 .foo 。

设置默认登录类。

从 file 中向新用户发送欢迎消息。 为 no 指定值 file 会导致不会向新用户发送消息。 请注意,消息文件可以引用 adduser 脚本的内部变量。

创建权限设置为 mode 的主目录。

不要读取默认配置文件。

最少的用户反馈。 特别是,随机密码不会回显到标准输出。

新用户的默认 shell 。 shell 参数可以是 shell 的基本名称或完整路径。 除非提供了 -S 参数,否则 shell 必须存在于 /etc/shells 中或者是特殊的 shell nologin 才能被视为有效的 shell。

将不检查指定 shell 的存在或有效性。

从 uid 开始使用 UID。

密码类型。 adduser 实用程序允许用户指定要创建的密码类型。 type 参数可能具有以下值之一:

禁用密码。 密码字段将包含单个 ‘*’ 字符,而不是加密字符串。 在超级用户手动启用密码之前,用户可能无法登录。

使用空字符串作为密码。

使用用户提供的字符串作为密码。 在交互模式下,将提示用户输入密码。 在批处理模式下,假定行中的最后(第 10 个)字段是密码。

生成一个随机字符串并将其用作密码。 密码将回显到标准输出。 此外,它还可以包含在 randompass 变量的消息文件中。

使用 -f 选项时,帐户信息必须以特定格式存储。 所有空行或以 ‘#’ 开头的行都将被忽略。 所有其他行必须包含十个冒号 (‘:’) 分隔的字段,如下所述。 命令行选项不优先于字段中的值。 只有密码字段可以包含一个 ‘:’ 字符作为字符串的一部分。

name:uid:gid:class:change:expire:gecos:home_dir:shell:password

name

登录名。此字段不能为空。

uid

数字登录用户 ID。 如果该字段留空,它将自动生成。

gid

数字主要组 ID。 如果此字段留空,将创建一个与用户名同名的组,并使用其 GID 代替。

class

登录类。此字段可留空。

change

密码老化。 此字段表示帐户的密码更改日期。 该字段的格式与 pw(8) 的 -p 参数的格式相同。 它可能是 dd-mmm-yy[yy], ,其中 dd 表示日期, mmm 表示月份,数字或字母格式: “10” 或 “Oct”, yy[yy] 是四位或两位数的年份. 要表示相对于当前日期的时间,格式为: +n[mhdwoy], 其中 n 表示一个数字,后跟必须更改密码的分钟、小时、天、周、月或年。 此字段可以留空以将其关闭。

expire

帐户到期。 此字段表示帐户的到期日期。 在指定日期之后,该帐户可能无法使用。 该字段的格式与密码老化的格式相同。 此字段可以留空以将其关闭。

gecos

关于用户的全名和其他额外信息。

home_dir

主目录。 如果该字段留空,它将通过将用户名附加到主分区来自动创建。 /nonexistent 主目录被认为是特殊的,并且被理解为意味着不会为用户创建主目录。

shell

登录外壳。 此字段应包含有效登录 shell 的基本名称或完整路径。

password

用户密码。 该字段应包含一个明文字符串,在放入用户数据库之前将对其进行加密。 如果密码类型为 yes 且此字段为空,则假定该帐户的密码为空。 如果密码类型为 random 且该字段 not 为空,则其内容将作为密码。 如果 -w 选项与 no 或 none 参数一起使用,则该字段将被忽略。 请注意不要以结束的 ‘:’ 终止此字段,因为它将被视为密码的一部分。

/etc/master.passwd

用户数据库

/etc/group

组数据库

/etc/shells

shell 数据库

/etc/login.conf

登录类数据库

/etc/adduser.conf

adduser 的配置文件

/etc/adduser.message

adduser 的消息文件

/usr/share/skel

骨架登录目录

/var/log/adduser

adduser 的日志文件

chpass(1), passwd(1), adduser.conf(5), aliases(5), group(5), login.conf(5), passwd(5), shells(5), pw(8), pwd_mkdb(8), rmuser(8), vipw(8), yp(8)

adduser 命令出现在 FreeBSD 2.1 中。

为了使 adduser 在发送给新用户的消息中正确扩展 $username 和 $randompass 等变量,它必须让 shell 评估消息文件的每一行。 这意味着 shell 命令也可以嵌入到消息文件中。 adduser 实用程序试图通过拒绝评估该文件(如果该文件不是仅由 root 用户拥有和可写)来降低攻击者使用此功能的可能性。

此外,shell 特殊字符和运算符在消息文件中使用时必须进行转义。 此外,目前只能在批处理模式下或在 /etc/adduser.conf 中指定密码时效和帐户到期时间。 用户也应该能够将它们设置为交互模式。

September 15, 2012

FreeBSD 13.1-RELEASE

partition

file

login_group

groups

directory

login_class

file

mode

shell

uid

type

本手册页和 Perl 的原始脚本由 Wolfram Schneider <> 编写。 替换脚本编写为带有一些增强功能的 Bourne shell 脚本,以及随附的手册页修改由 Mike Makonnen <> 完成。

名称
概要
描述
限制
UNIQUE GROUPS
配置
选项
-C
-d
-D
-E
-f
-g
-G
-h
-k
-L
-m
-M
-N
-q
-s
-S
-u
-w
no
none
yes
random
格式
文件
参见
历史
作者
wosch@FreeBSD.org
mtm@identd.net
缺陷