linux系统用户管理

用户组管理

# 添加用户组
[root@192 ~]# groupadd -h
用法:groupadd [选项] 组

选项:
  -f, --force		如果组已经存在则成功退出
			并且如果 GID 已经存在则取消 -g
  -g, --gid GID                 为新组使用 GID
  -h, --help                    显示此帮助信息并推出
  -K, --key KEY=VALUE           不使用 /etc/login.defs 中的默认值
  -o, --non-unique              允许创建有重复 GID 的组
  -p, --password PASSWORD       为新组使用此加密过的密码
  -r, --system                  创建一个系统账户
  -R, --root CHROOT_DIR         chroot 到的目录

# 例:创建用户组group1
[root@192 ~]# groupadd group1
# 查看组
[root@192 ~]# cat /etc/group |grep group1
group1:x:1001:


# 修改用户组
[root@192 ~]# groupmod -h
用法:groupmod [选项] 组

选项:
  -g, --gid GID                 将组 ID 改为 GID
  -h, --help                    显示此帮助信息并推出
  -n, --new-name NEW_GROUP      改名为 NEW_GROUP
  -o, --non-unique              允许使用重复的 GID
  -p, --password PASSWORD	将密码更改为(加密过的) PASSWORD
  -R, --root CHROOT_DIR         chroot 到的目录

# 例:修改用户组名称
[root@192 ~]# groupmod -n grouptest group1
[root@192 ~]# cat /etc/group |grep group
grouptest:x:1001:

# 删除用户组
[root@192 ~]# groupdel -h
用法:groupdel [选项] 组

选项:
  -h, --help                    显示此帮助信息并推出
  -R, --root CHROOT_DIR         chroot 到的目录

# 例:删除用户组grouptest
[root@192 ~]# groupdel grouptest

用户管理

# 添加用户
[root@192 ~]# useradd -h
用法:useradd [选项] 登录
      useradd -D
      useradd -D [选项]

选项:
  -b, --base-dir BASE_DIR	新账户的主目录的基目录
  -c, --comment COMMENT         新账户的 GECOS 字段
  -d, --home-dir HOME_DIR       新账户的主目录
  -D, --defaults		显示或更改默认的 useradd 配置
  -e, --expiredate EXPIRE_DATE  新账户的过期日期
  -f, --inactive INACTIVE       新账户的密码不活动期
  -g, --gid GROUP		新账户主组的名称或 ID
  -G, --groups GROUPS	新账户的附加组列表
  -h, --help                    显示此帮助信息并推出
  -k, --skel SKEL_DIR	使用此目录作为骨架目录
  -K, --key KEY=VALUE           不使用 /etc/login.defs 中的默认值
  -l, --no-log-init	不要将此用户添加到最近登录和登录失败数据库
  -m, --create-home	创建用户的主目录
  -M, --no-create-home		不创建用户的主目录
  -N, --no-user-group	不创建同名的组
  -o, --non-unique		允许使用重复的 UID 创建用户
  -p, --password PASSWORD		加密后的新账户密码
  -r, --system                  创建一个系统账户
  -R, --root CHROOT_DIR         chroot 到的目录
  -s, --shell SHELL		新账户的登录 shell
  -u, --uid UID			新账户的用户 ID
  -U, --user-group		创建与用户同名的组
  -Z, --selinux-user SEUSER		为 SELinux 用户映射使用指定 SEUSER

# 例:添加用户user1
[root@192 ~]# useradd user1
[root@192 ~]# cat /etc/passwd |grep user1
user1:x:1001:1001::/home/user1:/bin/bash
[root@192 ~]# 

# 修改用户
[root@192 ~]# usermod -h
用法:usermod [选项] 登录

选项:
  -c, --comment 注释            GECOS 字段的新值
  -d, --home HOME_DIR           用户的新主目录
  -e, --expiredate EXPIRE_DATE  设定帐户过期的日期为 EXPIRE_DATE
  -f, --inactive INACTIVE       过期 INACTIVE 天数后,设定密码为失效状态
  -g, --gid GROUP               强制使用 GROUP 为新主组
  -G, --groups GROUPS           新的附加组列表 GROUPS
  -a, --append GROUP            将用户追加至上边 -G 中提到的附加组中,
                                并不从其它组中删除此用户
  -h, --help                    显示此帮助信息并推出
  -l, --login LOGIN             新的登录名称
  -L, --lock                    锁定用户帐号
  -m, --move-home               将家目录内容移至新位置 (仅于 -d 一起使用)
  -o, --non-unique              允许使用重复的(非唯一的) UID
  -p, --password PASSWORD       将加密过的密码 (PASSWORD) 设为新密码
  -R, --root CHROOT_DIR         chroot 到的目录
  -s, --shell SHELL             该用户帐号的新登录 shell
  -u, --uid UID                 用户帐号的新 UID
  -U, --unlock                  解锁用户帐号
  -Z, --selinux-user  SEUSER    用户账户的新 SELinux 用户映射

# 修改用户名
[root@192 ~]# usermod -l usertest user1
[root@192 ~]# cat /etc/passwd |grep user
usertest:x:1001:1001::/home/user1:/bin/bash

# 修改用户家目录名
[root@192 ~]# usermod -d /home/usertest usertest
[root@192 ~]# cat /etc/passwd |grep user
usertest:x:1001:1001::/home/usertest:/bin/bash
# 将旧家目录名修改为新目录名
[root@192 ~]# mv /home/user1 /home/usertest

# 将用户添加到组
# 不加-a参数,是设置用户的附加组
[root@192 ~]# usermod -G www,docker usertest
[root@192 ~]# cat /etc/group |grep usertest
docker:x:994:usertest
www:x:1000:usertest
usertest:x:1001:
# 当-G参数取消docker时,用户将退出docker组
[root@192 ~]# usermod -G www usertest
[root@192 ~]# cat /etc/group |grep usertest
www:x:1000:usertest
usertest:x:1001:

# 加上-a参数时,将用户追加到-G后面的用户组中,不会删除之前的附加组
[root@192 ~]# usermod -a -G docker usertest
[root@192 ~]# cat /etc/group |grep usertest
docker:x:994:usertest
www:x:1000:usertest
usertest:x:1001:

# 删除用户
[root@192 ~]# userdel -h
用法:userdel [选项] 登录

选项:
  -f, --force                   force some actions that would fail otherwise
                                e.g. removal of user still logged in
                                or files, even if not owned by the user
  -h, --help                    显示此帮助信息并推出
  -r, --remove                  删除主目录和邮件池
  -R, --root CHROOT_DIR         chroot 到的目录
  -Z, --selinux-user            为用户删除所有的 SELinux 用户映射

# 例:删除usertest
# 删除用户时,会删除用户的主组,并退出其它附加组,黙认不会删除用户的家目录,加上-r参数将删除家目录
[root@192 ~]# userdel usertest
[root@192 ~]# cat /etc/passwd |grep usertest
[root@192 ~]# cat /etc/group |grep usertest

设置密码

# 修改当前用户的密码,直接输入passwd命令
# root用户修改本账户密码
[root@192 home]# passwd
更改用户 root 的密码 。
新的 密码:

# usertest用户修改本账户密码
[usertest@192 ~]$ passwd
更改用户 usertest 的密码 。
为 usertest 更改 STRESS 密码。
(当前)UNIX 密码:

# root用户修改其它用户密码,在passwd后加上要修改密码用户的用户名
[root@192 home]# passwd usertest
更改用户 usertest 的密码 。
新的 密码:

用户切换

# 用户切换
[root@192 ~]# su -h

用法:
 su [选项] [-] [USER [参数]...]

将有效用户 id 和组 id 更改为 USER 的 id。
单个 - 视为 -l。如果未指定 USER,将假定为 root。

选项:
 -m, -p, --preserve-environment  不重置环境变量
 -g, --group <组>                指定主组
 -G, --supp-group <组>           指定一个辅助组

 -, -l, --login                  使 shell 成为登录 shell
 -c, --command <命令>            使用 -c 向 shell 传递一条命令
 --session-command <命令>        使用 -c 向 shell 传递一条命令
                                 而不创建新会话
 -f, --fast                      向shell 传递 -f 选项(csh 或 tcsh)
 -s, --shell <shell>             若 /etc/shells 允许,则运行 shell

 -h, --help                      显示此帮助并退出
 -V, --version                   输出版本信息并退出

# 注意 su - usertest和su usertest的区别
[root@192 ~]# su usertest
[usertest@192 root]$ pwd
/root

[root@192 ~]# su - usertest
上一次登录:六 10月 28 11:45:49 CST 2023pts/0 上
[usertest@192 ~]$ pwd
/home/usertest
[usertest@192 ~]$ 

sudo/sudo免密

centos7演示

# 将usertest添加sudo权限并配置sudo免密码
# 方法一:将用户加入wheel组(默认情况下wheel组有sudo权限),将wheel组配置为sudo免密
# 将用户加入wheel组
[root@192 ~]# usermod -a -G wheel usertest
[root@192 ~]# cat /etc/group |grep wheel
wheel:x:10:usertest
[root@192 ~]# su - usertest
上一次登录:六 10月 28 12:11:04 CST 2023pts/0 上
[usertest@192 ~]$ sudo ls /root/

我们信任您已经从系统管理员那里了解了日常注意事项。
总结起来无外乎这三点:

    #1) 尊重别人的隐私。
    #2) 输入前要先考虑(后果和风险)。
    #3) 权力越大,责任越大。

[sudo] usertest 的密码:
anaconda-ks.cfg  get-docker.sh	install.sh
[usertest@192 ~]$ 

# wheel组配置sudo免密
# 编辑文件/etc/sudoers,将下面行开头的#删除
# %wheel        ALL=(ALL)       NOPASSWD: ALL

# /etc/sudoers默认只读,不能编辑,需要添加写权限
[root@192 ~]# chmod +w /etc/sudoers

# 通过sed命令修改文件
[root@192 ~]# cat /etc/sudoers |grep wheel
## Allows people in group wheel to run all commands
%wheel	ALL=(ALL)	ALL
# %wheel	ALL=(ALL)	NOPASSWD: ALL
[root@192 ~]# sed -i 's/# %wheel/%wheel/g' /etc/sudoers
[root@192 ~]# cat /etc/sudoers |grep wheel
## Allows people in group wheel to run all commands
%wheel	ALL=(ALL)	ALL
%wheel	ALL=(ALL)	NOPASSWD: ALL
[root@192 ~]# chmod -w /etc/sudoers

# 验证
[root@192 ~]# su - usertest
上一次登录:六 10月 28 12:12:06 CST 2023pts/0 上
[usertest@192 ~]$ sudo ls /root/
anaconda-ks.cfg  get-docker.sh	install.sh

# 方法二
# 将指定用户usertest配置sudo免密
# 编辑/etc/sudoers文件,添加以下内容
usertest	ALL=(ALL)	NOPASSWD: ALL

ubuntu 20.04

# 将ubuntu用户配置为sudo免密
# 编辑/etc/sudoers文件,添加以下内容
ubuntu	ALL=(ALL:ALL) NOPASSWD:ALL

远程登录 

ubuntu默认禁止root用户远程登录,需要修改/etc/ssh/sshd_config配置文件

# vi /etc/ssh/sshd_config
# 添加以下内容
PermitRootLogin yes

内容导览:计算机网络基础、进阶、安全实践

  • 6
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hougang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值