Articles of sudo

sudo不保存TMPDIR

sudo manpage告诉我,我可以通过传递-E选项来保护环境,在$TMPDIR的情况下这不起作用: > env | grep TMPDIR TMPDIR=/localdata/tmp > sudo env | grep TMPDIR [no output] > sudo -E env | grep TMPDIR [no output] 这个选项没有列入黑名单,那就是sudo sudo -V没有把它列为“要移除的环境variables”。 按照在回答中提出的方法,“ 如何指定root的环境variables ”这个问题,我试图把它列入白名单,那就是我的/etc/sudoers写道: Defaults env_reset Defaults env_keep = "TMPDIR" 这也不起作用,它实际上甚至不使TMPDIR出现在白名单中(也就是,sudo sudo -V打印为“要保存的环境variables”)。 (我正在运行Ubuntu 10.04。)

使用无密码sudo的munin插件的“sudo:no tty present”

我正在为munin编写一个插件来监视我们的Ubuntu Linux服务器(位于Amazon EC2上)的某些内容。 该插件需要通过sudo运行程序/usr/sbin/rabbitmqctl 。 我在/etc/sudoers有以下行: munin ALL = NOPASSWD: /usr/sbin/rabbitmqctl list_queues 正如你所看到的, munin用户(即运行脚本的用户)可以通过sudo执行命令/usr/sbin/rabbitmqctl list_queues而不需要密码。 我已经通过sudo -u munin -s证实了这一点,并运行它。 然而在munin日志( /var/log/munin/munin-node.log )中,我得到了很多这样的插件输出: 2013/06/28-11:35:26 [28107] sudo: no tty present and no askpass program specified 图中没有数据。 在我的/etc/sudoers文件的最后,我有这个,这通常被认为是一个解决scheme: Defaults !requiretty 但是它不能解决它。 “取消/ etc / sudoers中该行的注释”这个共同的build议或者是因为该文件中没有任何东西。 有没有办法让我的munin插件通过sudo调用某些东西? 更新№1 :这个munin插件是由服务器上的munin-node执行的,这个是作为munin用户运行的,我不能把所有的munin都作为root来运行。

configurationUbuntu允许sshlogin通过pulic /私钥和sudo没有密码

我正在build立一个新的Ubuntu 13.04服务器。 我创build了一些用户,并将ssh身份validation的公钥复制到他们的主文件夹中。 通过密码login将被禁用。 到目前为止一切正常,但如果我通过SSH +私钥login,我不能sudo。 我必须input密码,但所有的密码都是空的。 我发现了几个提示如何更改/ etc / sudoers,但也有很多警告不要手动编辑文件。 所以我的问题是: 只使用没有密码的公钥/私钥authentication是安全的吗? 什么是configuration这种行为的正确方法?

将AD域pipe理员组包含在Linux sudoers中?

我正在一家公司的networking中,通过一个Win Server Active Directory进行configuration,连接数百台Windows计算机连接到本地域。 我们正在做一些testing来开始介绍Linux机器。 我已经用Linux Mint安装了一个,将它连接到本地域,同样,我们可以与networking用户login到这些计算机。 但是,与在Domain Admin组中的用户自动拥有pipe理员权限的Windows环境中不同,在Linux中,他们不具有root访问权限,也不能sudo。 我相信给他们sudo权利将是最简单的,但我怎样才能在sudoers文件中添加一个networking组?

Sudo没有密码问题

与sudo有问题。 由于用户forge我想能够运行sudo service php5-fpm reload而不必input密码。 我已经尝试了下面的所有变种。 forge ALL=NOPASSWD: /usr/bin/service php5-fpm reload forge ALL=NOPASSWD: /usr/bin/service forge ALL=(ALL:ALL) NOPASSWD: /usr/bin/service forge ALL=(ALL:ALL) NOPASSWD: /usr/bin/service php5-fpm reload 但它不断提示我input密码。 尝试login进出。 # tail /var/log/auth.log Sep 16 09:28:19 apps sudo: pam_unix(sudo:auth): conversation failed Sep 16 09:28:19 apps sudo: pam_unix(sudo:auth): auth could not identify password for [forge] 这是整个文件。 # # This file […]

来自几个Linux主机的定期和重复的sudo警报

我有几台在局域网上运行CentOS 5.11的主机。 最近,我们已经从非授权用户尝试sudo命令中获得相当正规的sudo警报(通过电子邮件)。 被谷歌search的情况下,企图命令是已知的黑客,或已知的“工具”,可以触发这些。 模式是相当规则的,通常大约每小时两次从多个主机提醒 – 非常不可能是人类,因此。 警报本身总是其中之一: myhost01:10月29日17:50:41:tzx:用户不在sudoers; TTY = pts / 0; PWD = / home / tzx; USER = root; COMMAND = lsof -nP + c0 -i4TCP 要么 myhost02:10月29日18:16:39:tzx:用户不在sudoers; TTY = pts / 0; PWD = / home / tzx; USER = root; COMMAND = parted -l 用户“tzx”是有效的Linux用户 – 通常用于运行系统服务或cron作业,但也允许SSHlogin(以防止以root身份执行任何function)。 我在一个或两个受影响的主机上使用了“last”,我从用户tzx看到shell会话,每个会话不到一分钟,大致对应于我们得到的警报。 而且,所有这些会话似乎来自局域网上的同一个源主机(我也在挖掘)。 […]

如何通过Puppet触发特定用户的sudo宽限期?

我正尝试通过Puppet部署Redmine服务器。 安装过程使用Bundle来安装它的依赖关系 。 交互式安装时,当Bundle需要安装一些系统级的库时, sudo提示用户input密码。 不build议将Redmine作为root用户安装。 我使用Ubuntu 14.04 64位。 puppet从LXC非特权容器内运行。 我曾经有过一个解决scheme,包括在Bundle安装之前触摸适当的/var/lib/sudo文件。 这是hacky,最近sudo升级后停止工作。 有没有其他办法可以做到这一点? 或者,也许sudo确实允许非交互式授予宽限期,我只是错过了? 我的sudoers文件已经包含了Defaults !tty_tickets条目。 我宁愿不要这样做,但是没有这条路线,我认为解决scheme的希望就更小了。 这是我的forcesudo资源: define forcesudo ($user = $name, $notify = $notify) { file { "/etc/sudoers.d/fix-${user}": content => "${user} ALL = (root) NOPASSWD: ALL\n" } file { "/etc/sudoers.d/tty_tickets": content => "Defaults !tty_tickets\n" } file { "/var/lib/sudo/${user}": ensure => directory, owner => […]

bash:/ etc / hosts:权限被拒绝

为什么当我运行我得到的错误: $ sudo echo "127.0.0.1 db-local.internal" >> /etc/hosts bash: /etc/hosts: Permission denied 但是,当我做sudo su我可以编辑这个文件没有任何问题。

帮助visudo

我正试图closures没有root用户使用visudo 我尝试了以下,但它并没有为我工作 鹰ALL = NOPASSWD:/ sbin / shutdown -h现在

RHEL4 / CentOS4从LDAP设置SUDOERS

我build立了基于这个指南的服务器,但我跳过了桑巴部分。 (具有LDAP后端的CentOS 5.x Samba域控制器) 我在本指南中添加了sudoers支持。 (Sudoers LDAP手册) 我已经用不同的设置,调整,所有那些好东西重build了系统7或8次,所以我对LDAP / Slapd及其configuration有非常深刻的理解。 我们正在将我们的新LDAP服务器与我们的系统整合,但是其中一些服务器无法完全升级到最新版本的CentOS,而且我遇到了一些障碍。 而且我已经为我们的节点编写了“启动”脚本来加速启动过程。 下面是一个脚本,可以将我的CentOS机器自动configuration为ldap节点的成员。 CentOS5脚本 #!/bin/sh # authconfig –enableldap –enableldapauth –enablemkhomedir –ldapserver=10.0.32.5 –ldapbasedn="dc=MYDOMAIN" –update echo 'sudoers: files ldap' >> /etc/nsswitch.conf echo 'base dc=MYDOMAIN timelimit 120 bind_policy soft bind_timelimit 120 idle_timelimit 3600 uri ldap://10.0.32.5/ ssl no tls_cacertdir /etc/openldap/cacerts pam_password md5 sudoers_base ou=SUDOers,dc=MYDOMAIN ' > /etc/ldap.conf 现在,运行这个在CentOS 4服务器上不起作用,我不得不做一些改变。 […]