创建新用户并设初始密码需用useradd加passwd命令,如sudo useradd -m -s /bin/bash devuser创建用户,sudo passwd devuser设置密码;通过sudo usermod -aG sudo devuser赋予sudo权限;密码策略应包含长度、复杂度、定期更换及首次登录强制修改;UID和GID是系统识别用户和组的唯一标识,用于文件权限管理和跨系统一致性。
在Linux系统里,创建一个新用户并给他设置一个初始密码,这事儿说起来简单,其实就是两个核心命令:
useradd
负责创建用户,
passwd
用来设置密码。这两个组合起来,就能让新用户顺利登录了。
解决方案
要创建一个新用户并设置其初始密码,我们通常需要使用管理员权限(
sudo
或
root
)。最直接的流程是:
-
创建用户:使用
useradd
命令。为了让新用户有一个家目录和默认的shell,我通常会加上
-m
和
-s /bin/bash
选项。
sudo useradd -m -s /bin/bash 新用户名
比如,我想创建一个叫
devuser
的用户:
sudo useradd -m -s /bin/bash devuser
这里
-m
会自动创建
/home/devuser
这个家目录,
-s /bin/bash
则指定了登录后默认使用的shell是Bash。不加这些,用户也能创建,但体验会差一些,可能需要手动配置家目录和shell。
-
设置初始密码:创建完用户后,立即使用
passwd
命令为该用户设置密码。
sudo passwd 新用户名
接着系统会提示你输入两次密码。
sudo passwd devuser
New password: Retype new password: passwd: password updated successfully
这样,
devuser
这个新用户就创建好了,并且拥有了一个可以登录的密码。
新用户创建后如何赋予sudo权限?
创建一个普通用户通常是第一步,但很多时候,我们希望这个新用户也能执行一些管理员任务,而不是每次都切换到
root
。这就涉及到给用户赋予
sudo
权限了。这事儿我个人觉得挺重要的,毕竟日常操作里,
sudo
用得比直接
su -
到
root
要频繁且安全得多。
在大多数基于Debian的系统(如Ubuntu)上,
sudo
权限是通过将用户加入到
sudo
用户组来实现的。而在一些基于Red Hat的系统(如CentOS、Fedora)上,这个组可能叫做
wheel
。
赋予
sudo
权限的命令是
usermod
:
sudo usermod -aG sudo 新用户名
这里的
-a
表示“追加”(append),
-G
表示指定组。所以
-aG sudo
就是把用户追加到
sudo
组里。
举个例子,给刚才的
devuser
赋予
sudo
权限:
sudo usermod -aG sudo devuser
执行完这条命令后,
devuser
需要注销当前会话并重新登录,或者直接启动一个新的终端会话,才能使
sudo
权限生效。之后,
devuser
就可以通过在命令前加上
sudo
来执行需要管理员权限的操作了。
当然,还有更底层、更精细的
sudo
配置方法,就是直接编辑
/etc/sudoers
文件,但这通常通过
visudo
命令来完成,以防止语法错误导致系统无法使用
sudo
。我一般不建议新手直接手动编辑这个文件,因为一旦出错,修复起来会比较麻烦。
usermod
命令简单直接,适合绝大多数场景。
用户密码策略有哪些最佳实践?
密码安全,这真的是老生常谈,但又不得不提。我见过太多因为密码太弱导致的安全问题了,简直是防不胜防。所以,为用户设置密码时,除了能用之外,更重要的是要“安全”。
以下是我在实践中总结的一些密码策略最佳实践:
- 强度优先:强制要求用户设置足够复杂的密码。这包括:
- 长度:至少12个字符,最好是16个或更多。越长越难猜。
- 字符类型:包含大小写字母、数字和特殊符号(如
!@#$%^&*
)。
- 避免常用词和个人信息:生日、名字、电话号码、字典词汇,这些都是黑客最爱尝试的。
- 定期更换:虽然有些观点认为定期更换密码反而会让用户选择更弱的密码,但对于关键系统,我还是倾向于设置一个合理的密码过期策略,比如每90天强制更换一次。这可以通过
chage
命令来管理。
sudo chage -M 90 devuser
这条命令会设置
devuser
的密码在90天后过期。
- 唯一性:教育用户不要在多个系统或服务中使用相同的密码。一个地方泄露,可能导致“一锅端”。
- 禁用弱密码:在系统层面,可以通过PAM模块(如
pam_cracklib
或
pam_pwquality
)来强制执行密码复杂度规则,防止用户设置过于简单的密码。这通常需要在
/etc/pam.d/common-password
或类似文件中进行配置。比如,可以设置密码最小长度、所需不同字符类型的数量等。
- 初始密码策略:新用户创建后,可以设置一个临时密码,并强制用户在首次登录时修改。这可以通过
passwd -e 新用户名
来实现,它会立即标记用户的密码为过期状态。
sudo passwd -e devuser
这样,
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-- 1 devuser devuser 0 Nov 2 10:00 test.txt
这里的第一个
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