精华内容
下载资源
问答
  • linux中systemctl详细理解及常用命令

    万次阅读 多人点赞 2019-06-28 16:16:52
    Linux 服务管理两种方式service和systemctl systemd是Linux系统最新的初始化系统(init),作用是提高系统的启动速度,尽可能启动较少的进程,尽可能更多进程并发启动。 systemd对应的进程管理命令是systemctl 1. ...

    一、systemctl理解

    Linux 服务管理两种方式service和systemctl

    systemd是Linux系统最新的初始化系统(init),作用是提高系统的启动速度,尽可能启动较少的进程,尽可能更多进程并发启动。

    systemd对应的进程管理命令是systemctl

    1. systemctl命令兼容了service

    即systemctl也会去/etc/init.d目录下,查看,执行相关程序

    systemctl redis start
    
    systemctl redis stop
    
    # 开机自启动
    
    systemctl enable redis

    2. systemctl命令管理systemd的资源Unit

    systemd的Unit放在目录/usr/lib/systemd/system(Centos)或/etc/systemd/system(Ubuntu)

    主要有四种类型文件.mount,.service,.target,.wants

    .mount文件

    .mount文件定义了一个挂载点,[Mount]节点里配置了What,Where,Type三个数据项

    等同于以下命令:

    mount -t hugetlbfs /dev/hugepages hugetlbfs

    .service文件

    .service文件定义了一个服务,分为[Unit],[Service],[Install]三个小节

    [Unit]

    Description:描述,

    After:在network.target,auditd.service启动后才启动

    ConditionPathExists: 执行条件

    [Service]

    EnvironmentFile:变量所在文件

    ExecStart: 执行启动脚本

    Restart: fail时重启

    [Install]

    Alias:服务别名

    WangtedBy: 多用户模式下需要的

    .target文件

    .target定义了一些基础的组件,供.service文件调用

    .wants文件

    .wants文件定义了要执行的文件集合,每次执行,.wants文件夹里面的文件都会执行

    二、常用命令

    1.查看版本号

    systemctl –-version

    2.管理服务(unit)

    systemctl 提供了一组子命令来管理单个的 unit,其命令格式为:

    systemctl [command] [unit]

    command 主要有:

    start:立刻启动后面接的 unit。

    stop:立刻关闭后面接的 unit。

    restart:立刻关闭后启动后面接的 unit,亦即执行 stop 再 start 的意思。

    reload:不关闭 unit 的情况下,重新载入配置文件,让设置生效。

    enable:设置下次开机时,后面接的 unit 会被启动。

    disable:设置下次开机时,后面接的 unit 不会被启动。

    status:目前后面接的这个 unit 的状态,会列出有没有正在执行、开机时是否启动等信息。

    is-active:目前有没有正在运行中。

    is-enabled:开机时有没有默认要启用这个 unit。

    kill :不要被 kill 这个名字吓着了,它其实是向运行 unit 的进程发送信号。

    show:列出 unit 的配置。

    mask:注销 unit,注销后你就无法启动这个 unit 了。

    unmask:取消对 unit 的注销。

    我们先通过 etcd.service 来观察服务类型 unit 的基本信息:

    输出内容的第一行是对 unit 的基本描述。

    第二行中的 Loaded 描述操作系统启动时会不会启动这个服务,enabled 表示开机时启动,disabled 表示开机时不启动。而启动该服务的配置文件路径为:/lib/systemd/system/etcd.service。

    第三行 中的 Active 描述服务当前的状态,active (running) 表示服务正在运行中。如果是 inactive (dead) 则表示服务当前没有运行。后面则是服务的启动时间。

    第四行的 Docs 提供了在线文档的地址。

    下面的 Main PID 表示进程的 ID,接下来是任务的数量,占用的内存和 CPU 资源。

    再下面的 Cgroup 描述的是 cgrpup 相关的信息,笔者会在后续的文章中详细的介绍。

    最后是输出的日志信息。

    关于 unit 的启动状态,除了 enable 和 disable 之外还有:

    static:这个 unit 不可以自己启动,不过可能会被其它的 enabled 的服务来唤醒。

    mask:这个 unit 无论如何都无法被启动!因为已经被强制注销。可通过 systemctl unmask 改回原来的状态。

    关于 unit 的运行状态 Active,除了 active 和 inactive 之外还有:

    active (exited):仅执行一次就正常结束的服务,目前并没有任何程序在系统中执行。举例来说,开机或者是挂载时才会进行一次的 quotaon 功能,就是这种模式! Quotaon 不需要一直执行,只在执行一次之后,就交给文件系统去自行处理。通常用 bash shell 写的小型服务,大多是属于这种类型。

    active (waiting):正在执行当中,不过还再等待其他的事件才能继续处理。举例来说,打印的相关服务就是这种状态。

    enable 和 disable 操作

    比如我们为 etcd 服务创建了配置文件 /lib/systemd/system/etcd.service,然后执行 enable 命令:

    systemctl enable etcd.service

    所谓的 enable 就是在 multi-user.target.wants 下面创建了一个链接文件:

    至于为什么会链接到 multi-user.target.wants 目录下,则是由 etcd.server 文件中的配置信息决定的。

    查看 unit 的配置

    使用 show 子命令可以查看 unit 的详细配置情况:

     systemctl show etcd.service

    注销与反注销 unit

    如果我们想暂时的禁用某个 unit,比如 etcd.service,可以注销这个 unit,注销之后就无法再启动这个服务了:

    systemctl mask etcd.service

    从上图中的输出我们可以看到,所谓的注销就是把 etcd.service 文件链接到 /dev/null 这个空设备中去了。所以就无法再启动该服务了。下面我们尝试执行一次反注销:

    systemctl unmask etcd.service

    unmask 操作就是删除掉 mask 操作中创建的链接。

    查看系统上的 unit

    systemctl 提供了子命令可以查看系统上的 unit,命令格式为:

    systemctl [command] [--type=TYPE] [--all]

    command 有:

    list-units:列出当前已经启动的 unit,如果添加 -all 选项会同时列出没有启动的 unit

    list-unit-files:根据 /lib/systemd/system/ 目录内的文件列出所有的 unit

    --type=TYPE:可以过滤某个类型的 unit

    不带任何参数执行 systemctl 命令会列出所有已启动的 unit

    列举已经启动的unit

    systemctl list-units (或者直接 sudo systemctl)

    系统默认启动的服务是非常多的,上图只截取了前面几行。下面是对输出的介绍:

    UNIT:项目的名称,包括各个 unit 的类别(看扩展名)

    LOAD:开机时 unit 的配置是否被加载。

    ACTIVE:目前的状态,须与后续的 SUB 搭配!就是我们用 systemctl status 观察时,active的内容。

    DESCRIPTION:描述信息。

    注意,systemctl 不加参数,其实等同于 systemctl list-units

    查看系统上一共装了多个unit

    ​​​​​​​systemctl list-unit-files

    结果也非常的多,我们仍然只截取一部分结果。这里的 STATE 就是我们前面介绍的 服务的启动状态,有 enable disablestatic mask

    只查看某种类型的unit

    比如我们只查看服务类型的unit

    systemctl list-units --type=service -all

    查看加载失败的 unit

    如果发现某个 unit 不工作,可以查看是否有 unit 加载失败:

    ​​​​​​​systemctl --failed

    管理不同的操作环境(target unit)

    通过指定 --type=target 就可以用 systemctl list-units 命令查看系统中默认有多少种 target

    我们在此仅介绍几个常用的 target

    graphical.target:就是文字界面再加上图形界面,这个 target 已经包含了下面的 multi-user.target

    multi-user.target:纯文本模式!

    rescue.target:在无法使用 root 登陆的情况下,systemd 在开机时会多加一个额外的临时系统,与你原本的系统无关。这时你可以取得 root 的权限来维护你的系统。

    emergency.target:紧急处理系统的错误,在无法使用 rescue.target 时,可以尝试使用这种模式!

    shutdown.target:就是执行关机。

    getty.target:可以设置 tty 的配置。

    正常的模式是 multi-user.target graphical.target 两个,救援方面的模式主要是 rescue.target 以及更严重的 emergency.target。如果要修改可提供登陆的 tty 数量,则修改 getty.target

    下面是操作 target unit 命令的格式:

    systemctl [command] [unit.target]

    command 有:

    get-default:取得目前的 target

    set-default:设置后面接的 target 成为默认的操作模式。

    isolate:切换到后面接的模式。

    查看和设置默认的 target

    systemctl get-default

    切换 target

    我们还可以在不重新启动的情况下切换不同的 target,比如从图形界面切换到纯文本的模式:

    systemctl isolate multi-user.target

    在一般情况下,使用上述 isolate 的方式即可完成不同 target 的切换。不过为了方便起见,systemd 也提供了

    几个简单的指令用来切换操作模式,大致如下所示:

    sudo systemctl poweroff # 系统关机

    sudo systemctl reboot  # 重新开机

    sudo systemctl suspend  # 进入暂停模式

    sudo systemctl hibernate # 进入休眠模式

    sudo systemctl rescue  # 强制进入救援模式

    sudo systemctl emergency # 强制进入紧急救援模式

    这里简单介绍一下暂停模式与休眠模式的区别

    suspend:暂停模式会将系统的状态保存到内存中,然后关闭掉大部分的系统硬件,当然,并没有实际关机。当用户按下唤醒机器的按钮,系统数据会从内存中回复,然后重新驱动被大部分关闭的硬件,所以唤醒系统的速度比较快。

    hibernate:休眠模式则是将系统状态保存到硬盘当中,保存完毕后,将计算机关机。当用户尝试唤醒系统时,系统会开始正常运行,然后将保存在硬盘中的系统状态恢复回来。因为数据需要从硬盘读取,因此唤醒的速度比较慢(如果你使用的是 SSD 磁盘,唤醒的速度也是非常快的)

    检查 unit 之间的依赖性

    很多服务之间是有依赖关系的,systemd 的一大亮点就是可以管理 unit 之间的依赖关系。我们可以通过下面的命令来查看 unit 间的依赖关系:

    systemctl list-dependencies [unit] [--reverse] 选项 --reverse 会反向追踪是谁在使用这个 unit

    下面让我们看看当前运行的 target 的依赖关系:

    我们当前运行在 graphical.target 下,它由一个长长的依赖列表(上图并未展示所有的项目),其中最重要的依赖项目为 multi-user.target。下面我们使用 --reverse 选项查看 multi-user.target unit 被谁使用:

    systemctl list-dependencies multi-user.target --reverse

    从上面两张图上我们可以确定下面的关系:graphical.target 依赖 multi-user.target

    我们这里只是通过 target unit 介绍了如何查看 unit 之间的依赖关系,实际使用中更多的是检查服务 unit 之间的依赖关系。

    相关的目录和文件

    在不同的发行版中与 systemd 相关的文件路径可能会不太一样,强调一下,本文介绍的是 ubuntu 16.04

    /lib/systemd/system/ 大多数 unit 的配置文件都放在这个目录下。

    /run/systemd/system/ 系统运行过程中产生的脚本,比如用户相关的脚本和会话相关的脚本。

    /etc/systemd/system/ 这个目录中主要的文件都是指向 /lib/systemd/system/ 目录中的链接文件。

    注意,在我们自己创建 unit 配置文件时,既可以把配置文件放在 /lib/systemd/system/ 目录下,也可以放在 /etc/systemd/system/ 目录下。

    /etc/default/ 这个目录中放置很多服务默认的配置文件。

    /var/lib/ 一些会产生数据的服务都会将他的数据写入到 /var/lib/ 目录中,比如 docker 相关的数据文件就放在这个目录下。

    /run/ 这个目录放置了好多服务运行时的临时数据,比如 lock file 以及 PID file 等等。

    我们知道 systemd 里管理了很多会用到本机 socket 的服务,所以系统中肯定会产生很多的 socket 文件。那么,这些 socke 文件都存放在哪里呢?我们可以使用 systemctl 进行查看:

    systemctl list-sockets

    其实,绝大多数的 socket 文件都存放在 /run 目录及其子目录中。

    systemctl daemon-reload 子命令

    daemon-reload 是一个很容易被误用的子命令,主要是因为它名字中包含的 daemon 一词很容易让它和 reload 子命令混淆。

    我们在前文简略的介绍了 reload 子命令,它的作用是重新加载某个服务程序的配置文件。这里的程序指的是服务类型 unit 的配置中指定的程序,也就是我们常说的 daemon(提供某种服务的应用程序)。比如服务类型的 unit prometheus.service,提供服务的 daemon 程序在我的机器上是 /usr/local/share/prometheus/prometheus,所以 reload 子命令重新加载的是 prometheus 的配置文件。

    如果把 daemon-reload 子命令中的 daemon 理解为 systemd 程序,就可以把这个命令解释为重新加载 systemd 程序的配置文件。而所有的 unit 配置文件都是作为 systemd 程序的配置文件存在的。这样得出的结论就是:

    新添加 unit 配置文件时需要执行 daemon-reload 子命令

    unit 的配置文件发生变化时也需要执行 daemon-reload 子命令

    daemon-reload 命令会做很多的事情,其中之一是重新生成依赖树(也就是 unit 之间的依赖关系),所以当你修改了 unit 配置文件中的依赖关系后如果不执行 daemon-reload 命令是不会生效的。

    以上内容整理:

    Linux 服务管理两种方式service和systemctl - 迪米特 - 博客园

    https://www.jb51.net/article/136559.htm

    展开全文
  • Linux关闭防火墙命令

    万次阅读 多人点赞 2019-05-27 14:59:55
    一、下面是red hat/CentOs7关闭防火墙的命令! 1:查看防火状态 systemctl status firewalld service iptablesstatus 2:暂时关闭防火墙 systemctl stop firewalld service iptablesstop 3:永久关闭防火墙 ...

    一、下面是red hat/CentOs7关闭防火墙的命令!

    1:查看防火状态

    systemctl status firewalld

    service  iptables status

    2:暂时关闭防火墙

    systemctl stop firewalld

    service  iptables stop

    3:永久关闭防火墙

    systemctl disable firewalld

    chkconfig iptables off

    4:重启防火墙

    systemctl enable firewalld

    service iptables restart  

    5:永久关闭后重启

    //暂时还没有试过

    chkconfig iptables on

     

    二、firewalld

    Centos7默认安装了firewalld,如果没有安装的话,可以使用 yum install firewalld firewalld-config进行安装。

    1.启动防火墙

    systemctl start firewalld 

    2.禁用防火墙

    systemctl stop firewalld

    3.设置开机启动

    systemctl enable firewalld

    4.停止并禁用开机启动

    sytemctl disable firewalld

    5.重启防火墙

     

    firewall-cmd --reload
    

    6.查看状态

    systemctl status firewalld或者 firewall-cmd --state

    7.查看版本

    firewall-cmd --version

    8.查看帮助

    firewall-cmd --help

    9.查看区域信息

    firewall-cmd --get-active-zones

    10.查看指定接口所属区域信息

    firewall-cmd --get-zone-of-interface=eth0

    11.拒绝所有包

    firewall-cmd --panic-on

    12.取消拒绝状态

    firewall-cmd --panic-off

    13.查看是否拒绝

    firewall-cmd --query-panic

    14.将接口添加到区域(默认接口都在public)

    firewall-cmd --zone=public --add-interface=eth0(永久生效再加上 --permanent 然后reload防火墙)

    15.设置默认接口区域

    firewall-cmd --set-default-zone=public(立即生效,无需重启)

    16.更新防火墙规则

    firewall-cmd --reload或firewall-cmd --complete-reload(两者的区别就是第一个无需断开连接,就是firewalld特性之一动态
    添加规则,第二个需要断开连接,类似重启服务)

    17.查看指定区域所有打开的端口

     

    firewall-cmd --zone=public --list-ports

    18.在指定区域打开端口(记得重启防火墙)

     

    firewall-cmd --zone=public --add-port=80/tcp(永久生效再加上 --permanent)
    

    说明:
    –zone 作用域
    –add-port=8080/tcp 添加端口,格式为:端口/通讯协议
    –permanent #永久生效,没有此参数重启后失效

    补充:

    CentOS 7 下使用 Firewall 

    在 CentOS 7 中,引入了一个新的服务,Firewalld,下面一张图,让大家明确的了解 Firewall 与 iptables 之间的关系与区别。

    firewall stack

    安装它,只需

    # yum install firewalld
    

    如果需要图形界面的话,则再安装

    # yum install firewall-config
    

    一、介绍

    防火墙守护 firewalld 服务引入了一个信任级别的概念来管理与之相关联的连接与接口。它支持 ipv4 与 ipv6,并支持网桥,采用 firewall-cmd (command) 或 firewall-config (gui) 来动态的管理 kernel netfilter 的临时或永久的接口规则,并实时生效而无需重启服务。

    zone

    Firewall 能将不同的网络连接归类到不同的信任级别,Zone 提供了以下几个级别

    • drop: 丢弃所有进入的包,而不给出任何响应
    • block: 拒绝所有外部发起的连接,允许内部发起的连接
    • public: 允许指定的进入连接
    • external: 同上,对伪装的进入连接,一般用于路由转发
    • dmz: 允许受限制的进入连接
    • work: 允许受信任的计算机被限制的进入连接,类似 workgroup
    • home: 同上,类似 homegroup
    • internal: 同上,范围针对所有互联网用户
    • trusted: 信任所有连接

    过滤规则

    • source: 根据源地址过滤
    • interface: 根据网卡过滤
    • service: 根据服务名过滤
    • port: 根据端口过滤
    • icmp-block: icmp 报文过滤,按照 icmp 类型配置
    • masquerade: ip 地址伪装
    • forward-port: 端口转发
    • rule: 自定义规则

    其中,过滤规则的优先级遵循如下顺序

    1. source
    2. interface
    3. firewalld.conf

    二、使用方法

    # systemctl start firewalld         # 启动,
    # systemctl enable firewalld        # 开机启动
    # systemctl stop firewalld          # 关闭
    # systemctl disable firewalld       # 取消开机启动
    

    具体的规则管理,可以使用 firewall-cmd,具体的使用方法可以

    $ firewall-cmd --help
    
    --zone=NAME                         # 指定 zone
    --permanent                         # 永久修改,--reload 后生效
    --timeout=seconds                   # 持续效果,到期后自动移除,用于调试,不能与 --permanent 同时使用
    

    1. 查看规则

    查看运行状态

    $ firewall-cmd --state
    

    查看已被激活的 Zone 信息

    $ firewall-cmd --get-active-zones
    public
      interfaces: eth0 eth1
    

    查看指定接口的 Zone 信息

    $ firewall-cmd --get-zone-of-interface=eth0
    public
    

    查看指定级别的接口

    $ firewall-cmd --zone=public --list-interfaces
    eth0
    

    查看指定级别的所有信息,譬如 public

    $ firewall-cmd --zone=public --list-all
    public (default, active)
      interfaces: eth0
      sources:
      services: dhcpv6-client http ssh
      ports:
      masquerade: no
      forward-ports:
      icmp-blocks:
      rich rules:
    

    查看所有级别被允许的信息

    $ firewall-cmd --get-service
    

    查看重启后所有 Zones 级别中被允许的服务,即永久放行的服务

    $ firewall-cmd --get-service --permanent
    

    2. 管理规则

    # firewall-cmd --panic-on           # 丢弃
    # firewall-cmd --panic-off          # 取消丢弃
    # firewall-cmd --query-panic        # 查看丢弃状态
    # firewall-cmd --reload             # 更新规则,不重启服务
    # firewall-cmd --complete-reload    # 更新规则,重启服务
    

    添加某接口至某信任等级,譬如添加 eth0 至 public,永久修改

    # firewall-cmd --zone=public --add-interface=eth0 --permanent
    

    设置 public 为默认的信任级别

    # firewall-cmd --set-default-zone=public
    

    a. 管理端口

    列出 dmz 级别的被允许的进入端口

    # firewall-cmd --zone=dmz --list-ports
    

    允许 tcp 端口 8080 至 dmz 级别

    # firewall-cmd --zone=dmz --add-port=8080/tcp
    

    允许某范围的 udp 端口至 public 级别,并永久生效

    # firewall-cmd --zone=public --add-port=5060-5059/udp --permanent
    

    b. 网卡接口

    列出 public zone 所有网卡

    # firewall-cmd --zone=public --list-interfaces
    

    将 eth0 添加至 public zone,永久

    # firewall-cmd --zone=public --permanent --add-interface=eth0
    

    eth0 存在与 public zone,将该网卡添加至 work zone,并将之从 public zone 中删除

    # firewall-cmd --zone=work --permanent --change-interface=eth0
    

    删除 public zone 中的 eth0,永久

    # firewall-cmd --zone=public --permanent --remove-interface=eth0
    

    c. 管理服务

    添加 smtp 服务至 work zone

    # firewall-cmd --zone=work --add-service=smtp
    

    移除 work zone 中的 smtp 服务

    # firewall-cmd --zone=work --remove-service=smtp
    

    d. 配置 external zone 中的 ip 地址伪装

    查看

    # firewall-cmd --zone=external --query-masquerade
    

    打开伪装

    # firewall-cmd --zone=external --add-masquerade
    

    关闭伪装

    # firewall-cmd --zone=external --remove-masquerade
    

    e. 配置 public zone 的端口转发

    要打开端口转发,则需要先

    # firewall-cmd --zone=public --add-masquerade
    

    然后转发 tcp 22 端口至 3753

    # firewall-cmd --zone=public --add-forward-port=port=22:proto=tcp:toport=3753
    

    转发 22 端口数据至另一个 ip 的相同端口上

    # firewall-cmd --zone=public --add-forward-port=port=22:proto=tcp:toaddr=192.168.1.100
    

    转发 22 端口数据至另一 ip 的 2055 端口上

    # firewall-cmd --zone=public --add-forward-port=port=22:proto=tcp:toport=2055:toaddr=192.168.1.100
    

    f. 配置 public zone 的 icmp

    查看所有支持的 icmp 类型

    # firewall-cmd --get-icmptypes
    destination-unreachable echo-reply echo-request parameter-problem redirect router-advertisement router-solicitation source-quench time-exceeded
    

    列出

    # firewall-cmd --zone=public --list-icmp-blocks
    

    添加 echo-request 屏蔽

    # firewall-cmd --zone=public --add-icmp-block=echo-request [--timeout=seconds]
    

    移除 echo-reply 屏蔽

    # firewall-cmd --zone=public --remove-icmp-block=echo-reply
    

    g. IP 封禁

    # firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='222.222.222.222' reject"
    

    当然,我们仍然可以通过 ipset 来封禁 ip

    封禁 ip

    # firewall-cmd --permanent --zone=public --new-ipset=blacklist --type=hash:ip
    # firewall-cmd --permanent --zone=public --ipset=blacklist --add-entry=222.222.222.222
    

    封禁网段

    # firewall-cmd --permanent --zone=public --new-ipset=blacklist --type=hash:net
    # firewall-cmd --permanent --zone=public --ipset=blacklist --add-entry=222.222.222.0/24
    

    导入 ipset 的 blacklist 规则

    # firewall-cmd --permanent --zone=public --new-ipset-from-file=/path/blacklist.xml
    

    如果已经存 blacklist,则需要先删除

    # firewall-cmd --get-ipsets
    blacklist
    # firewall-cmd --permanent --zone=public --delete-ipset=blacklist
    

    然后封禁 blacklist

    # firewall-cmd --permanent --zone=public --add-rich-rule='rule source ipset=blacklist drop'
    

    重新载入以生效

    # firewall-cmd --reload
    

    查看 blacklist

    # firewall-cmd --ipset=blacklist --get-entries
    

    以上都是一些常用方法,更多高级方法,请参考:

    展开全文
  • linux中sudo命令sudo or superuser do is a utility used on Linux, BSD, and Unix systems that provides the running command with root or Administrator privileges. Not every user needs to have root ...
    linux中sudo命令

    linux中sudo命令

    sudo or superuser do is a utility used on Linux, BSD, and Unix systems that provides the running command with root or Administrator privileges. Not every user needs to have root privileges but in some cases needs to run commands with root privileges. We can use sudo to run some specific or all provided commands and edit files with the root privileges.

    sudo或superuser do是在Linux,BSD和Unix系统上使用的实用程序,它为运行的命令提供root或Administrator特权。 并非每个用户都需要具有root特权,但是在某些情况下,需要以root特权运行命令。 我们可以使用sudo运行某些特定的或所有提供的命令,并以root特权编辑文件。

    sudo配置文件sudoers (sudo Configuration File sudoers)

    sudo command is configuration is stored /etc/sudoers file. This file can be only viewed and edit with root privileges. We can edit this just with visudo command like below.

    sudo命令是配置存储在/etc/sudoers文件中。 只能使用root特权查看和编辑此文件。 我们可以使用visudo命令来编辑它,如下所示。

    $ sudo visudo
    sudo Configuration File sudoers
    sudo Configuration File sudoers
    sudo配置文件sudoers

    We can see that there is a different part of the sudoers configuration file where default values, user and group privileges are provided.

    我们可以看到sudoers配置文件的不同部分提供了默认值,用户和组特权。

    配置语法 (Configuration Syntax)

    We can use the following syntax in order to create a sudo configuration about the given user or group.

    我们可以使用以下语法来创建有关给定用户或组的sudo配置。

    USER HOSTLIST=(USERLIST) COMMANDLIST
    • USER is the user who can run the given command on the given host

      USER是可以在给定主机上运行给定命令的用户
    • HOSTLIST is the hosts where given commands can be run

      HOSTLIST是可以运行给定命令的主机
    • COMMANDLIST is the commands can be run. Multiple commands can be delimited with the comma.

      COMMANDLIST是可以运行的命令。 多个命令可以用逗号分隔。

    指定要运行Sudo命令的用户 (Specify A User To Run Sudo Command)

    We can add a user to run a specific command with root privileges. In this example, we will add user ismail to run command visudo with root privileges.

    我们可以添加一个用户以root权限运行特定的命令。 在此示例中,我们将添加用户ismail以root特权运行命令visudo

    ismail ALL=(ALL:ALL) /usr/sbin/visudo
    Specify A User To Run Sudo Command
    Specify A User To Run Sudo Command
    指定要运行Sudo命令的用户

    无密码Sudo命令(Passwordless Sudo Command)

    We can provide sudo command to the given user without any password. We will use NOPASSWD configuration like below which will disable password for the user ismail.

    我们可以在没有任何密码的情况下向给定用户提供sudo命令。 我们将使用如下所示的NOPASSWD配置,它将禁用用户ismail密码。

    ismail ALL=NOPASSWD:/usr/sbin/visudo

    列出可用命令 (List Available Commands)

    We can list available commands with the -l option which will list currently used root privileged commands the current user can execute.

    我们可以使用-l选项列出可用的命令,该选项将列出当前用户可以执行的当前使用的root特权命令。

    $ sudo -l
    List Available Commands
    List Available Commands
    列出可用命令

    以root权限运行命令(Run Command with Root Privileges)

    In this example, we will run commands with root privileges by using sudo command. We will run ls command in the /root directory which is completely owned by root and only used by the root user.

    在此示例中,我们将使用sudo命令以root特权运行命令。 我们将在/root目录中运行ls命令,该目录完全由root拥有,并且仅由root用户使用。

    $ sudo ls /root

    使用根权限编辑文件 (Edit File with Root Privileges)

    We also edit files with the root privileges by using sudo command. We will edit the /etc/passwd file with the vim command like below.

    我们还使用sudo命令以root特权编辑文件。 我们将使用vim命令编辑/etc/passwd文件,如下所示。

    $ sudo vim /etc/passwd
    Edit File with Root Privileges
    Edit File with Root Privileges
    使用根权限编辑文件

    sudo和su之间的区别(Difference Between sudo and su)

    su command is used to login as root user on the other side sudo command just runs given command as root in the current user sessions. While running sudo command the user name will be also logged but with the sudo command just the root user name will be logged. The best way to

    su命令用于在另一侧以root用户身份登录sudo命令仅在当前用户会话中以root用户身份运行给定命令。 在运行sudo命令时,还将记录用户名,但是使用sudo命令将仅记录root用户名。 最好的方法

    LEARN MORE  How To Download and Install Kali Security and Penetration Test Linux Distribution?
    了解更多信息如何下载和安装Kali Security and Penetration Test Linux发行版?

    翻译自: https://www.poftut.com/what-is-sudo-command-in-linux/

    linux中sudo命令

    展开全文
  • linux中ls命令详解

    千次阅读 2020-11-29 16:07:17
    -a 显示所有文件(all, linux中隐藏文件以"."开头) -l 详细信息显示(long) -d 查看目录属性(diretory) -i 查看文件iNode号(每一个文件特殊的标识) -h 信息的人性化显示(human) 二、ls -lh后显示信息详解 ...

    一、ls命令介绍
    ls命令英文原意:list
    命令所在路径:/bin/ls
    执行权限:所有用户
    功能描述:显示目录文件
    语法:ls 选项[-ald][文件或目录]
    -a 显示所有文件(all, linux中隐藏文件以"."开头)
    -l 详细信息显示(long)
    -d 查看目录属性(diretory)
    -i 查看文件iNode号(每一个文件特殊的标识)
    -h 信息的人性化显示(human)
    二、ls -lh后显示信息详解
    在这里插入图片描述
    显示的信息从左到右依次代表

    1. 文件权限:首位分为“-:文件”,“d:目录”,“l:软链接”,剩下其余9位每三位为一个整体代表所属用户权限、所属组权限、其他用户权限(-:无权限,r:读权限,w:写权限,x:执行权限)。
    2. 文件引用次数
    3. 文件所属用户
    4. 文件所属组
    5. 文件大小
    6. 文件最后更改日期(若创建后未更改则为创建日期)
    7. 文件名
    展开全文
  • linux中dir命令参数应用

    千次阅读 2014-01-18 15:57:43
    以下是linux中dir命令参数的使用方法. linux中dir命令参数功能: linux中dir命令参数支持的命令格式为: DIR [filename] [/O[sortorder]] [/S] [/W] linux中dir命令参数不区分大小写,支持多参数。 ...
  • linux中apt命令

    万次阅读 2017-11-18 16:35:42
    一般来讲apt命令需要获得root,所以一般在前边加上sudo,一般格式...在修改/etc/apt/sources.list或/etc/apt/preferences之后运行该命令。需要定期运行这一命令以确保您的软件包列表是最新的。 apt-get install packag
  • LinuxLinux基础常用命令1(常用Linux命令的基本使用,Linux终端命令格式)1. 常用Linux命令的基本使用1.1 学习Linux终端命令的原因1.2 常用Linux命令的基本使用1.3 自动补全2. Linux终端命令格式2.1 终端命令...
  • Linux常用命令大全(非常全!!!)

    万次阅读 多人点赞 2019-07-25 16:40:12
    Linux常用命令大全(非常全!!!) 最近都在和Linux打交道,感觉还不错。我觉得Linux相比windows比较麻烦的就是很多东西都要用命令来控制,当然,这也是很多人喜欢linux的原因,比较短小但却功能强大。我将我了解...
  • Linux中vi命令详解

    万次阅读 多人点赞 2018-01-21 10:31:37
    最近vi用的多,很多技巧不知道,备注一份, vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器,...Vi也是Linux中最基本的文本编 辑器,学会它后,您将在Linux的世界里畅行无阻。
  • Linux中rz命令无法使用

    万次阅读 2017-12-21 11:27:46
    Linux里面加入 # yum list installed lrzsz 但是输入rz命令没有出现本地窗口,而是打印出waiting to receive.和一串不明其意的字符 这是因为rz命令需要终端的支持(即rz命令是在客户端里面执行的),比如终端...
  • linux中ftp命令的使用介绍

    千次阅读 2019-03-01 09:37:52
    本文,介绍在 Linux shell 如何使用 ftp 命令。包括如何连接 FTP 服务器,上传或下载文件以及创建文件夹。尽管现在有许多不错的 FTP 桌面应用,但是在服务器、SSH、远程会话命令行 ftp 命令还是有很多应用的。...
  • linux常用的命令,入门学习linux值得拥有

    万次阅读 多人点赞 2021-07-30 11:11:59
    linux常用的命令文件/目录的基本操作01.ls命令02.pwd命令03.cd命令04.touch命令05.mkdir命令06.rm命令07.cp命令08.mv命令09.cat命令10.man命令11.less命令12.head命令13.tail命令14.date命令搭建部署环境1....
  • linux中unzip命令用不了原因

    万次阅读 2016-05-23 18:13:22
    linux中unzip命令用不了原因
  • linux中获取命令帮助信息

    千次阅读 2016-09-16 17:05:57
    man 命令man命令:可以通过一些参数,快速查询linux帮助手册,并且格式化显示。快用语法:man [-adfhktwW] [section] [-M path] [-P pager] [-S list] [-m system] [-p string] title.. 参数用法: -a 显示所有...
  • HDFS在Linux中操作命令

    千次阅读 2018-11-18 20:53:35
    以上指令均是在 Linux 命令行窗口界面操作。 [ ]表示可选参数,表示必须参数。 3,常用命令参数介绍 1,帮助: hadoop fs -help hadoop fs -help ls 2,HDFS上操作文件或文件夹 -ls 显示目录信息 ...
  • C++|Linux工作笔记-C++获取Linux中shell命令结果

    千次阅读 多人点赞 2019-12-07 19:42:59
    目录 基本概念 代码与实例 ...这里首先介绍一条Linux函数: ...这个可以当前Linux系统运行的进程 ...在Linux中一般使用这种方式获取shell命令的结果: FILE *fp; fp = popen("ps -ef | awk {'print $2,$8,...
  • Linux常用命令

    万次阅读 多人点赞 2019-05-28 16:17:26
    Linux常用命令 1.查看目录结构命令 ls(list)功能:列出目录内容 格式:ls[参数][文件或目录] -a或--all 所有文件和目录。注意隐藏文件、特殊目录、以“.”开头的和以“..”开头的 -l 使用详细格式列表 -t 用...
  • linux的cat命令使用The cat command is very useful in Linux. It has three main functions related to manipulating text files: creating them, ... cat命令Linux中非常有用。 它具有与操纵文本文件相...
  • linux中apt命令介绍

    万次阅读 2011-07-16 16:27:30
    软件包维护apt-get update - 在你更改了/etc/apt/sources.list 或 /etc/apt/preferences 后,需要运行这个命令以令改动生效。同时也要定期运行该命令,以确保你的源列表是最新的。该命令等价于新立得软件包管理器...
  • linux中screen命令的用法

    千次阅读 2013-07-31 14:50:08
    linux中screen命令的用法 From: http://www.9usb.net/201002/linux-screen-mingling.html 作为linux服务器管理员,经常要使用ssh登陆到远程linux机器上做一些耗时的操作。 也许你遇到过使用telnet或SSH远程登录...
  • Linux中chkconfig命令

    千次阅读 2007-04-29 11:38:00
    chkconfig: chkconfig命令主要用来更新(启动或停止)和查询系统服务的运行级信息。谨记chkconfig不是立即自动禁止或激活一个服务,它只是简单的改变了符号连接。语法: chkconfig --list [name] chkconfig --...
  • Linux运维常用命令汇总

    万次阅读 2017-12-02 00:16:23
    help查看 Linux 内置命令的帮助,比如 cd 命令。 文件和目录操作命令 (18 个) ls全拼 list,功能是列出目录的内容及其内容属性信息。  cd全拼 change directory,功能是从当前工作目录切换到指定的...
  • Linux系统编程常用命令总结

    万次阅读 多人点赞 2019-08-14 23:08:29
    一、Linux常用命令 1、常用工具 2、目录和文件命令 3、安装和卸载软件命令 4、压缩包管理 5、文件属性、用户用户组及查找与检索命令 6、网络管理命令 7、其他命令 二、Linux vi/vim常用命令 三、Linux下...
  • linux 卸载软件命令Linux provides different methods for installing software. You can install software from the standard Ubuntu software repositories using the Ubuntu Software Center, from outside of ...
  • LinuxLinux常用命令

    万次阅读 2018-05-29 09:55:03
    Linux是一个可靠的、高性能的系统,而所有的这些优越性只有在直接使用Linux命令行时才能充分地体现出来。Linux系统安装成功后,就可以进入到与Windows类似的图形化界面了。这个界面就是Linux图形化界面X窗口系统的一...
  • linux wget 命令In this tutorial, let’s learn how to download a file using the wget command in Linux. For any Linux user, downloading files is a frequent task. While you can download things using your...
  • 命令用途 locate 让使用者可以很快速的搜寻档案系统内是否有指定的档案。 其方法是先建立一个包括系统内所有档案名称及路径的数据库,之后当寻找时就只需查询这个数据库,而不必实际深入档案系统之了。 所以...
  • Linux各常用命令缩写

    万次阅读 2017-10-26 12:13:10
    Linux各常用命令缩写 ls:list(列出目录内容) cd:Change Directory(改变目录) su:switch user 切换用户 rpm:redhat package manager 红帽子打包管理器 pwd:print work directory 打印当前目录 显示出当前...
  • Linux中rpm命令参数使用详解

    万次阅读 2016-09-14 18:16:45
    Linux中rpm命令参数是我们在更新或升级中常用到它了,下面本文就来介绍rpm命令参数详解,希望对各位朋友。 rpm 执行安装包 二进制包(Binary)以及源代码包(Source)两种。二进制包可以直接安装在计算机...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 418,861
精华内容 167,544
关键字:

linux中list命令

linux 订阅