我在Debian的root的crontab中使用下面的命令。 rsync -vqrlHEAXogDtzhi –log-file=${LOG} –progress –rsync-path="sudo /usr/bin/rsync" –exclude-from=$CONFIG_DIR/excludes -e "ssh -i /home/backups/.ssh/id_rsa" backups@${HOSTNAME}:/ ${BACKUP_DIR} 我得到以下内容: sudo: no tty present and no askpass program specified 我曾尝试添加-t到ssh命令,我得到: Pseudo-terminal will not be allocated because stdin is not a terminal. 我曾尝试添加-t -t到ssh命令,我得到: protocol version mismatch — is your shell clean? 我已经添加了一个.hushlogin到远程盒子上的备份用户,并确认我可以ssh作为备份使用远程框的一个键没有任何显示(login被搁置)。 我仍然收到这些消息。 请注意,我可以使用密钥ssh作为备份到远程盒成功。 请注意,我的sudo没有-tt选项。 请注意,源和目标的/ etc / sudoers文件中设置了以下内容: backups […]
问题 CKAN安装文档显示如何列出已安装的PostgreSQL数据库。 该命令如下所示: sudo -u postgres psql -l 当我尝试在我的shell中,我得到一个错误: $ sudo -u postgres psql -l sudo: psql: command not found 解决方法 在CentOS论坛上的Daniel2d2art通过完全限定psql的path来解决这个问题。 我的psql位于目录/usr/pgsql-9.2/bin ,所以我的解决方法现在看起来像这样: sudo -u postgres /usr/pgsql-9.2/bin/psql -l 当我尝试在我的shell,它的工作原理: $ sudo -u postgres /usr/pgsql-9.2/bin/psql -l List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges ————–+———-+———-+————-+————-+———————– postgis_test | postgres […]
我需要像sudo -i一样运行important_script.sh而不需要密码。 如果我有在sudoers: apache ALL = (root) NOPASSWD: /blah/important_script.sh 并运行“sudo /blah/important_script.sh”我可以运行它没有密码。 但是,如果我运行“sudo -i /blah/important_script.sh”我需要input密码为Apache。 如果我把sudoers中的行改为: apache ALL = (root) NOPASSWD:ALL 我可以不用密码运行“sudo -i /blah/important_script.sh”命令。 但是我希望能够只运行/blah/important_script.sh,而不是所有的命令。 所以,我如何设置,只有/blah/important_script.sh可以与sudo -i没有密码运行。
突然我遇到了许可问题,当我通过sudo作为根发出命令。 我可以使用普通的权限在我的主目录中创build文件,所以像这样的东西适用于例如: vi /home/mike/test.txt 但使用sudo运行的等效命令不起作用: sudo vi /home/mike/test.txt "test.txt" E212: Can't open file for writing 这只是一个例子,所有使用sudo的命令都会因为权限的原因而失败。 我假设,因为我可以写入使用正常的权限,这不是一个文件系统是只读的问题。 它也不限于文件写入,像“sudo visudo”这样的命令也会因为权限原因而失败。 我不知道有任何最近的服务器的变化,可能会导致这(“sudo”一直工作正常,这个用户已经8个月左右)。 硬重启还没有解决这个问题。 服务器是:Ubuntu 8.04.2 LTS(耐寒) 任何想法或帮助将不胜感激!
我有一个关于系统pipe理脚本的一般性问题,这些脚本需要使用root访问来执行“some”命令,而其他的作为普通的非root用户(即myusername等)。 我应该提到我在Linux Red Hat 4系统上使用Ruby 1.8.6。 我目前看到的build议是: 允许从sudoers访问: USERNAME = NOPASSWD:/ path / to / script,/etc/init.d/httpd,/ path / to / somethingelse 这个语法是正确的吗? 如果是这样,我是否正确,我想列出脚本中所需的所有特定命令,我不想被提示input密码? 设置suid http://www.wellho.net/mouth/733_Perl-for-Systems-Admin-suid-scripts.html 以root权限运行Perl脚本: a)将脚本的所有者设置为root b)在文件上设置suid位(chmod u + s filename) c)closures读取权限,然后执行权限到文件给除root以外的所有人(chmod go = x) 但其他的研究表明,你只能在以后的Linux系统上设置suid的二进制文件(我的脚本实际上是在RH4的旧版本上运行,但是我们可能会升级,所以我想向前兼容)。 我不认为我想为此创build一个二进制文件! '用生成的公钥/私钥使用ssh。 该键可以configuration为只允许执行某些命令。 在sudo中留下任何需要root的脚本命令: 系统'sudo rake ts:rebuild'(当然这有所有那些密码提示的缺点!) 以root身份执行脚本 但是,我想作为普通用户运行的命令呢? 以root su用户身份执行(对于需要以普通用户身份运行的任务) '以root身份运行脚本,以root用户身份执行一系列任务,su用户以newUser身份执行一系列任务,退出(退出到root用户)以root用户身份执行更多任务。 (由James提出) 我对这个话题没有更好的理解感到羞愧,但是我对有多lessRuby脚本书感到有些惊讶,“我提到的这些脚本书没有解决这个问题! 我想这更像是一个'尼克斯'的事情,但似乎要做大量使用的事情,你可能会遇到这种情况。 编辑:有些东西像mysql我可以在命令中使用选项–password,所以我用它来做到这一点: puts "Remote […]
我无密码访问服务器。 我的用户帐户在sudoers文件中为/etc/init.d/中的某些服务/守护进程添加了NOPASSWD用法。 我想写一个脚本根据一些testing结果来启动或停止一个守护进程。 我已经设置了一个cron在特定的时间运行这个脚本。 但是它返回错误“sudo:没有tty存在,没有指定askpass程序”。 我可以使用“sudo /etc/init.d/service名称启动/停止在terminal没有密码。我没有root密码。 我有双重检查/ etc / sudoers文件。 没有“requiretty”。 我使用的是Ubuntu-10.04,2.6.32-24-generic。 以下是sudoers的活跃线路: Defaults env_reset root ALL=(ALL) ALL bijo ALL=NOPASSWD: /etc/init.d/apache2 %sudo ALL=(ALL) ALL %admin ALL=(ALL) ALL
在Fedora服务器上,一个处于开发阶段的Web应用程序,暂时因为未知的原因而被激化。 唯一的解决办法是重新启动linux机器,但只有root有这样做的权限。 是否有可能给用户组提供重新启动权限? 你能给我一些关于我该怎么做的想法吗?
我们有一个名为JBossAdmins的组,这个组的用户必须在RHEL 6上编辑一些/ etc文件: 在/ etc / httpd的/ * 在/ etc / JAVA / * 在/ etc / JBoss的/ * 我的第一个想法是提供以下sudo权限: %JBossAdmins ALL=(root) /bin/vi /etc/httpd/* %JBossAdmins ALL=(root) /bin/vi /etc/java/* %JBossAdmins ALL=(root) /bin/vi /etc/jboss/* 很显然,用户现在可以以root身份启动vi,然后通过执行fe :e /etc/passwd来编辑任何文件 所以sudo不是一个好主意。 然后进入我的想法做chgrp JBossAdmins -R path ,然后chmod g+rw -R path 。 但是我不太确定这是否是一个好主意。 考虑到安全性的影响,允许一组用户编辑一些/ etc文件的最佳实践是什么? 有没有比sudo或chgrp / chmod更好的select?
我需要进入在虚拟机上远程运行的Redhat框的恢复模式。 我使用RedHat 5 64位企业版。 我login到使用SSH的框中。 我可以重新启动使用重新启动命令,但我需要知道,如果我将能够SSH到它,因为我正在远程使用它,无法通过用户界面login。 真正的问题是,我在根目录上做了一个chown -R $USER / 。 我试图把这个作为一个没有意识到后果的尝试,做一些工作,即使使用sudo也不行。 我中途杀了它。 但是,由于这个愚蠢,我不能使用sudo。 我已经读过,我可以在救援模式下做一些事情,但我不明白如何进入救援模式远程。 我不能重新安装Linux,这不是一个可能的select。 无论如何,我可以找回我的sudo权限? 这样做现在不起作用: chown root:root /usr/bin/sudo chown: changing ownership of `/usr/bin/sudo': Operation not permitted sudo chown root:root /usr/bin/sudo sudo: must be setuid root
当您使用sudo执行根级别操作时,默认情况下在ubuntu上login到哪里? 我没有在syslog中看到条目。