李守中
该站已迁往根域名 https://lishouzhong.com
需要注意,迁移后的文章的 url 可能会发生变化。
域名 https://note.lishouzhong.com 下的内容将不再更新,但已有内容会永久保留。

Linux 用户管理

Table of Contents

1. 添加用户

adduseruseradd 对于 Debian 系系统的主要区别在使用方式上:

  • useradd 是一个指令。
    • 如果不使用任何选项,创建的用户将无密码、无主目录、没有指定 shell。
    • 想正常使用这个账户,还需要设置密码、创建家目录等额外操作。
  • adduser 是一个 perl 脚本。通过交互式菜单设定一些用户参数。
    • 输入 adduser <username> 后,会自动创建用户主目录 ( 并复制 /etc/skel 目录下的文件 )、指定系统 shell,提示输入用户密码,操作很简单。

对于 CentOS 来说是没有区别的,adduser 通过符号链接指向 useradd,即 CentOS 只有 useradd。

1.1. 使用 adduser 添加用户

添加用户名为 lsz 的用户 sudo adduser lsz 然后会提示输入密码,之后一路回车即可,非常简单。

Adding user `lsz' ...
Adding new group `lsz' (1002) ...
Adding new user `lsz' (1001) with group `lsz' ...
Creating home directory `/home/lsz' ...
Copying files from `/etc/skel' ...
New password:
Retype new password:
passwd: password updated successfully
Changing the user information for lsz
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]

1.2. 使用 useradd 添加用户

useradd 如果不使用任何选项,创建的用户将无密码、无主目录、没有指定 shell。

为了和 adduser 一样添加一个标准的普通用户,需要指定选项,或者手动进行额外操作。

所以对于 useradd 添加标准的普通用户有 使用选项不使用选项 两种方式。

使用选项:

添加用户名为 lsz 的用户,输入命令添加用户、添加用户目录、bashell 为指定 shell:

sudo useradd -m -s /bin/bash lsz

  • -m 自动创建用户的家目录,并将 /etc/skel 中的文件复制到家目录中。
  • -s 指定用户登入后所使用的 shell。

然后 sudo passwd lsz 对该用户设置密码,输入命令后会提示输入两次密码。

不使用选项:

在不使用选项的情况下,添加一个标准普的通用户,需要全程手动操作,总共有 6 个步骤,很麻烦。

添加用户名为 lsz 的用户:

  1. 输入命令添加用户 sudo useradd lsz
  2. 设置密码 sudo passwd lsz
  3. 创建家目录 sudo mkdir /home/lsz
  4. /etc/skel 目录下的文件复制到该用户目录 sudo cp -r /etc/skel/. /home/lsz
  5. 更改家目录归属 sudo chown -R lsz:lsz /home/lsz
  6. 指定 Shell: sudo /bin/bashusermod -s /bin/bash lsz

2. 删除用户

删除 lsz 这个用户:

  1. 首先终结该用户所有进程 sudo pkill -u lsz
  2. 然后输入删除命令 sudo userdel -r lsz

-r 表示删除用户的同时,将其宿主目录和系统内与其相关的内容删除。

3. 用户组

3.1. 赋予用户 sudo 权限的正确方式

如果系统中没有 sudo,需要先安装 apt install sudo -y ,然后 usermod -aG sudo <username> 添加用户到 sudo 用户组。

修改 sudo 配置文件。尽管可以直接改动 /etc/sudoers,但添加配置文件到 /etc/sudoers.d 目录更合适。/etc/sudoers.d 目录中的文件是 /etc/sudoers 文件的补充。

如果要取消用户的 sudo 权限,直接删除 /etc/sudoers.d 中的文件即可,不用修改 /etc/sudoers 文件,不影响系统默认配置。

sudo 权限配置的基本格式是:

# Who     Where       As whom       Tag                 What
User_List Host_List = [(User_List)] [NOPASSWD:|PASSWD:] Cmnd_List

tee /etc/sudoers.d/lsz <<< 'lsz ALL=(ALL) ALL' 可以赋予用户 sudo 权限。

如果不想输入每次 sudo 都输入密码,可以设置免密:

tee /etc/sudoers.d/lsz <<< 'lsz ALL=(ALL) NOPASSWD: ALL'

服务器最好不设免密码,不安全。

最后执行 chmod 440 /etc/sudoers.d/lsz 赋予文件正确的权限。



Last Update: 2023-05-18 Thu 08:32

Generated by: Emacs 28.2 (Org mode 9.5.5)   Contact: lsz.sino@outlook.com

若正文中无特殊说明,本站内容遵循: 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议