小编gan*_*ars的帖子

我没有获得权限,编辑 /etc/sudoers

我想在不询问 root 密码的情况下运行任何程序。因为我是唯一使用该系统的人。所以我用谷歌搜索并编辑了/etc/sudoers.

我做了什么:

# chmod 640 /etc/sudoers
# vim /etc/sudoers
Run Code Online (Sandbox Code Playgroud)

添加如下一行:

# User privilege specification
root    ALL=(ALL:ALL) ALL
sgg ALL=(ALL:ALL) ALL
Run Code Online (Sandbox Code Playgroud)

保存并关闭文件。重新启动系统。但没有改变/改进。我想更改任何其他线路吗?或者有什么办法吗?

编辑:

1.我将权限更改/etc/sudoers0440. ls -l /etc/sudoers结果是

-r--r----- 1 root root 772 May  4 19:43 /etc/sudoers
Run Code Online (Sandbox Code Playgroud)

2.我跑# visudo。文件内容是

Defaults        env_reset
Defaults        mail_badpass
Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

# Host alias specification

# User alias specification

# Cmnd alias specification

# User privilege specification
root    ALL=(ALL:ALL) ALL
sgg ALL=NOPASSWD:ALL

# Members of the admin …
Run Code Online (Sandbox Code Playgroud)

root sudo privileges

9
推荐指数
1
解决办法
4万
查看次数

我是否每次都必须编译内核,即使是很小的改动?

在我的项目中,我在block/ioctl.c. 我们都知道内核编译和构建需要几个小时。即使是一个小的改变,我也是从头开始编译的。那么有没有办法只编译和构建更改的文件?

linux compiling kernel kernel-modules

7
推荐指数
1
解决办法
7386
查看次数

仅对特定/专用 pid 运行进程

我有我想经常运行的 ac 程序可执行文件或 shell 脚本。如果我想停止/暂停或通知某事,我将向该进程发送信号。所以每次我必须检查pid那个进程的时候,我必须用它kill来发送一个信号。

每次我必须检查pid并记住系统关闭时,真的很糟糕。我希望该进程pid只能init总是在 1 上运行一样运行。

是否有任何 C api?并且还需要bash程序的脚本。

process kill job-control pid

7
推荐指数
2
解决办法
2万
查看次数

文件中的字符串作为变量

我有一个如下所示的 conf 文件内容。

文件.conf:

key="name"
value="pswd"
Run Code Online (Sandbox Code Playgroud)

现在我想写一个脚本来拥有两个像上面一样的变量

脚本文件

key="name"      #key as variable
value="pswd"    #value as variable
Run Code Online (Sandbox Code Playgroud)

shell-script files

4
推荐指数
1
解决办法
201
查看次数

打印带有接口名称的 IP 地址

我想显示如下 IP 地址

lo : 127.0.0.1 
eth0 : 192.168.5.123
eth1 : 192.172.0.212
wlan0 : 10.1.0.124
Run Code Online (Sandbox Code Playgroud)

我可以通过ifconfig | awk '/inet addr/{print substr($2,6)}'. 但它只是打印 IP。每个系统都有自己的接口名称和地址。所以我的脚本必须显示它们与 IP 地址相关的接口。

shell-script

3
推荐指数
2
解决办法
9164
查看次数

获取字符串中子字符串的下一个单词

我需要获取字符串中单词的下一个单词。我试图写一个脚本,但它不起作用。如果您向我建议任何其他替代方案来实现这一目标,那就太好了。

脚本:

#!/bin/bash
opts="OPTS=\"-name user -age 20 -where Asia -eats Brains\""
echo $opts
ok="0"
for word in $opts; do
  if [ "$word" = "-where" ] ; then
    if [ "$ok" = "1" ] ; then
      echo $word
      break
    fi
    ok="1"
  fi
done
Run Code Online (Sandbox Code Playgroud)

我想在“-where”之后得到这个词。但上面的脚本不起作用。我不明白我在哪里失踪。谢谢。

bash shell-script

2
推荐指数
2
解决办法
6328
查看次数

重复替换字符串

当我执行命令时

sudo iwlist wlan0 scan  | grep ESSID
Run Code Online (Sandbox Code Playgroud)

我得到结果:

ESSID:"DHS_3RD_FLOOR" ESSID:"MAXTA" ESSID:"MAXTA_5THWL" ESSID:"OPENSTACK" ESSID:"IOT" ESSID:"ved_opa" ESSID:"dlink" ESSID:"WifiFeazt"
Run Code Online (Sandbox Code Playgroud)

但我希望输出为:(没有 ESSID:")

DHS_3RD_FLOOR MAXTA MAXTA_5THWL OPENSTACK IOT ved_opa dlink WifiFeazt
Run Code Online (Sandbox Code Playgroud)

我用谷歌搜索,但我不知道该怎么做。

有什么建议吗?

bash

1
推荐指数
1
解决办法
272
查看次数