Articles of sudo

雪豹(osx):sudo保存环境

问候, 我想在OSX上sudoing后保留我的别名: sudo -s . .profile 是否有可能在一个单一的命令行上实现这一点? – 即类似于: sudo -s ; . .profile TKS

在sudoers文件中定义主机

我想编辑我的sudoers文件,以便用户根据login的位置拥有不同的权限。 我想有3个不同的位置:外部networking(互联网),内部(本地局域网)和控制台(用户坐在电脑前)。 定义外部和内部会是这样的: Host_Alias PRIVNET = 10.6.66.0/25, 10.6.67.128/28 但是如何定义控制台呢? 我不希望用户能够对防火墙或sudoers进行更改,例如,如果出现问题,或者即使他的帐户被盗用,他不在位。 我只是想确保用户在进行关键更改时在附近。

Sudoersconfiguration为git提交后脚本允许参数

我们有一个需要用Git和Trac运行的git post-commit脚本,当有人提交一个被调用的钩子时,会运行这个命令: trac-admin /path/to/trac changeset added "reponame" $REV $ REV是dynamic的,取决于推送的版本。 问题是这个命令要求提交用户对trac数据库有写权限。 我们有很多用户提交,他们都在一个名为“git”的Linux组中,我可以在trac数据库文件(SQLite)上给rw这个组,然后它可以工作,然后在“git”组中的任何人都可以删除数据库。 它目前由www-data,www-data所有。 我添加了一个这样的sudoconfiguration行: %git ALL=(www-data) NOPASSWD: /usr/local/bin/trac-admin 这工作,它允许脚本工作,但是现在他们有trac-admin所有的选项,我想限制这个命令的访问,包括/path/到/ trac的参数,并改变设置添加。 我尝试添加一个Cmnd别名与/ usr / local / bin / trac-admin / path / to / trac changeset添加了“reponame”,但它不起作用,因为添加的$ REV正在打破它,而且不能dynamic添加到的/ etc / sudoers中。 有没有办法在Cmnd Alias中包含通配符来允许它在sudoers中工作?

添加了一个新用户来分组www数据和sudoers,仍然不知道为什么用户以root身份创build新的目录

我是Linux系统pipe理新手(处理用户和组),但作为开发人员,我确实有很多命令行经验。 现在,我试图确保我已经添加到我的Debian服务器在组www-data下的三个用户有适当和预期的权限。 目标是在/ var / www / html /中的所有目录www-data:www-data(我认为这就是我想要的至less…我这样做,所以我没有混合权限之间在root和www-data下创build的东西)。 我用三个新用户添加到了sudoers文件中,这个选项和root一样。 现在我不知道如何去考虑用户,我需要一些指导。 例如,当我以developer1身份login并发出命令mkdir时,它告诉我我没有相应的权限来执行此操作。 所以,我sudo键入我的用户的密码,然后mkdirtesting…,它显示为一个根目录作为所有者和根作为组的目录。 我怎样才能让developer1成为可以用www-data作为所有者和组创build目录的用户? 这是正确的方法来处理这个? 谢谢。

Linux服务器帐户的多种访问级别模式

当前在Linux服务器上工作(我系统pipe理员2)我有以下3个用例: 最终用户使用(例如个人或正常项目组) 用户解决问题和低风险的变化(如Apache虚拟主机的变化) 真正的系统pipe理员工作(例如configurig守护进程) 在NIS中,我们有一个用户帐户(对于几乎所有的事情都configuration了详细和正确的组),一般情况下它都很顺利。 问题是,我们目前为2和3打开​​了一个root shell( sudo -i )。这会由于完全访问而带来风险。 另外,我们也会遇到那些高估自己能力的人(非营利组织,因此通常意味着很好)的错误。 我想通过正确授予组权限来分开2和3(例如,站点组可以完全访问apache,但没有别的)。 问题是我也不想授予用户帐户权限,我想他们进入“pipe理模式”就像现在这样做,因为它很容易login,使人们意识到,他们现在可以造成损害。 是否有可能创build多个层次的权力,而不仅仅是正常的用户/根分化? 其他build议也是欢迎的

在sudoers规则中可以使用环境variables吗?

例如,在sudoers文件中有一条定义规则的行: %wheel ALL=(ALL) NOPASSWD: $HOME/bin/ls 有效吗? 如果没有,是否有相同的方法来实现这一目标? 谢谢。

在shell脚本中使用sudo

我可以使用命令访问另一个用户的帐户: sudo su – other_user 我没有input密码。 看来这是sudo允许我的唯一命令。 之后,我可以执行文件复制和服务器重启等多项任务。 我想自动执行这些任务,以便我可以执行一个脚本,这将获得其他用户的权利并做它必须做的事情。 然而, sudo衍生另一个shell,直到我退出它阻止脚本执行。 是否有可能控制该shell,并从我的脚本发送命令到它? 更新2011-11-01: 我试着从答案和这两个命令的build议: sudo -u other_user whoami sudo su – other_user -c "whoami" 要求密码。 不幸的是,我找不到sudoers来看设置。 这种情况让我感到有些懊恼,因为有权做我想做的事,但不能自动化。

与正确的所有者/组创build链接

我有一个通过SSH访问的git守护进程。 所有的软件仓库都在/ srv / git中。 我有一些其他项目保存在exfat磁盘上,所以我想创build一个从该磁盘到/ srv / git的符号链接。 例如,我有/mnt/Medias/Projects/Defi\ H.git所以我简单地做: cd /srv/git sudo ln -s /mnt/Medias/Projects/Defi\ H.git 但是该文件是以root身份创build的:777。 要限制对存储库的访问,我想更改该文件的posix权限。 如果第一次尝试: sudo chmod 755 Defi\ H.git chmod: changing permissions of `Defi H.git': Function not implemented 我发现这是因为链接指向存储在exfat磁盘上的文件夹。 同样,这也失败了: sudo chown git:defih Defi\ H.git chown: changing ownership of `Defi H.git': Function not implemented 所以我想直接创build链接作为合适的用户: sudo -u git […]

sudoers条目

有没有办法让一个sudoers条目,只允许执行一个特定的命令,没有任何额外的参数? 我似乎无法find描述命令匹配如何与sudoers一起工作的资源。 假设我想为/path/to/executable arg授予sudo。 是否有如下条目: user ALL=(ALL) /path/to/executable arg 严格允许sudo访问一个完全匹配的命令? 也就是说,它不授予用户sudo权限/path/to/executable arg arg2 ?

允许sudo删除某些文件

我想允许删除/ tmp目录中的某些文件来sudo用户。 我为sudo用户添加了Allow_Cmnd /usr/sbin/userdel ,但不会删除与用户关联的所有/ tmp文件。 那么我应该如何调整sudoers,让它们只删除/ tmp目录中的某些文件。 我GOOGLE了一下,但得知正则expression式可能是在这个应用程序。 我尝试了一些调整,但它不为我工作。 我希望用户有能力执行命令,如 find /tmp -uid 10002 | grep joeuser | xargs rm -rf