设为首页 加入收藏

TOP

快速上手Linux核心命令(十一):Linux用户相关命令(四)
2023-07-23 13:32:28 】 浏览:93
Tags:Linux 十一 相关命
sed OK

直接root用户下操作不就可以了么?为什么要通过sudo授权呢?
我们希望一个用户具有root权限去干活,但是又不希望这个用户威胁系统安全。

sudo 以另一个用户身份执行命令

1、简介

sudo 命令可以让普通用户拥有超级用户的权限去执行指定的命令或程序。普通用户不需要知道root密码就可以得到授权,授权我们在上面已经说过

2、语法格式

sudo [参数选项]

3、参数选项

参数 参数说明
-l 列出当前用户可以执行的命令。只有在sudoers 文件里的用户才能使用该选项
-h 列出使用方法,并退出
-H 将环境变量中的HOME(家目录)指定为要变更身份的使用者家目录
-V 显示版本信息,并退出
-v sudo在第一次执行时,或者在N分钟内没有执行,则会询问密码,参数用于重新做一次确认
-u 以指定用户的身份执行命令
-k 清除时间戳上的实践,下次再次使用sudo时要再此输入密码
-K 与k类似,同时还删除时间戳文件
-b 在后台执行指定命令
-p 更改询问密码时的提示语
-e 不执行命令,而是修改文件,相当于sudo edit

4、sudo 工作原理
sudo工作原理

5、实践操作
创建一个testuser 用户,并对testuser进行sudo授权管理。授权完成后sudo操作

# 1、创建testuser 用户
[root@xiezhr ~]# useradd testuser
# 2、将testuser 用户密码修改为******
[root@xiezhr ~]# passwd testuser
Changing password for user testuser.
New password: 
BAD PASSWORD: The password is shorter than 8 characters
Retype new password: 
passwd: all authentication tokens updated successfully.
# 3、执行以下命令后添加 `testuser ALL=(ALL)        ALL  ` 对testuser用户进行sudo授权 参照下图
[root@xiezhr ~]# visudo
testuser ALL=(ALL)        ALL
# 4、登录testuser 用户,查看 当前用户被授予的sudo权限集合
[testuser@xiezhr ~]$ sudo -l
Matching Defaults entries for testuser on xiezhr:
    !visiblepw, always_set_home, match_group_by_gid, always_query_group_plugin, env_reset, env_keep="COLORS DISPLAY HOSTNAME HISTSIZE KDEDIR LS_COLORS",
    env_keep+="MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE", env_keep+="LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES",
    env_keep+="LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE", env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY",
    secure_path=/sbin\:/bin\:/usr/sbin\:/usr/bin

User testuser may run the following commands on xiezhr:
    (ALL) ALL

# 5、登录testuser用户,执行ls /root 发现时没有权限的
[testuser@xiezhr ~]$ ls /root
ls: cannot open directory /root: Permission denied
# 6、当加上sudo 后 再执行ls /root (第一次需要输入testuser用户密码,上面原理图介绍过),发现可以访问/root 路径了,此时testuser 具有了
[testuser@xiezhr ~]$ sudo ls /root

We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:

    #1) Respect the privacy of others.
    #2) Think before you type.
    #3) With great power comes great responsibility.

[sudo] password for testuser: 
bdcdb84c414c2493e5856597b89be9f0.gif

6、 sudo 小结

  • 对用户进行sudo授权后,所有用户执行命令 格式为 sudo + [命令]
  • sudo - l 命令可以查看当前用户被授予的sudo权限集合
  • 当我们在授权用户下执行sudo时,如果需要输入密码。此时输入密码是当前用户的密码

id 显示用户与用户组信息

1、简介

id 命令可以显示指定用户的ID(UID)和组ID(GID)等有效信息

2、语法格式

id [参数选项] [用户名]

3、参数选项

参数 参数说明
-g 显示用户所属群组的ID
-G 显示用户所属附加群组的ID
-n 显示用户,所属群组或附加群组的名称
-r 显示实际ID
-u 显示用户ID

4、实践操作
显示用户的UID和GID

# id 后不跟用户,默认时当前登录用户
[root@xiezhr home]# id
uid=0(root) gid=0(root) groups=0(root)
# 显示指定用户信息
[root@xiezhr home]# id testxiezhr
uid=1006(testxiezhr) gid=1006(testxiezhr) groups=1006(testxiezhr)
# 显示当前登录用户名称
[root@xiezhr home]# id -gn
root
# 显示当前登录用户GID
[root@xiezhr home]# id -g
0
# 显示当前登录用户UID
[root@xiezhr home]# id -u
0

w 显示已登录用户信息

1、简介

w命令可以显示已经登录系统的用户,并显示用户正在执行的命令

2、语法格式

w [参数选项] [用户]

3、参数选项

参数 参数说明
-h 不显示前两行标题信息
-u 忽略执行程序的名称以及CPU时间信息
-s 使用短输出格式

4、实践操作
① 显示已登录用户信息

[testuser@xiezhr ~]$ w
 21:21:42 up 609 days, 7 min,  4 users,  load average: 2.66, 2.99, 3.17
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    39.130.60.62     20:33   48:22   0
首页 上一页 1 2 3 4 5 6 下一页 尾页 4/6/6
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Linux下七种文件类型、文件属性及.. 下一篇在docker 环境中 websocket 通过n..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目