我需要授予用户通过 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权限执行所有命令的权限。
我应该做什么来授予用户仅修改特定文件而不可能破解系统。
我已经按照此处的官方 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) 我在 debian 上并希望 sudo 使用 ldap 而不是 /etc/sudoers。任何人都有这样做的经验?
在我最初获得凭据后,在我的服务器/vps 上:
adduser meder
visudo
Run Code Online (Sandbox Code Playgroud)
在visudo中,在最底部:
meder ALL=(ALL) ALL
Run Code Online (Sandbox Code Playgroud)
从那时起,我将meder, 与sudo命令一起使用。这几乎是我应该做的吗?
和创建用户组的话题,使得www-data和meder可以访问相同的文件,我应该给什么具体的权限,我应该怎么设定,让双方可以接触相同的文件(将是巨大的,如果示例代码是为我提供”我还没有那么流利)。
我需要循环和 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 等,但无法弄清楚。
; jot -w,这大致相当于seq -f在 linux 中提前致谢!
如何让我的CentOS / RHEL提示我要我的密码(而不是根)当我运行特权命令。我找到了许多详细说明如何为命令行执行此操作的指南,但我希望它也适用于 X windows 应用程序。
或者换句话说:我如何让 RHEL/CentOS 表现得像 Ubuntu。
我有以下问题:
#!/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?} ?! 这怎么可能?如何解决?
我希望非特权用户能够在我的服务器上重新启动 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) 我使用 Ubuntu 服务器 10.04。我的用户通常无权访问 sudo。当该用户使用 top 命令时,他只能看到当前用户的进程。我添加了一行/etc/sudoers:
user ALL = NOPASSWD: /usr/bin/top
Run Code Online (Sandbox Code Playgroud)
但是现在我们不仅可以访问系统进程列表,还可以杀死它们,这是不希望的。
有没有其他方法可以做到这一点?
如何在 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命令。