我正在尝试解决这个问题,但还没有找到正确的答案:
是否有可能将用户添加到/etc/sudoers 仅与使用权sudo -u为特定用户?
我尝试限制备份守护程序的用户(需要对客户端计算机的 root 访问权限),以便它只能使用它需要的一个命令。因此,在 /etc/sudoers 中,我使用
daemonuser ALL=NOPASSWD: /backup/command --with --args *
Run Code Online (Sandbox Code Playgroud)
我从一位同事那里听说该方法不再被认为是安全的,但我找不到任何详细信息。是否有任何我需要注意的安全问题?
我正在尝试以 root 用户身份在远程服务器上运行脚本。我的 shell 脚本中有这一行。
cat /home/myuser/create_user_updated.sh | ssh myuser@$myip "sudo sh"
Run Code Online (Sandbox Code Playgroud)
我收到以下错误。
sudo: sorry, you must have a tty to run sudo
Run Code Online (Sandbox Code Playgroud)
如果将文件复制到远程服务器并在本地执行,脚本“create_user_updated.sh”就可以正常工作。但它不适用于远程服务器。
我使用 visudo 命令编辑 /etc/sudoers 以授予用户 sudo 权限而无需密码,如下所示:
userName ALL=(ALL:ALL) NOPASSWD:ALL
Run Code Online (Sandbox Code Playgroud)
但它对我不起作用,
任何建议 提前致谢
我知道标题可能没有意义,但无论如何。我下载了 PuTTY 并进行了设置,然后按照本教程设置了 SSH 密钥,这样我在使用 SSH 登录时就不必输入用户名或密码。我注意到当我创建一个新用户时我使用了--disabled-password参数,因为我不需要它......但是现在当我给用户 sudo 权力时我无法继续,因为它要求我输入用户的密码,我没有。
我该怎么办?
我管理自定义软件即服务 (SAAS) CMS 和电子商务系统的托管。该系统由 HAproxy 实例后面的 LAMP 服务器集群提供支持,每个客户/域在集群和 LDAP 中都有自己的 unix 帐户。每个客户购买我们使用 cPanel 服务器管理的给定数量的数据存储,因此配额由标准 linux 内核 / NFS 配额强制执行。
我希望能够在我客户的 Web 管理仪表板中提供磁盘空间使用情况统计信息。在 LAMP 集群上,我可以/usr/bin/quota domain.name以root 身份运行以获取任何给定域使用的磁盘空间。但是我们的 Apache 实例作为 UID 运行www-data。
它是安全的,允许www-data运行sudo /usr/bin/quota带NOPASSWD?
我想禁用使用 .bashrc 进行备份的 bash 脚本的要求sudo或运行。roottar
我将此行添加到我的 sudoers 文件中
username ALL=NOPASSWD: /bin/tar
Run Code Online (Sandbox Code Playgroud)
但是,在我添加后,当我运行此备份命令时,它仍然显示权限被拒绝
/bin/tar -cvpzf /root/sysBackup/backup.tar.gz --exclude=/backup.tar.gz --exclude=/proc --exclude=/lost+found --exclude=/sys --exclude=/mnt --exclude=/media --exclude=/dev /
Run Code Online (Sandbox Code Playgroud)
这些是错误
/bin/tar: Removing leading `/' from member names
tar (child): /root/sysBackup/backup.tar.gz: Cannot open: Permission denied
tar (child): Error is not recoverable: exiting now
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
在 Linux 中,我有以下内容id:
uid=1005(username) gid=1005(username) groups=1005(username),33(www-data),1002(git)
Run Code Online (Sandbox Code Playgroud)
我想将我的有效 gid 更改为,git以便我创建的所有内容都属于gid组。例如touch testfile给owner=username group=git
如何?
我一直在尝试在 Linux 服务器上升级 PHP。使用此页面上给出的说明,我运行了以下命令:
sudo yum remove php php-cli php-common php-devel php-gd php-mbstring
不知何故,自从我运行它后,它似乎也从服务器中删除了 sudo 和 yum。现在,如果我这样做sudo或yum我收到错误:找不到命令。
我怎样才能把这些加回来?
注意:我使用的是centos
我的系统中有一个守护进程,它在一个屏幕实例内运行,所有这些都是由一个非特权用户完成的。我已将自己添加到特殊的 sudo 组,允许我从该用户运行 screen,但是当我尝试使用它时,例如
sudo -u that_user -H /usr/bin/screen -R
Run Code Online (Sandbox Code Playgroud)
我明白了这篇文章的主题。
四处挖掘我发现此消息意味着屏幕无法抓取或输出到我在调用它时实际使用的 pty。对此的常见答案是将我的 /dev/pts/N chmod 为其他人的 rw,但我记得我以某种方式设法较早地避免了这种情况。也许我错过了为 sudo 保存一些环境?
特别是我试图通过 sudo 从普通用户连接到在屏幕上运行的 rtorrent 守护程序,操作系统是 Gentoo amd64。以下是从 rc 脚本调用 screen 的方式:
start-stop-daemon \
--start \
--make-pidfile \
--pidfile /var/run/rtorrentd.pid \
--background \
--user $USER \
--env HOME="${PWHOME:-/home/$USER}" \
--name rtorrent \
--exec /usr/bin/screen -- -D -m -S rtorrentd /usr/bin/rtorrent
Run Code Online (Sandbox Code Playgroud)
终于找到了实际的解决方案:
alias rtorrent="urxvt -hold -e /bin/bash -c \"chmod o+rw \\\`tty\\\` && sudo -u rtorrent -H screen -r rtorrentd\""
Run Code Online (Sandbox Code Playgroud)