导读

在Linux和其他类Unix操作系统中,只有root用户可以运行所有命令并在系统上执行某些关键操作,如安装和更新,删除包,创建用户和组,修改重要的系统配置文件等。然而,承担root用户角色的系统管理员可以允许其他正常系统用户在sudo命令和几个配置的帮助下运行某些命令以及执行包括上述的一些重要系统操作。或者,系统管理员可以共享root用户密码(这不是推荐的方法),以便正常系统用户可以通过su命令访问root用户帐户。

sudo允许用户以root用户身份(或另一个用户)执行安全策略指定的命令:它读取并解析/etc sudoers,查找调用的用户及其权限,然后提示调用用户输入密码(通常是用户的密码,但也可以是目标用户的密码,也可以使用NOPASSWD取消密码验证),之后,sudo创建一个子进程,在其中调用setuid()切换到目标用户next,它执行一个shell或在上面的子进程中作为参数给出的命令。

以下是十个/etc/sudoers文件配置,以使用Defaults条目修改sudo命令的行为。

sudo cat /etc/sudoers | less

1.设置安全路径

这是用于每个使用sudo运行的命令的路径,它有两个重要性:

在系统管理员不信任sudo用户具有安全的PATH环境变量时使用

要分离“根路径”和“用户路径”,只有由exempt_group定义的用户不受此设置的影响。

要设置它,请添加行:

Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"

2.在TTY用户登录会话上启用sudo

要启用从真实tty调用sudo,而不是通过cron或cgi-bin脚本等方法调用,请添加以下行:

Defaults requiretty

3.运行Sudo命令使用pty

有些时候,攻击者可以使用sudo运行恶意程序(例如病毒或恶意软件),这将再次分叉保留在用户的终端设备上的后台进程,即使在主程序已经完成执行时。

为了避免这种情况,您可以将sudo配置为仅使用use_pty参数从psuedo-pty运​​行其他命令,无论I /O日志是否已打开,如下所示:

Defaults use_pty1

4.创建Sudo日志文件

默认情况下,sudo日志通过syslog(3)。但是,要指定自定义日志文件,请使用logfile参数,如:

Defaults logfile="/var/log/sudo.log"

要在自定义日志文件中记录主机名和四位数年份,请分别使用log_host和log_year参数,如下所示:

Defaults log_host, log_year, logfile="/var/log/sudo.log"

5.记录Sudo命令输入/输出

log_input和log_output参数允许sudo在伪tty中运行命令,并记录所有用户输入和所有输出发送到屏幕。

默认I / O日志目录为/var/log/sudo-io,如果有会话序列号,则存储在此目录中。您可以通过iolog_dir参数指定自定义目录。

Defaults log_input, log_output1

支持一些转义序列,例如%{seq},其扩展为单调递增的基础36序列号,例如000001,其中每两个数字用于形成新的目录,例如。00/00/01,如下例所示:

[root@linuxprobe ~]# cd /var/log/sudo-io/

[root@linuxprobe sudo-io]# ll

total 8

drwx------ 3 root root 4096 Jan 12 18:58 00

-rw------- 1 root root 7 Jan 12 19:08 seq

[root@linuxprobe sudo-io]# cd 00/00/06/

[root@linuxprobe 06]# ls

log stderr stdin stdout timing ttyin ttyout

[root@linuxprobe 06]# cat log

1484219333:root:root::/dev/pts/0

/root

/bin/bash

6.讲解​​Sudo用户

要讲授sudo用户关于系统上的密码使用,请使用如下所示的lecture参数。

它有3个可能的值:

always - 总是讲一个用户。

once - 只在用户第一次执行sudo命令时使用(当没有指定值时使用)

never - 从不讲授用户。

Defaults lecture="always"

此外,您可以使用lecture_file参数设置自定义讲义文件,在文件中键入相应的消息:

Defaults lecture_file="/path/to/file"

7.输入错误的sudo密码时显示自定义消息

当用户输入错误的密码时,命令行上将显示特定的消息。默认消息是“sorry,try again”,您可以使用badpass_message参数修改消息,如下所示:

Defaults badpass_message="Password is wrong, please try again,thank you!"

8.增加sudo密码尝试限制

参数passwd_tries用于指定用户尝试输入密码的次数。 默认值为3:

Defaults passwd_tries=5

9.让Sudo输入错误的密码时输入提示

Defaults insults

10.了解更多Sudo配置

linux命令sudu,Linux中设置’sudo’的10个小技巧相关推荐

  1. linux命令sudu,Linux命令 sudo用法详解

    sudo 命令用来以其他身份来执行命令,Linux系统下的sudo命令主要是用来分配系统的权限,使用sudo命令可以提高普通用户的权限,来执行一些操作.预设的身份为root.在/etc/sudoers ...

  2. 如何在 Linux 最小化安装中设置互联网

    在最小化服务器安装中,设置互联网或网络是非常容易的.在本指南中,我们将解释如何在  .RHEL.Rocky   最小安装中设置互联网或网络. 在最小化服务器安装中,设置互联网或网络是非常容易的.在本指 ...

  3. linux命令---查找文件中的内容

    linux命令---查找文件中的内容 [yang@localhost ~]$ cat 1.txt |egrep '123456789|second'-------匹配123456789或者second ...

  4. linux下运行python_在Linux命令行终端中使用python的简单方法(推荐)

    Linux终端中的操作均是使用命令行来进行的.因此,对于小白来说,熟记几个基本的命令行和使用方法能够较快的在Linux命令行环境中将python用起来. 打开命令行窗口 打开命令行窗口的快捷键如下: ...

  5. linux:命令su、exit、sudo登入、退出用户、临时root权限详解。

    linux:命令su.exit.sudo登入.退出用户.临时root权限详解. 简单了解root用户:   su和exit:  sudo: sudo 使用时需要输入itheima的密码.输对了也不能使 ...

  6. linux cp命令 前面,盘点Linux命令之Linux cp命令使用大全

    Linux命令有很多,其中Linux cp命令常用的一种,Linux cp命令如何使用,下面IT培训网将为您盘点有关Linux命令之Linux cp命令大全. Linux命令之Linux cp命令详解 ...

  7. 深度linux运行windows游戏,在deepin linux系统中手动安装windows游戏的小技巧

    本文介绍在deepin linux系统中手动安装windows游戏的小技巧.其实现在wine很好用了,基本dx9的游戏都能玩,但是有些RA2则效果一般,不是很好.关于deepin-wine的版本低有些 ...

  8. Linux命令篇 linux命令大全简洁明了 linux学习笔记

    Linux命令篇 linux命令大全简洁明了 linux学习笔记 Linux 命令大全 文章目录 Linux 命令大全 一. 常用的基础命令 查看目录: 切换目录: 创建和删除: 拷贝和移动文件: 查 ...

  9. linux命令 bind,Linux bind命令

    # Linux bind命令 [![Linux 命令大全](/images/1590082124592.gif "Linux 命令大全") Linux 命令大全](/queryGr ...

最新文章

  1. 堆和栈的区别 (转贴)
  2. python3 安装opencv_Page20-opencv的编译与安装
  3. CPU高速缓存行对齐和代码优化
  4. luogu P1330 封锁阳光大学
  5. [css] 你有使用过css的writing-mode属性吗?说说它有哪些应用场景?
  6. TensorFlow tf.keras.layers.DenseFeatures
  7. MVC AjaxOptions 中的OnSuccess方法执行多次的问题
  8. linux下命令行操作快捷键及技巧
  9. adadelta算法_机器学习中的优化算法(3)-AdaGrad, Adadelta(附Python示例)
  10. Android 加壳App Demo
  11. Sophix热修复的简单使用
  12. linux创建自签名证书
  13. 菱形(两种数组方法)
  14. vue 组件名称错误
  15. YOLOV5改进||YOLOV5+GSConv+Slim Neck
  16. JAVA编程入门学习
  17. 2022腾讯QQ春节红包活动 虎跃星辰玩法总攻略
  18. 2022 SMUCTF 永远都对-rui WriteUp
  19. 【技巧】解决谷歌浏览器自带的谷歌翻译无法自动翻译问题
  20. 服务器拒绝连接怎么修复服务器,服务器拒绝了连接怎么修复

热门文章

  1. OCR快速入门(二)| Python版
  2. Loading动画的最佳实现方式
  3. pyqt5 随笔:对蒙版遮罩mask,setmask的理解
  4. OpenCV有多酷?
  5. 带你走进整个游戏行业《上》
  6. 无法拖动_玩转PPT拖动的小妙招
  7. 就CVPR2020的情况来看,目前人工智能的研究热点有哪些进展?未来的研究趋势会有什么变化?...
  8. CentOS 7 搭建Nextcloud私有网盘
  9. FishNet网络搭建代码阅读(1)——fish_blocknet_factory
  10. C4D建模教程篇之球体打孔