Linux用户管理


本文参考和借鉴:

  1. https://dunwu.github.io/linux-tutorial/
  2. 菜鸟教程

Linux 用户管理

1. Linux用户管理要点

  • 创建用户-使用:useradd
  • 删除用户-使用:userdel
  • 修改用户信息-使用:usermod
  • 设置用户认证信息-使用:passwd
  • 创建用户组-使用:groupadd
  • 删除用户组-使用:groupdel
  • 修改用户组信息-使用:groupmod
  • 切换用户组-使用:newgrp
  • 切换用户-使用:su
  • 当前用户想执行没有权限执行的命令时,使用其他用户身份去执行 - 使用 sudo

2. Linux 系统用户账号管理

用户账号的管理工作主要涉及到用户账号的添加、修改和删除。

添加用户账号就是在系统中创建一个新账号,然后为新账号分配用户号、用户组、主目录和登录Shell等资源。刚添加的账号是被锁定的,无法使用

2.1 useradd

useradd 命令用于 Linux 中创建的新的系统用户。useradd 可用来建立用户帐号。帐号建好之后,再用 passwd 设定帐号的密码.而可用 userdel 删除帐号。使用 useradd 指令所建立的帐号,实际上是保存在 /etc/passwd 文本文件中。
参考:http://man.linuxde.net/useradd

useradd 选项 用户名

参数说明:

  • 选项
      • c :comment 指定一段注释性描述
    • -d :目录,指定用户主目录,如果此目录不存在,则使用-m选项,可以创建主目录
    • -g :用户组 指定用户所属的用户组
    • -G:用户组,用户组指定用户所属的附加组
    • -s :shell文件,指定用户的登录shell
    • -u :用户号,指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号
  • 用户名
  • 指定新账号的登录号
useradd -d /home/sam -m sam

此命令创建了一个用户sam,其中-d和-m选项用来为登录名sam产生一个主目录 /home/sam(/home为默认的用户主目录所在的父目录)。

2.2 userdel

userdel 命令用于删除给定的用户,以及与用户相关的文件。若不加选项,则仅删除用户帐号,而不删除相关文件。

userdel 选项 用户名
userdel sam # 删除用户sam,但不删除其家目录及文件
userdel -r sam  #  删除用户sam ,其 home 目录及文件一并删除;

2.3 usermod

usermod 命令用于修改用户的基本信息(如用户名,主目录,用户组,登录shell等)。usermod 命令不允许你改变正在线上的使用者帐号名称。当 usermod 命令用来改变 user id,必须确认这名 user 没在电脑上执行任何程序。你需手动更改使用者的 crontab 档。也需手动更改使用者的 at 工作档。采用 NIS server 须在 server 上更动相关的 NIS 设定
参考:http://man.linuxde.net/usermod

usermod 选项 用户名

常用的选项包括-c, -d, -m, -g, -G, -s, -u以及-o等,这些选项的意义与useradd命令中的选项一样,可以为用户指定新的资源值。

另外,有些系统可以使用选项:-l 新用户名

这个选项指定一个新的账号,即将原来的用户名改为新的用户名

usermod -s /bin/ksh/ -d home/z -g developer sam 

此命令将用户sam的登录Shell修改为ksh,主目录改为/home/z,用户组改为developer。

2.4 passwd :用户口令管理

passwd 命令用于设置用户的认证信息,包括用户密码、密码过期时间等。系统管理者则能用它管理系统用户的密码。只有管理者可以指定用户名称,一般用户只能变更自己的密码。
参考:http://man.linuxde.net/passwd

# 如果是普通用户执行 passwd 只能修改自己的密码。
# 如果新建用户后,要为新用户创建密码,则用 passwd 用户名,注意要以 root 用户的权限来创建。
$ passwd sam    # 更改或创建sam用户的密码;
Changing password for usersam.
New UNIX password:          # 请输入新密码;
Retype new UNIX password:   # 再输入一次;
passwd: all authentication tokens updated successfully. # 成功;
# 普通用户如果想更改自己的密码,直接运行 passwd 即可,比如当前操作的用户是 conda。

在这里插入图片描述

# 比如我们让某个用户不能修改密码,可以用`-l`选项来锁定,只有root用户才能修改:
$ passwd -l conda    # 锁定用户conda 不能更改密码;
Locking password for user linuxde.
passwd: Success           # 锁定成功;

$ su conda  # 通过su切换到conda用户;
$ passwd      # linuxde来更改密码;
Changing password for user linuxde.
Changing password for linuxde
(current) UNIX password:          # 输入linuxde的当前密码;
passwd: Authentication token manipulation error     # 失败,不能更改密码;

在这里插入图片描述在这里插入图片描述

$ passwd -d conda  # 清除conda用户密码;
Removing password for user linuxde.
passwd: Success                         # 清除成功;

$ passwd -S conda   # 查询conda用户密码状态;
Empty password.                         # 空密码,也就是没有密码;

在这里插入图片描述

3. 用户组的管理

每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理。不同Linux 系统对用户组的规定有所不同,如Linux下的用户属于与它同名的用户组,这个用户组在创建用户时同时创建。

用户组的管理涉及用户组的添加、删除和修改。组的增加、删除和修改实际上就是对/etc/group文件的更新

3.1 groupadd

groupadd 命令用于创建一个新的用户组,新用户组的信息将被添加到系统文件中。
参考:http://man.linuxde.net/groupadd

groupadd 选项 用户组

可以使用的选项有:

  • -g :GID指定新用户组的组标识号(GID)
  • -o: 一般与-g 选项同时使用,标识新用户组的GID可以与系统已有用户组的GID相同。
# 建立一个新组,并设置组 ID 加入系统
groupadd -g 341 jsdigname

执行cat /etc/group就可以看到添加的用户组和GID
在这里插入图片描述

3.2 groupdel

groupdel 命令用于删除指定的用户组,本命令要修改的系统文件包括 /ect/group 和 /ect/gshadow。若该群组中仍包括某些用户,则必须先删除这些用户后,方能删除群组。
参考:http://man.linuxde.net/groupdel

gourpdel 选项 用户组
groupadel jsdigname # 删除这个用户组

3.3 groupmod

groupmod 命令更改群组识别码或名称。需要更改群组的识别码或名称时,可用 groupmod 指令来完成这项工作。
参考:http://man.linuxde.net/groupmo

groupmod 选项 用户组

常用的选项有:

  • -g GID 为用户组指定新的组标识号。
  • -o 与-g选项同时使用,用户组的新GID可以与系统已有用户组的GID相同。
  • -n新用户组 将用户组的名字改为新名字
groupmod -g 102 gorup # 此命令将组group的组标识号修改为102
groupmod -g 10000 -n group3 gourp2 #此命令将组group2的标识号改为10000,组名修改为group3

3.4 newgrp

如果一个用户同时属于多个用户组,那么用户可以在用户组之间切换,以便具有其他用户组的权限
用户可以在登录后,使用命令newgrp切换到其他用户组,这个命令的参数就是目的用户组。例如:

newgrp root

这条命令将当前用户切换到root用户组,前提条件是root用户组确实是该用户的主组或附加组。类似于用户账号的管理,用户组的管理也可以通过集成的系统管理工具来完成

4 sudo

sudo 命令用来以其他身份来执行命令,预设的身份为 root。在 /etc/sudoers 中设置了可执行 sudo 指令的用户。若其未经授权的用户企图使用 sudo,则会发出警告的邮件给管理员。用户使用 sudo 时,必须先输入密码,之后有 5 分钟的有效期限,超过期限则必须重新输入密码。
参考:http://man.linuxde.net/sudo

 指定用户执行命令
$ sudo -u userb ls -l
# 列出目前的权限
$ sudo -l
# 显示sudo设置
$ sudo -L
2.9.1 给普通用户授权sudo

假设要给普通用户conda 配置 sudo权限:

  1. /etc/sudoers文件存放了sudo 的相关用户,但是默认是没有写权限的,所以需要设为可写:chmod u+w /etc/sudoers
  2. 在该文件中添加mary ALL=(ALL) ALL ,保存并退出,让 conda具有 sudo 的所有权限
  3. 再将/etc/sudoers 的权限恢复到默认状态:chmod u-w /etc/sudoers
2.9.2 免密码授权 sudo

与给普通用户授权 sudo 类似,区别仅在于第 2 步:mary ALL=(ALL) NOPASSWD: ALL

5 su

su 命令用于切换当前用户身份到其他用户身份,变更时须输入所要变更的用户帐号与密码。
参考:http://man.linuxde.net/su

# 变更帐号为 root 并在执行 ls 指令后退出变回原使用者:
$ su -c ls root

# 变更帐号为 root 并传入`-f`选项给新执行的 shell:
$ su root -f

# 变更帐号为 conda并改变工作目录至 test 的家目录:
$ su - conda 

本文参考和借鉴:

  1. https://dunwu.github.io/linux-tutorial/
  2. 菜鸟教程
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值