标签: sudo

如何通过 sudo 授予用户仅修改特定受保护文件

我需要授予用户通过 sudo 修改某些仅具有只读访问权限的文件。

例如,我想授予用户“ hosteditor ”修改“ /etc/hosts ”文件。我向 sudoers 添加了以下行:

hosteditor ALL=(root) /usr/bin/vim /etc/hosts
Run Code Online (Sandbox Code Playgroud)

现在,用户hosteditor只能使用vim来修改/etc/hosts文件。但是如果这些用户在修改文件时输入!/bin/sh,他将获得以root权限执行所有命令的权限。

我应该做什么来授予用户仅修改特定文件而不可能破解系统。

centos sudo

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

awscli v2 需要 sudo 才能运行,否则会出现权限被拒绝错误 ubuntu 20.04.01

我已经按照此处的官方 AWS 说明安装了 awscli V2 :

$ curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
$ unzip awscliv2.zip
$ sudo ./aws/install
Run Code Online (Sandbox Code Playgroud)

安装似乎工作正常,除了我无法在没有 sudo 的情况下使用 aws 命令。

$ sudo aws --version
$ aws-cli/2.0.50 Python/3.7.3 Linux/5.4.0-47-generic exe/x86_64.ubuntu.20
Run Code Online (Sandbox Code Playgroud)

没有须藤...

$ aws --version

Command 'aws' not found, but can be installed with:

sudo snap install aws-cli  # version 1.15.58, or
sudo apt  install awscli   # version 1.18.69-1ubuntu0.20.04.1

See 'snap info aws-cli' for additional versions.
Run Code Online (Sandbox Code Playgroud)

更多细节:

$ which aws # displays nothing
$ sudo which aws
/usr/local/bin/aws …
Run Code Online (Sandbox Code Playgroud)

linux permissions sudo aws-cli

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

用于 sudo 的 Debian 和 LDAP

我在 debian 上并希望 sudo 使用 ldap 而不是 /etc/sudoers。任何人都有这样做的经验?

sudo

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

Debian 服务器中用户/组的最佳实践

在我最初获得凭据后,在我的服务器/vps 上:

adduser meder
visudo
Run Code Online (Sandbox Code Playgroud)

在visudo中,在最底部:

meder    ALL=(ALL) ALL
Run Code Online (Sandbox Code Playgroud)

从那时起,我将meder, 与sudo命令一起使用。这几乎是我应该做的吗?

和创建用户组的话题,使得www-datameder可以访问相同的文件,我应该给什么具体的权限,我应该怎么设定,让双方可以接触相同的文件(将是巨大的,如果示例代码是为我提供”我还没有那么流利)。

debian sudo user-permissions debian-lenny

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

ssh 到多个主机和 sudo 多个命令

我需要循环和 ssh 到多个主机并在每个主机上运行一系列命令。

就像是:

for i in $(jot -w '%02.0f' 14 1)
>do ssh user@host$i sudo -i "command1; command2; command3"
>done
Run Code Online (Sandbox Code Playgroud)

但我无法让它正常工作。我在 Google 上看到了各种各样的东西,比如sudo sh -c管道到 sudo 等,但无法弄清楚。

  • 我是 ssh 的普通用户,可以在没有密码的情况下使用 sudo(ssh 作为 root 未启用)
  • command1 不返回 0 不应阻止 command2 运行等,因此 ;
  • 我正在从 mac 运行循环,因此jot -w,这大致相当于seq -f在 linux 中
  • SSH 到 CentOS 5.4
  • 我希望它与 root 的 $PATH 一起运行,所以我不必指定命令的完整路径,但这并不是完全必要的

提前致谢!

linux bash mac-osx sudo

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

设置 RHEL/CentOS 5 以在命令行和 X 中使用 SUDO

如何让我的CentOS / RHEL提示我要我的密码(而不是根)当我运行特权命令。我找到了许多详细说明如何为命令行执行此操作的指南,但我希望它也适用于 X windows 应用程序。

或者换句话说:我如何让 RHEL/CentOS 表现得像 Ubuntu。

linux redhat authentication sudo

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

传递变量问题 - Bash

我有以下问题:

#!/bin/bash
NUM=`cat accounts | wc -l`;
for i in {1..$NUM}
do
   account=`awk "NR==$i" accounts`;
    echo -e "\nAccount: $account\n";
  sudo ./backup_maildir $account;
done
Run Code Online (Sandbox Code Playgroud)

“accounts”是一个包含常规电子邮件地址的文件,每行一个。
backup_maildir 是期望脚本。

执行主脚本时,第 6 行成功回显当前邮件地址,但下一行没有将该字符串传递给 backup_maildir 脚本。如果 $account 变量是 user@domain.com,则传递给 backup_maildir 的字符串是 {user@domain.com?} ?! 这怎么可能?如何解决?

scripting bash sudo awk

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

在 /etc/sudoers 中更改什么以允许重新启动服务?

我希望非特权用户能够在我的服务器上重新启动 tomcat。所以我编辑 /etc/sudoers 如下

username  ALL=/etc/init.d/tomcat6
Run Code Online (Sandbox Code Playgroud)

但是,当用户运行 /etc/init.d/tomcat6 restart 时,他收到此错误:

Starting tomcat server...
 touch: cannot touch `/var/tomcat6/logs/catalina.out': Permission denied
/var/tomcat6/bin/catalina.sh: line 314: /var/tomcat6/logs/catalina.out: Permission denied
Run Code Online (Sandbox Code Playgroud)

我如何允许该用户运行 tomcat 而不授予他对日志文件 /var/tomcat6/logs/catalina.out 的写权限?

[root@jsp1 ~]# ll /var/tomcat6/logs/catalina.out
-rw-r--r-- 1 root root 272669097 Feb 27 21:50 /var/tomcat6/logs/catalina.out
Run Code Online (Sandbox Code Playgroud)

tomcat sudo

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

如何启用非 sudo 用户访问所有进程的顶部?

我使用 Ubuntu 服务器 10.04。我的用户通常无权访问 sudo。当该用户使用 top 命令时,他只能看到当前用户的进程。我添加了一行/etc/sudoers

user ALL = NOPASSWD: /usr/bin/top
Run Code Online (Sandbox Code Playgroud)

但是现在我们不仅可以访问系统进程列表,还可以杀死它们,这是不希望的。

有没有其他方法可以做到这一点?

security ubuntu hosting sudo top

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

使用 sudo 检查其他用户的邮件

如何在 Linux (CentOS) 中查看其他用户的邮箱?基本上我想复制

$ mail
Run Code Online (Sandbox Code Playgroud)

命令,但当作为另一个用户 sudo 时。

现在如果我试着去做

$ sudo -u johndoe mail
Run Code Online (Sandbox Code Playgroud)

我得到

/var/spool/mail/jordan: Permission denied
Run Code Online (Sandbox Code Playgroud)

如果我使用同样的东西

$ sudo su johndoe
Run Code Online (Sandbox Code Playgroud)

然后运行mail命令。

email sudo

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