Linux基础——sudo命令

2023-10-30

sudo——用户提升权限的命令

1.新建用户,并且设置密码
 [root@sanchuang ~]# useradd  panlinfeng
[root@sanchuang ~]# echo 123456|passwd panlinfeng --stdin
更改用户 panlinfeng 的密码 。
passwd:所有的身份验证令牌已经成功更新。
[root@sanchuang ~]# 


2.授权
[root@sanchuang ~]# vim /etc/sudoers

## Sudoers allows particular users to run various commands as
## the root user, without needing the root password.
root    ALL=(ALL)       ALL
panlinfeng      ALL=(ALL)       ALL   #添加授权记录


3.验证使用
[root@sanchuang ~]# su - panlinfeng
[panlinfeng@sanchuang ~]$ cd /
[panlinfeng@sanchuang /]$ ll -d /
dr-xr-xr-x. 21 root root 4096 2月  26 16:03 /
[panlinfeng@sanchuang /]$ mkdir pan
mkdir: 无法创建目录"pan": 权限不够
[panlinfeng@sanchuang /]$ sudo mkdir pan

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

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

[sudo] panlinfeng 的密码:
[panlinfeng@sanchuang /]$ ls
backup  boot  etc   lianxi  lib64  mnt  pan   root  sbin  srv  tmp  var
bin     dev   home  lib     media  opt  proc  run   sc    sys  usr  zhongguo
[panlinfeng@sanchuang /]$ 

审计: 记录日志到/var/log/secure文件里

[panlinfeng@sanchuang /]$ sudo tail  /var/log/secure
Feb 26 16:03:53 sanchuang sshd[1436]: pam_unix(sshd:session): session opened for user root by (uid=0)
Feb 26 16:11:28 sanchuang useradd[1476]: new group: name=panlinfeng, GID=1003
Feb 26 16:11:28 sanchuang useradd[1476]: new user: name=panlinfeng, UID=1003, GID=1003, home=/home/panlinfeng, shell=/bin/bash
Feb 26 16:11:55 sanchuang passwd: pam_unix(passwd:chauthtok): password changed for panlinfeng
Feb 26 16:16:17 sanchuang su: pam_unix(su-l:session): session opened for user panlinfeng by root(uid=0)
Feb 26 16:17:42 sanchuang sudo: panlinfeng : TTY=pts/0 ; PWD=/ ; USER=root ; COMMAND=/bin/mkdir pan
Feb 26 16:17:42 sanchuang sudo: pam_unix(sudo:session): session opened for user root by root(uid=0)
Feb 26 16:17:42 sanchuang sudo: pam_unix(sudo:session): session closed for user root
Feb 26 16:19:37 sanchuang sudo: panlinfeng : TTY=pts/0 ; PWD=/ ; USER=root ; COMMAND=/bin/tail /var/log/secure
Feb 26 16:19:37 sanchuang sudo: pam_unix(sudo:session): session opened for user root by root(uid=0)
[panlinfeng@sanchuang /]$ 

授予普通用户指定的命令权限

1.新建用户,设置密码
[root@sanchuang ~]# useradd luqianjun
[root@sanchuang ~]# echo 123456|passwd luqianjun --stdin
更改用户 luqianjun 的密码 。
passwd:所有的身份验证令牌已经成功更新。
[root@sanchuang ~]#


2.授权

进入/etc/sudoers文件里修改

Cmnd_Alias NETWORKING = /sbin/route, /sbin/ifconfig, /bin/ping, /sbin/dhclient, /usr/bin/net, /sbin/iptables, /usr/bin/rfcomm, /usr/bin/wvdial, /sbin/iwconfig, /sbin/mii-tool

Cmnd_Alias LUTOOLS = /bin/nice, /bin/kill, /usr/bin/kill, /usr/bin/killall, /usr/sbin/useradd, /usr/sbin/userdel, /usr/sbin/ip     #增加的命令别名

luqianjun  ALL = LUTOOLS , NETWORKING    给luqianjun用户授予上面设置别名的命令的权限

3.验证
[root@sanchuang ~]# su - luqianjun
[luqianjun@sanchuang ~]$ sudo useradd wuhao

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

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

[sudo] luqianjun 的密码:
[luqianjun@sanchuang ~]$ id wuhao
uid=1005(wuhao) gid=1005(wuhao) 组=1005(wuhao)
[luqianjun@sanchuang ~]$ sudo mount /dev/cdrom   /mnt
对不起,用户 luqianjun 无权以 root 的身份在 sanchuang 上执行 /bin/mount /dev/cdrom /mnt。

授予组指定命令的权限

1.新建组,将用户加入组
[root@sanchuang ~]# groupadd  sanchuang
[root@sanchuang ~]# useradd -g sanchuang  luojie
[root@sanchuang ~]# useradd -g sanchuang  liquan
[root@sanchuang ~]# useradd -g sanchuang  cc
[root@sanchuang ~]# id luojie
uid=1006(luojie) gid=1006(sanchuang) 组=1006(sanchuang)
[root@sanchuang ~]# id cc
uid=1008(cc) gid=1006(sanchuang) 组=1006(sanchuang)
[root@sanchuang ~]# id liquan
uid=1007(liquan) gid=1006(sanchuang) 组=1006(sanchuang)
[root@sanchuang ~]# 
[root@sanchuang ~]# echo 123456|passwd luojie --stdin
更改用户 luojie 的密码 。
passwd:所有的身份验证令牌已经成功更新。
[root@sanchuang ~]# echo 123456|passwd liquan --stdin
更改用户 liquan 的密码 。
passwd:所有的身份验证令牌已经成功更新。
[root@sanchuang ~]# echo 123456|passwd cc --stdin
更改用户 cc 的密码 。
passwd:所有的身份验证令牌已经成功更新。
[root@sanchuang ~]#
2.授权组
%sanchuang    ALL =  LUTOOLS , NETWORKING    #给sanchuang这个组授予LUTOOLS,NETWORKING这两个别名里所含有的命令的权限,三创这个组里所有的用户都有这些权限

3.验证
[root@sanchuang ~]# su - luojie
[luojie@sanchuang ~]$ sudo useradd luo

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

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

[sudo] luojie 的密码:
[luojie@sanchuang ~]$ id luo
uid=1009(luo) gid=1009(luo) 组=1009(luo)

拒绝权限高于一切
一个用户属于某个组,会继承这个组的权限

思考:suid和sudo的区别?
suid提权:任何用户都可以使用这个命令 --》一个命令,任何人都可以使用
sudo授权:指定哪些用户使用哪些命令

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux基础——sudo命令 的相关文章

  • Gearman,php 扩展问题:使用终端在 .. 中找不到类“GearmanWorker”,但可以在浏览器上使用

    我最近在 ubuntu 10 04 上安装了 gearman 并安装了它的 pecl 扩展 现在 当我在浏览器中运行一个 php 文件时 其中包含 client new GearmanWorker die var Dump client I
  • Fedora dnf 更新不起作用?

    当我尝试使用 update 命令更新 Fedora 22 时 sudo dnf update 我收到以下错误 错误 无法同步存储库 更新 的缓存 无法准备内部镜像列表 Curl 错误 6 无法解析主机名 无法解析主机 mirrors fed
  • 在 Ubuntu 中找不到 X11/Xlib.h

    我试图在 Linux 上使用 open gl 编写一个相当简单的程序 但在编译时它说 编译拇指 egl 我对 GL 完全陌生 不知道出了什么问题 快速搜索使用 apt search Xlib h 打开 libx11 dev 包 但纯 Ope
  • 如何让 Vim 匹配不以七位数字开头的行?

    我有一个大约 1000 行的文件 除个别行外 所有行均以七位数字开头 我需要捕捉这些行并将它们与前一行实际连接起来 我已经成功地能够使用以下正则表达式模式匹配以七位数字开头的任何行 d 7 我似乎无法让它匹配任何一行不匹配不过 这种模式确实
  • linux下写入后崩溃

    如果我使用 write 将一些数据写入磁盘上的文件会发生什么 但我的应用程序在刷新之前崩溃了 如果没有系统故障 是否可以保证我的数据最终会刷新到磁盘 如果您正在使用write 并不是fwrite or std ostream write 那
  • 如何使用 vim 作为寻呼机设置彩色 git diff

    我无法配置 git 来遵循我的请求 使用 vim 作为差异分页器 在交互模式下添加文件时保留差异颜色 My gitconfig setup color ui auto diff false pager diff vim 通过此配置 交互模式
  • 如何访问 mmaped /dev/mem 而不导致 Linux 内核崩溃?

    我有一个简单的程序 尝试访问用户空间中的物理内存 其中内核存储第一个结构页 在 64 位机器上 该地址是 内核虚拟地址 ffffea0000000000 物理地址 0000620000000000 我正在尝试通过用户空间中的 mmap 访问
  • 推荐用于小型站点的 IRC 服务器 (ircd)? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 情况 我想使用 IRC 机器人作为我正在研究的其他代码的通用通信接口 服务器硬件陈旧且内存不足 但运行在相对最新的 Debian GNU
  • Linux“屏幕”的 Windows 等效项还是其他替代方案?

    我正在寻找一种在 Windows 环境中控制程序的方法 我希望它与 Linux 软件有点相似 screen 我搜索的原因是我需要使用标识符启动一个程序 在 Windows 上 这样我以后就能够关闭该特定程序 而无需关闭其他任何程序 即使实际
  • 如何使用 vim 作为“git log”编辑器?

    当我跑步时git log 编辑器到底是什么git log正在使用 Also 无论如何我可以使用吗vim作为我的默认编辑器git log 如果我想搜索 git 日志 最好的方法是什么 现在我正在做类似的事情 git log grep bla
  • 如何在gnuplot中将字符串转换为数字

    有没有办法将表示数字 以科学格式 的字符串转换为 gnuplot 中的数字 IE stringnumber 1 0e0 number myconvert stringnumber plot 1 1 number 我可能使用 shell 命令
  • 如何确定代码是否在信号处理程序上下文中运行?

    我刚刚发现有人正在从信号处理程序调用我编写的绝对不是异步信号安全的函数 所以 现在我很好奇 如何避免这种情况再次发生 我希望能够轻松确定我的代码是否在信号处理程序上下文中运行 语言是 C 但该解决方案不适用于任何语言吗 int myfunc
  • 如何从 Linux 内核模块获取使用计数?

    我对正在开发的内核模块的使用计数有疑问 我想打印它以进行调试 如何从模块代码中获取它 有问题的内核版本 Linux 2 6 32 module refcount http lxr linux no linux v2 6 34 1 inclu
  • 错误:命令“c++”失败,退出状态为 1

    所以我尝试按照以下说明安装 Pyv8https andrewwilkinson wordpress com 2012 01 23 integrating python and javascript with pyv8 https andre
  • 在 Linux 上创建线程与进程的开销

    我试图回答在 python 中创建线程与进程有多少开销的问题 我修改了类似问题的代码 该问题基本上运行一个带有两个线程的函数 然后运行带有两个进程的相同函数并报告时间 import time sys NUM RANGE 100000000
  • 如何从远程 ssh 连接上运行的 tmux(复制模式)复制到本地剪贴板

    我通过 OS X 上的 VirtualBox 运行 Linux 我通过在无头状态下运行虚拟机 然后使用端口转发 sshing 到 Linux 机器来实现这一点 现在 无论复制到我的虚拟机上的剪贴板 我都可以粘贴到我的远程 ssh 会话上 但
  • 将node.js +expressjs应用程序的NODE_ENV设置为ubuntu下的守护进程

    我按照这些说明让守护进程正常工作 http kevin vanzonneveld net techblog article run nodejs as a service on ubuntu karmic http kevin vanzon
  • 使用c在linux上分块读写

    我有一个 ASCII 文件 其中每一行都包含一个可变长度的记录 例如 Record 1 15 characters Record 2 200 characters Record 3 500 characters Record n X cha
  • SMP 上如何处理中断?

    SMP 对称多处理器 多核 机器上如何处理中断 内存管理单元是只有一个还是多个 假设两个线程 A 和 B 运行在不同的内核上 同时 访问页表中不存在的内存页面 在这种情况下 将会出现页面错误 并从内存中引入新页面 将会发生的事件的顺序是什么
  • 如何列出 nginx 中的所有虚拟主机

    有没有一个命令可以列出 CentOS 上 nginx 下运行的所有虚拟主机或服务器 我想将结果通过管道传输到文本文件以用于报告目的 我正在寻找与我用于 Apache 的命令类似的命令 apachectl S 2 gt 1 grep 端口 8

随机推荐

  • web下载七牛云上面的图片资源

    本文将怎么通过浏览器打包下载七牛云服务器上面的图片资源 如果不用压缩打包处理 可以直接获取流后用对应的out输出就行 不做具体解析 1 先讲怎么打包下载吧 ZipOutputStream我用的是这个工具类 创建 ZipOutputStrea
  • RL-RTX小读之os_sem_wait

    rtl h中定义了 define os sem wait sem tmo os sem wait U32 rt sem wait sem tmo rt sem wait的实现如下 OS RESULT rt sem wait OS ID se
  • for循环遍历列表的注意事项

    一图流
  • 环形链表

    LeetCode 环型链表 给定一个链表 返回链表开始入环的第一个节点 如果链表无环 则返回 null 为了表示给定链表中的环 我们使用整数 pos 来表示链表尾连接到链表中的位置 索引从 0 开始 如果 pos 是 1 则在该链表中没有环
  • 用 JavaScript,五分钟将 Siri 接入 ChatGPT(搬运)

    Siri ChatGPT 使用教程 将 Siri 接入 ChatGPT 直接语音唤醒 并且支持连续对话 第一步 拷贝项目 通过 AirCode 源码链接中右上角的 Get a copy 按钮快速生成一个自己的 AirCode Node js
  • 大数据技术原理与应用---笔记一:大数据概论

    大数据概论 1 大数据概念 1 1 4v说法 1 2 大数据的影响 对科学研究的影响 对思维方式影响 2 大数据相关技术 2 1大数据基本处理流程 3 大数据计算模式 大数据产业 参考书籍 1 大数据概念 1 1 4v说法 1 数据量大 v
  • 【华为上机真题】事件推送

    作者 Linux猿 简介 CSDN博客专家 华为云享专家 Linux C C 云计算 物联网 面试 刷题 算法尽管咨询我 关注我 有问题私聊 关注专栏 数据结构和算法成神路 精讲 优质好文持续更新中 欢迎小伙伴们点赞 收藏 留言 目录 一
  • 填速度环的大坑以及转向环的疑问还有对PID的魔性认识

    原文 https blog csdn net weixin 30836759 article details 94931014 前几天填补了速度环的大坑 之前速度环是每次获取编码器的返回值来对输出的PWM波进行赋值 发现车总是有气无力 更换
  • Spring Security+Spring Boot 无法访问静态资源 401-跨域问题解决

    401告诉我没有权限 一开始我还以为时静态资源没有开放 package cn hcnet2006 blog hcnetwebsite config import org springframework context annotation
  • java dispose - public void dispose()

    dispose public void dispose 释放由此 Window 其子组件及其拥有的所有子组件所使用的所有本机屏幕资源 即这些 Component 的资源将被破坏 它们使用的所有内存都将返回到操作系统 并将它们标记为不可显示
  • vue项目中如何定义 多个全局自定义指令

    在项目中如果自定义指令太多 不方便在main js中写 那么如何能够全部写在一个文件然后在main js中引入 首先创建一个js文件 用于专门书写指令 directives index js export const imagerror i
  • signed和unsigned区别

    signed和unsigned用于修饰整数类型 包括char 从ANSI C89标准开始支持 signed表示有符号 unsigned表示无符号 有符号数的最大取值要比无符号的小约一半 因为有符号数的最高一位被用来表示符号 默认的int s
  • 剑指offer 专项突破版 119、最长连续序列

    题目链接 思路 同样的可以转化为并查集来做 可以把相邻的数字放到一个子集中 每当搜索到一个数字时就判断和他相邻的数字是否在集合中 如果在就合并 为了方便记录每个集合的大小 可以用一个count集合记录每个子集的大小 在合并集合的时候也要更新
  • vue开发环境准备-  配置npm私服地址

    1 通过config命令 npm config set registry https ip repository npm group 2 命令行方式 npm registry https ip repository npm group in
  • 剑指offer—16.数值的整数次方——分析及代码(Java)

    剑指offer 16 数值的整数次方 分析及代码 Java 一 题目 二 分析及代码 1 二分求解 1 思路 2 代码 3 结果 三 其他 一 题目 给定一个 double 类型的浮点数 base 和 int 类型的整数 exponent
  • 微信小程序监听返回后执行操作

    例如 点击主页面是index进入子页面list list页面onUnload进行监听 onUnload getCurrentPages 获取当前的页面栈 var pageList getCurrentPages var prevPage p
  • Spring整合Ehcache管理缓存

    前言 Ehcache 是一个成熟的缓存框架 你可以直接使用它来管理你的缓存 Spring 提供了对缓存功能的抽象 即允许绑定不同的缓存解决方案 如Ehcache 但本身不直接提供缓存功能的实现 它支持注解方式使用缓存 非常方便 本文先通过E
  • R 与甲骨文数据挖掘

    特点 使用 Oracle Data Miner 和 Oracle R Enterprise 自动化预测分析过程 深入了解企业中常用的各种统计模型 以及如何使用各种 SQL PLSQL ORE ODM 和本机 R 包将它们自动化以进行预测分析
  • MD5

    package com bochy md5 import java security MessageDigest import java security NoSuchAlgorithmException import com sun ma
  • Linux基础——sudo命令

    sudo 用户提升权限的命令 1 新建用户 并且设置密码 root sanchuang useradd panlinfeng root sanchuang echo 123456 passwd panlinfeng stdin 更改用户 p