创建新用户并设初始密码需用
加useradd命令,如passwdsudouseradd-m-s /bin/bash创建用户,devusersudopasswd设置密码;通过devusersudousermod-aGsudo赋予devuser权限;密码策略应包含长度、复杂度、定期更换及首次登录强制修改;UID和GID是系统识别用户和组的唯一标识,用于文件权限管理和跨系统一致性。sudo

在Linux系统里,创建一个新用户并给他设置一个初始密码,这事儿说起来简单,其实就是两个核心命令:
useradd
负责创建用户,
passwd
用来设置密码。这两个组合起来,就能让新用户顺利登录了。
解决方案
要创建一个新用户并设置其初始密码,我们通常需要使用管理员权限(
sudo
或
root
)。最直接的流程是:
-
创建用户:使用
useradd命令。为了让新用户有一个家目录和默认的shell,我通常会加上
-m和
-s /bin/bash选项。
sudouseradd-m新用户名-s /bin/bash比如,我想创建一个叫
devuser的用户:
sudouseradd-m-s /bin/bashdevuser这里
-m会自动创建
/home/
devuser这个家目录,
-s /bin/bash则指定了登录后默认使用的shell是Bash。不加这些,用户也能创建,但体验会差一些,可能需要手动配置家目录和shell。
-
设置初始密码:创建完用户后,立即使用
passwd命令为该用户设置密码。
sudo新用户名passwd接着系统会提示你输入两次密码。
sudopasswddevuserNew password: Retype new password:
: password updated successfullypasswd这样,
devuser这个新用户就创建好了,并且拥有了一个可以登录的密码。

新用户创建后如何赋予sudo权限?
sudo创建一个普通用户通常是第一步,但很多时候,我们希望这个新用户也能执行一些管理员任务,而不是每次都切换到
root
。这就涉及到给用户赋予
sudo
权限了。这事儿我个人觉得挺重要的,毕竟日常操作里,
sudo
用得比直接
su -
到
root
要频繁且安全得多。
在大多数基于Debian的系统(如Ubuntu)上,
sudo
权限是通过将用户加入到
sudo
用户组来实现的。而在一些基于Red Hat的系统(如CentOS、Fedora)上,这个组可能叫做
wheel
。
赋予
sudo
权限的命令是
usermod
:
sudousermod-aG新用户名sudo
这里的
-a
表示“追加”(append),
-G
表示指定组。所以
-aGsudo
就是把用户追加到
sudo
组里。
举个例子,给刚才的
devuser
赋予
sudo
权限:
sudousermod-aGsudodevuser
执行完这条命令后,
devuser
需要注销当前会话并重新登录,或者直接启动一个新的终端会话,才能使
sudo
权限生效。之后,
devuser
就可以通过在命令前加上
sudo
来执行需要管理员权限的操作了。
当然,还有更底层、更精细的
sudo
配置方法,就是直接编辑
/etc/sudoers
文件,但这通常通过
visudo
命令来完成,以防止语法错误导致系统无法使用
sudo
。我一般不建议新手直接手动编辑这个文件,因为一旦出错,修复起来会比较麻烦。
usermod
命令简单直接,适合绝大多数场景。

用户密码策略有哪些最佳实践?
密码安全,这真的是老生常谈,但又不得不提。我见过太多因为密码太弱导致的安全问题了,简直是防不胜防。所以,为用户设置密码时,除了能用之外,更重要的是要“安全”。
以下是我在实践中总结的一些密码策略最佳实践:
- 强度优先:强制要求用户设置足够复杂的密码。这包括:
- 长度:至少12个字符,最好是16个或更多。越长越难猜。
- 字符类型:包含大小写字母、数字和特殊符号(如
!@#$%^&*)。
- 避免常用词和个人信息:生日、名字、电话号码、字典词汇,这些都是黑客最爱尝试的。
- 定期更换:虽然有些观点认为定期更换密码反而会让用户选择更弱的密码,但对于关键系统,我还是倾向于设置一个合理的密码过期策略,比如每90天强制更换一次。这可以通过
chage命令来管理。
sudochage-M 90devuser这条命令会设置
devuser的密码在90天后过期。
- 唯一性:教育用户不要在多个系统或服务中使用相同的密码。一个地方泄露,可能导致“一锅端”。
- 禁用弱密码:在系统层面,可以通过PAM模块(如
pam_cracklib或
pam_pwquality)来强制执行密码复杂度规则,防止用户设置过于简单的密码。这通常需要在
/etc/pam.d/common-password或类似文件中进行配置。比如,可以设置密码最小长度、所需不同字符类型的数量等。
- 初始密码策略:新用户创建后,可以设置一个临时密码,并强制用户在首次登录时修改。这可以通过
-e 新用户名passwd来实现,它会立即标记用户的密码为过期状态。
sudo-epasswddevuser这样,
devuser在第一次登录时,系统会强制他修改密码。这能有效避免初始密码被长期使用。
这些策略虽然可能给用户带来一点点“不便”,但从系统安全的角度看,这些“不便”是完全值得的。毕竟,安全从来都不是免费的午餐。

Linux中的用户ID(UID)和组ID(GID)有什么作用?
在Linux系统里,用户和组不仅仅是名字那么简单,它们背后都有一个独特的数字标识符,也就是用户ID(UID)和组ID(GID)。这俩玩意儿,说白了,就是系统用来识别谁是谁、谁能干什么的“身份证号”。
我个人觉得理解UID和GID是理解Linux权限管理的关键,否则很多时候你看到文件权限是
rwx
,但具体到哪个用户或组,就容易混淆。
-
用户ID(UID):
- 每个用户在Linux系统中都有一个唯一的UID。这个ID是系统内部识别用户的真正依据,而不是用户名。用户名只是给人看的。
- UID通常从0开始。
root用户的UID永远是0,这是特权用户的象征。
- 系统用户(如
daemon,
bin,
nobody等)通常有较低的UID(1-999,具体范围取决于发行版),它们是系统服务运行所必需的,一般不能用于登录。
- 普通用户通常从1000或500开始(取决于发行版)。当我们用
useradd创建一个新用户时,系统会自动分配一个当前可用的、未被占用的UID。
- UID主要用于文件和目录的权限管理。当你创建一个文件时,它的所有者就是你的UID。
-
组ID(GID):
- 类似UID,每个组也有一个唯一的GID。
- 当一个用户被创建时,通常会同时创建一个与用户名同名的新组,并将该用户作为该组的唯一成员,这个组就是用户的“主组”(primary group)。这个组的GID就是用户的“主GID”。
- 用户也可以是其他组的成员,这些组称为“附加组”(supplementary groups)。
- GID同样在文件和目录权限管理中扮演重要角色。文件或目录除了有所有者(UID)外,还有所属组(GID)。
它们的作用体现在哪里?
最核心的作用就是权限管理。 当你查看一个文件的权限时,比如
ls -l
:
-rw-r--r-- 1devuser0 Nov 2 10:00 test.txtdevuser
这里的第一个
devuser
就是文件所有者(对应UID),第二个
devuser
就是文件所属组(对应GID)。系统根据这些ID来判断哪个用户或哪个组有权限读、写、执行这个文件。
另一个作用是跨系统一致性。如果你在不同的Linux系统间复制文件或同步用户,只要UID和GID保持一致,文件的所有权和权限通常也能保持正确,即使用户名在不同系统上可能不完全相同。当然,这在实际操作中需要注意,否则可能会导致权限混乱。
这些ID信息都存储在
/etc/passwd
和
/etc/group
这两个核心文件中。
/etc/passwd
记录了用户的UID、主GID、家目录和shell等信息;
/etc/group
则记录了各个组的GID以及哪些用户是该组的成员。了解这些,能让你在排查权限问题时更有方向感。
linux word centos app ubuntu linux系统 red bash 标识符 append linux ubuntu centos debian


