我有必须以user2身份运行的script.sh.但是,此脚本只能在我的应用程序中的user1下运行.
我想要运行以下命令:
su user2 -C script.sh
Run Code Online (Sandbox Code Playgroud)
但能够无密码运行.
我也希望这是非常严格的,因为在user1中只能在user2下运行script.sh而不是其他任何东西.
我试过用sudoers文件做这件事,经过几个小时的尝试后就无休止地混淆了.
如果有人可以提供一个如何实现这一点的明确示例(而不是像使用sudoers那样的通用),那将非常感激.
我接管了一台Ubuntu 14.04服务器.它有一个名为"deployer"的用户(与capistrano一起使用),因此需要sudo权限.通过此设置,我可以登录服务器并执行以下操作:
workstation> ssh deployer@myserver
myserver> sudo apt-get install git
myserver> exit
workstation>
Run Code Online (Sandbox Code Playgroud)
我试图找出如何使用Ansible(版本2.0.2.0和python 2.7.3)来创建一个名为"deployer"的用户,并能够使用该id登录到服务器然后sudo-ish之类的事情,如"apt --get install".我的剧本看起来像这样:
---
- hosts: example
become: yes
tasks:
- name: Update apt cache
apt:
update_cache: yes
cache_valid_time: 3600
- group: name=sudo state=present
- name: Add deployer user and add it to sudo
user: name=deployer
state=present
createhome=yes
become: yes
become_method: "sudo"
- name: Set up authorized keys for the deployer user
authorized_key: user=deployer key="{{item}}"
with_file:
- /home/jaygodse/.ssh/id_rsa.pub
Run Code Online (Sandbox Code Playgroud)
运行这个剧本之后,我能够以"deployer"的形式进入机器,(例如ssh deployer @ myserver)但是如果我运行sudo命令,它总是要求我输入我的sudo密码.
我理解"deployer"用户最终必须找到进入visudo用户文件的方式,但是我无法弄清楚要调用哪个神奇的Ansible咒语以便我可以作为部署者ssh进入机器然后运行sudo命令(例如sudo) apt-get install git")没有提示输入sudo密码. …
按照编辑sudoers文件的说明,进行了更改,但说明说使用ctrl + x退出 - 这只是给了我一个大写字母X和一个插入符号.试过ctrl:x ctrl + Q Esc.
不使用nano或任何其他gui(只是putty终端),我试图保存的更改是将nano设置为默认编辑器.
我只需要知道按哪些键以及按哪种顺序排列?
另外作为一个侧面问题是有任何'好'的linux教程网站,我似乎拖网几个小时试图找到最简单的答案?'好'就像解释得好,没有省略重要信息(比如你正在使用的gui).
我想在sudoers文件中添加一个用户,我不想触摸原始/etc/sudoers文件,所以我在目录下添加了一个新文件/etc/sudoers.d.
有趣的是关于新添加文件的名称.最初,我将文件命名为sudoers.local,文件从未生效; 然后我将文件重命名为customize,立即生效.文件名sudoers.customize也不起作用.似乎任何包含的文件名sudoers都不起作用.有人知道原因吗?在所有三种情况下,该文件都具有适当的权限-r--r-----.
操作系统是64位CentOS 6.5.
我花了几天时间设置文件/etc/sudoers,以便能够向用户授予root权限jenkins.我在我的服务器上安装了Jenkins,因为我主持了几个项目,包括symfony,ionic,neo4j等等......问题是我无法用离子构建项目,我得到这个错误:sudo: no tty present and no askpass program specified.这是我/的内容etc/sudoers文件:
#
# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
Defaults env_reset
Defaults mail_badpass
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
# Host alias specification
# User alias specification
# Cmnd alias specification
# User …Run Code Online (Sandbox Code Playgroud) 在非root用户添加到sudoers组的映像构建期间无法创建文件夹.这是我的Dockerfile:
FROM ubuntu:16.04
RUN apt-get update && \
apt-get -y install sudo
RUN adduser --disabled-password --gecos '' newuser \
&& adduser newuser sudo \
&& echo '%sudo ALL=(ALL:ALL) ALL' >> /etc/sudoers
USER newuser
RUN mkdir -p /newfolder
WORKDIR /newfolder
Run Code Online (Sandbox Code Playgroud)
我收到错误: mkdir: cannot create directory '/newfolder': Permission denied
我有一个bash脚本(chbr.sh)来改变终端的显示亮度,因为我的亮度键不起作用.
`sudo setpci -s 00:02.0 F4.B=30`
Run Code Online (Sandbox Code Playgroud)
现在,每次我运行该脚本时都要求输入我不喜欢的密码.所以,我google了一下,发现可以编辑/etc/sudoers文件来禁用密码功能.
所以,我sudoers用以下内容编辑了我的文件
ronnie ALL = (ALL) NOPASSWD: /home/ronnie/chbr.sh
Run Code Online (Sandbox Code Playgroud)
现在当我运行我的脚本,因为./chbr.sh它再次要求我的密码.那么,这不是让sudo访问bash脚本的正确方法,或者我在这里做错了什么.
ronnie@ronnie:~$ ls -l chbr.sh
~rwxrwxr-x 1 ronnie ronnie 46 Jul 13 15:59 /home/ronnie/chbr.sh
Run Code Online (Sandbox Code Playgroud) 目前,我正在研究OSX Maverick,我不能sudo在终端中使用命令.
我的Mac:~phucnd $ sudo
sudo:/ etc/sudoers是世界可写的
sudo:找不到有效的sudoers来源,戒烟.
我该如何解决?
我试图在我的VPS上运行Meteor,我收到了这个错误:
Unexpected mongo exit code 100. Restarting.
Unexpected mongo exit code 100. Restarting.
Unexpected mongo exit code 100. Restarting.
Can't start Mongo server.
MongoDB had an unspecified uncaught exception.
This can be caused by MongoDB being unable to write to a local database.
Check that you have permissions to write to .meteor/local. MongoDB does
not support filesystems like NFS that do not allow file locking.
Run Code Online (Sandbox Code Playgroud)
我已经发现问题出在我的用户权限或类似的东西上.当我尝试使用root访问来运行流星时,它的工作非常顺利.如果我尝试用我的" custom"用户运行meteor ,它就会失败.即使我授予他在DigitalOcean上列出的sudo权限.为什么会这样?背后的问题是什么?
我在Ubuntu 14.04.1 LTS上.Meteor是版本0.8.3,我正在使用Meo的MongoDB.我没有分离MongoDB的安装.
更新:基本上我已经找到了问题,但我现在还没有找到导致问题的原因.我在DigitalOcean VPS上.如果我通过SSH运行Meteor,则会失败.如果我在Web控制台访问上运行Meteor,它就可以运行.我不明白.
我在/ etc/sudoers中有这个:
%wheel myhostname =NOPASSWD: /bin/bash -c "echo foo && echo bar", \
/bin/bash -c echo foo
Run Code Online (Sandbox Code Playgroud)
在sudo /bin/bash -c echo foo没有提示输入密码的情况下执行工作.
但是,sudo /bin/bash -c "echo foo && echo bar"仍然要求输入密码.
我尝试了很多变化,但没有被接受.
哪里出错?/如何允许-c后跟多个命令?