- 在编程的艺术世界里,代码和灵感需要寻找到最佳的交融点,才能打造出令人为之惊叹的作品。
- 而在这座秋知叶i博客的殿堂里,我们将共同追寻这种完美结合,为未来的世界留下属于我们的独特印记。
【Ubuntu】--- 创建用户 删除用户 及其他用户操作大全 持续更新中
开发环境
- 开发环境:ubuntu20
一、创建系统用户
- 系统用户通常用于运行后台服务或执行系统任务,它们不需要登录shell,也不会创建家目录。然而,如果你需要为系统用户指定一个登录shell,可以使用以下命令:
sudo adduser --system --shell /bin/bash --group qiuzhiyei
--system
: 创建一个系统用户。--shell /bin/bash
: 为用户指定bash作为登录shell(尽管系统用户通常不需要登录)。--group
: 创建一个与用户同名的用户组,并将用户添加到该组中。
1、设置密码(可选)
- 尽管系统用户通常不需要密码,但如果你确实需要设置,可以使用:
sudo passwd qiuzhiyei
2、示范
root@ubuntu20:~$ sudo adduser --system --shell /bin/bash --group qiuzhiyei
Adding ubuntu20 user `qiuzhiyei' (UID 113) ...
Adding new group `qiuzhiyei' (GID 118) ...
Adding new user `qiuzhiyei' (UID 113) with group `qiuzhiyei' ...
root@ubuntu20:~$ sudo passwd qiuzhiyei
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
root@ubuntu20:~$
注意: 在实际使用中,通常不需要为系统用户设置密码。
二、创建常规用户
- 常规用户具有登录权限和家目录,适合进行日常开发和存储个人文件。
1、创建一个名为qiuzhiyei1
的用户
sudo adduser qiuzhiyei1
- 此命令会提示你设置密码并询问一些个人信息。创建的用户将没有root权限,适合开发人员使用。
2、示范
root@ubuntu20:~# sudo adduser qiuzhiyei1
Adding user `qiuzhiyei1' ...
Adding new group `qiuzhiyei1' (1001) ...
Adding new user `qiuzhiyei1' (1001) with group `qiuzhiyei1' ...
Creating home directory `/home/qiuzhiyei1' ...
Copying files from `/etc/skel' ...
New password:
Retype new password:
passwd: password updated successfully
Changing the user information for qiuzhiyei1
Enter the new value, or press ENTER for the default
Full Name []:
Room Number []:
Work Phone []:
Home Phone []:
Other []:
Is the information correct? [Y/n]
三、创建用户但不创建home目录
- 如果你不想为新用户创建家目录,可以使用
--no-create-home
选项:
sudo adduser --no-create-home changfanglan
这种用户可能适合某些特定场景,如Samba共享,但请注意,没有家目录的用户在登录桌面环境时可能会遇到问题。
四、修改账户密码
sudo passwd username
五、删除账户
1. 仅删除用户账户
- 若只需删除用户账户,不涉及其个人文件和设置,可使用以下命令:
sudo deluser 用户名
- 例如,删除名为
qiuzhiyei
的用户:
sudo deluser qiuzhiyei
- 系统将提示正在删除用户
qiuzhiyei
,并可能警告该用户组已无其他成员。
2. 删除用户及其主目录和邮箱
- 如需彻底删除用户,并同时移除其主目录和邮箱,应执行:
sudo deluser --remove-home 用户名
- 以
qiuzhiyei
为例:
sudo deluser --remove-home qiuzhiyei
- 系统将搜索并删除相关文件,然后删除用户账户。
3. 删除用户及其所有文件
- 若需更彻底地删除用户及其拥有的所有文件,可使用:
sudo deluser --remove-all-files 用户名
- 请注意,此操作将删除用户的所有文件,需谨慎使用。
4. 特殊情况处理
- 在删除用户时,可能会遇到无法删除用户主组的情况,如:
groupdel: cannot remove the primary group of user '用户名'
- 此时,可以尝试使用
userdel
命令配合-r
选项来删除用户及其主目录:
sudo userdel -r 用户名
- 例如,删除
qiuzhiyei
用户及其主目录:
sudo userdel -r qiuzhiyei
- 重要提示:执行删除操作前,请务必确认操作对象,以免误删重要数据或账户。
六、查看现有用户
方法一:cat /etc/passwd
cat /etc/passwd
区别与好处:
- 直接性:这个命令直接展示了
/etc/passwd
文件的内容,该文件明确记录了系统上的所有用户信息。 - 全面性:你可以看到每个用户的详细信息,包括用户名、用户ID、组ID、家目录和默认shell。
- 简单性:
cat
命令是Linux中最基础的命令之一,易于使用和理解。
方法二:getent passwd
getent passwd
区别与好处:
- 动态性:与直接查看
/etc/passwd
文件不同,getent
命令查询的是系统的用户数据库,这意味着它可以反映实时的用户信息,即使在/etc/passwd
文件未被直接更新的情况下。 - 兼容性:
getent
是一个更为通用的命令,可以用于查询不同类型的系统数据库,不仅仅是用户信息。 - 安全性:由于不直接操作文件,使用
getent
可能在一定程度上减少了误操作的风险。
七、给账户root权限
- 当用户尝试使用
sudo
命令却收到“qiuzhiyei is not in the sudoers file. This incident will be reported.
”这样的提示时,说明该用户没有被授予Root权限。为了解决这个问题,需要将用户添加到sudoers
文件中。
以下是授予用户Root权限的步骤:
-
编辑sudoers文件:
打开终端,输入以下命令以编辑sudoers
文件:sudo vim /etc/sudoers
-
找到用户权限规格部分:
在sudoers
文件中,找到类似于下面的行:# User privilege specification root ALL=(ALL:ALL) ALL
-
添加用户权限:
在root
权限行下方,添加想要授予Root权限的用户,格式如下:用户名 ALL=(ALL:ALL) ALL
以
qiuzhiyei
为例,添加:qiuzhiyei ALL=(ALL:ALL) ALL
-
保存并退出编辑器:
如果使用的是vim
编辑器,按Esc
键退出插入模式,然后输入:wq
并按Enter
键保存并退出。如果使用的是nano
编辑器,可以按Ctrl + O
保存,然后按Ctrl + X
退出。 -
测试sudo权限:
保存并退出编辑器后,就可以尝试使用sudo
命令来验证权限是否已成功授予。例如,输入sudo ls
并查看是否要求输入密码。如果要求输入密码并能够成功执行命令,则说明Root权限已正确授予。