标签: sudoers

如何以没有密码的其他用户身份运行脚本?

我有必须以user2身份运行的script.sh.但是,此脚本只能在我的应用程序中的user1下运行.

我想要运行以下命令:

su user2 -C script.sh
Run Code Online (Sandbox Code Playgroud)

但能够无密码运行.

我也希望这是非常严格的,因为在user1中只能在user2下运行script.sh而不是其他任何东西.

我试过用sudoers文件做这件事,经过几个小时的尝试后就无休止地混淆了.

如果有人可以提供一个如何实现这一点的明确示例(而不是像使用sudoers那样的通用),那将非常感激.

linux bash sudo su sudoers

139
推荐指数
2
解决办法
27万
查看次数

Ansible:使用sudo权限创建用户

我接管了一台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 ansible-playbook

61
推荐指数
2
解决办法
8万
查看次数

退出/保存编辑到sudoers文件?Putty SSH

按照编辑sudoers文件的说明,进行了更改,但说明说使用ctrl + x退出 - 这只是给了我一个大写字母X和一个插入符号.试过ctrl:x ctrl + Q Esc.

不使用nano或任何其他gui(只是putty终端),我试图保存的更改是将nano设置为默认编辑器.

我只需要知道按哪些键以及按哪种顺序排列?

另外作为一个侧面问题是有任何'好'的linux教程网站,我似乎拖网几个小时试图找到最简单的答案?'好'就像解释得好,没有省略重要信息(比如你正在使用的gui).

sudoers

33
推荐指数
2
解决办法
14万
查看次数

/etc/sudoers.d文件中的文件未被sudo读取

我想在sudoers文件中添加一个用户,我不想触摸原始/etc/sudoers文件,所以我在目录下添加了一个新文件/etc/sudoers.d.

有趣的是关于新添加文件的名称.最初,我将文件命名为sudoers.local,文件从未生效; 然后我将文件重命名为customize,立即生效.文件名sudoers.customize也不起作用.似乎任何包含的文件名sudoers都不起作用.有人知道原因吗?在所有三种情况下,该文件都具有适当的权限-r--r-----.

操作系统是64位CentOS 6.5.

linux filenames sudoers

22
推荐指数
1
解决办法
4万
查看次数

Jenkins sudo:没有tty存在,也没有使用NOPASSWD指定的askpass程序

我花了几天时间设置文件/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)

debian sudo tty sudoers jenkins

18
推荐指数
2
解决办法
5万
查看次数

无法创建目录.Docker容器内的权限被拒绝

在非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

ubuntu sudoers docker

18
推荐指数
2
解决办法
5万
查看次数

如何让sudo访问bash脚本?

我有一个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)

bash sudo sudoers

11
推荐指数
1
解决办法
2万
查看次数

Mac OS X Mavericks上的"/ etc/sudoers是世界可写的"

目前,我正在研究OSX Maverick,我不能sudo在终端中使用命令.


我的Mac:~phucnd $ sudo

sudo:/ etc/sudoers是世界可写的

sudo:找不到有效的sudoers来源,戒烟.

我该如何解决?

macos sudoers writable

11
推荐指数
4
解决办法
1万
查看次数

意外的mongo退出代码100.重新启动

我试图在我的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,它就可以运行.我不明白.

mongodb sudoers meteor digital-ocean

8
推荐指数
2
解决办法
6609
查看次数

如何允许bash -c为sudoers(后跟多个命令)?

我在/ 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后跟多个命令?

bash sudo sudoers

7
推荐指数
2
解决办法
2067
查看次数