Questions tagged «sudo»

sudo-以超级用户权限执行命令。

8
为普通用户提供sudo vim访问权有何风险?
我想创建一个新用户并给他sudo访问权限。具体来说,我希望他使用sudo vim和编辑httpd.conf。我在sudoers中写道: user ALL=(ALL) /usr/bin/vim /etc/httpd/confs/httpd.conf 但是,我听说这可能有风险。为什么这有问题?问题有多严重?
30 security  vim  sudo 

3
如果我sudo执行一个Bash脚本文件,那么Bash脚本中的所有命令是否也将作为sudo执行?
我想在Bash中编写一个自动化的安装后脚本(post-install.sh例如,称为)。该脚本将自动添加和更新存储库,安装和更新软件包,编辑配置文件等。 现在,如果执行该脚本(例如使用)sudo post-install.sh,是否仅会提示我输入一次sudo密码,或者sudo每次在脚本中需要sudo权限的命令调用时都需要输入密码?换句话说,可以这么说,bash脚本中的命令是否“继承”了执行权限? 并且,如果确实如此,那么sudo权限是否仍有可能超时(例如,如果特定命令花费的时间足够长以超过sudo超时时间)?还是初始sudo密码输入会持续整个脚本的整个过程?


1
为什么cron在我的脚本中默默地无法运行sudo东西?
我有一个从非特权用户的crontab运行的脚本,该脚本使用调用了一些命令sudo。除非不是。脚本运行正常,但sudo'ed命令无提示地失败。 该脚本可以作为相关用户从shell完美运行。 Sudo不需要密码。有问题的用户已在中(root) NOPASSWD: ALL授予访问权限/etc/sudoers。 Cron正在运行并执行脚本。添加简单的代码date > /tmp/log会在适当的时间产生输出。 这不是权限问题。同样,脚本确实得到执行,但不是sudo'ed命令。 这不是路径问题。运行env从脚本内被运行显示正确的$PATH变量,包括路径须藤。使用完整路径运行它没有帮助。正在执行的命令被赋予完整路径名。 尝试捕获包括STDERR的sudo命令的输出不会显示任何有用的信息。添加sudo echo test 2>&1 > /tmp/log到脚本会生成空白日志。 sudo二进制文件本身可以很好地执行并识别它具有权限,即使从脚本内的cron运行时也是如此。添加sudo -l > /tmp/log到脚本将产生输出: 用户ec2-user可以在此主机上运行以下命令: (root)NOPASSWD:ALL 使用show检查命令的退出代码$?正在返回错误(退出代码:)1,但似乎没有错误产生。简单的命令/usr/bin/sudo /bin/echo test将返回相同的错误代码。 还有什么可能发生? 这是最近创建的运行最新Amazon Linux AMI的虚拟机。crontab属于用户ec2-user,而sudoers文件是默认的发行版。
29 sudo  cron 

6
设置sudo密码与登录一个密码不同
作为特权用户,我尝试将sudo密码设置为另一个,然后将其设置为登录时使用的密码。 我已经进行了一些研究,但没有找到答案。是否sudo支持这种配置? 如果您丢失了密码,则将丢失所有内容。有人可以登录并root使用相同的密码升级为自己。 sudo可以选择询问root密码而不是调用用户密码(rootpw),但是root绝对不可以选择共享密码,这就是我们进行设置的原因sudo。 我config 2FA过去做过,效果很好,但也违反了自动化的目的。例如,如果要使用expect脚本在十几台服务器上执行特权命令,则添加2FA不允许这样做。 我找到的最接近的解决方案是仅允许SSH私钥和设置密码短语的密钥不同于sudo(登录)密码。尽管如此,它还是不舒服,因为在紧急情况下,您无法在没有该密钥的PC上登录。
29 sudo 

3
sudo事件记录在哪里?
当某人不在sudoers组中并尝试使用sudo时,会收到如下错误消息: yzT is not in the sudoers file. This incident will be reported. 我正在尝试找出此信息记录在哪个日志中,以检查谁试图使用sudo运行命令,例如,但找不到它。 第一次Google搜索说,/var/log/syslog但是我没有看到任何与sudo相关的信息。
29 logs  sudo 


2
sudo如何记住您已经输入root的密码?
在Linux上使用sudo时,它会要求输入root密码,但这仅是您首次运行时输入。如果您运行另一个sudo命令,它会记住您之前已经输入了密码并且不要求输入密码: thomas@ubuntu:~$ sudo id [sudo] password for thomas: ****** uid=0(root) gid=0(root) groups=0(root) thomas@ubuntu:~$ sudo id uid=0(root) gid=0(root) groups=0(root) sudo怎么做?此信息存储在哪里?我的想法是,它会记住终端ID(如pts / 1),但是此存储在何处?使用命令完成第一个sudo进程后,对吗? 我知道sudo是setuid程序,因此它始终具有root特权,但是我仍然想不出一个存储用户已经输入密码的信息的好地方。是否有一些守护进程参与其中?
27 linux  sudo 

3
`:w!sudo tee%`如何工作
如果您打开了没有权限在vim中写入的文件,然后决定需要对其进行更改,那么您就可以编写更改而无需退出vim,:w !sudo tee % 这是因为我不知道该如何工作。可以请你解剖一下吗? 我了解这一:w部分,它假定将已经存在的文件名与当前缓冲区关联,它将当前缓冲区写入磁盘,对吗? 我也了解!哪个执行sudo tee命令并%代表当前缓冲区内容,对吗? 但是仍然不了解它是如何工作的。
27 vim  sudo  tee 

3
sudo命令没有源/root/.bashrc
我PATH在/root/.bashrc文件中为变量添加了自定义路径 当我这样做时sudo su; echo $PATH,它显示条目“ / path / to / custom / bins”。 但是我sudo sh -c 'echo $PATH'知道, /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin .bashrc文件中添加的文件夹路径不可见。 sudo命令是否与root用户具有相同的环境?
27 sudo  bashrc 

7
需要sudo的脚本是否应该失败(如果没有),或者使用sudo和提示符?
我有一个脚本,可以对背光亮度进行精细控制,并且需要sudo运行。本质上是这样的: backlight="/sys/class/backlight/acpi_video0/brightness" echo $1 | tee $backlight 并居住在~/bin/backlight-adjust。该脚本需要sudo特权,因为tee $backlight正在写入特权位置。因此,如果不与一起运行,它将失败sudo。 这种方法有一个问题,因为我不能随便跑sudo backlight-adjust,因为~/bin不在$PATH的sudo环境下,只有在我的环境。所以我必须运行sudo env "PATH=$PATH" backlight-adjust或类似的方法。 或者,我可以这样写: backlight="/sys/class/backlight/acpi_video0/brightness" echo $1 | sudo tee $backlight 并提示我输入密码。 第二种方法对我来说更好,因为我不必记住键入sudo。它会提示我。而且我可以保持$PATH原样。总体上来说,这样做更方便,但是有什么原因使我不应该第二种方式呢? (如果正在运行Xubuntu 14.04,并且我的shell是GNU bash 4.2.45,则可以这样做。)

4
sudo有多普遍?
我正在写一些有关如何安装某些东西的说明(与TeX有关-如果您不问,我不会通过提供更多详细信息破坏您的一天),并用于sudo在系统范围内安装。有人评论说,他们认为并非sudo所有Linux(或Unix)发行版都提供该功能。 是否有没有的Unix发行版,sudo如果是的话,它们是什么?是否有一个举世公认的“给我超级用户权限”命令,该命令是在所有系统上?

2
强制sudo提示输入密码
如果我执行以下操作: sudo su - //enter password exit exit //login again straight away sudo su - sudo的第二次调用不会要求输入密码,因为即使我再次注销,但仍处于一定的时间限制内,这意味着无需再次提示输入密码。 因为我正在尝试一些新的priv来确保它们正常工作,所以在我等待超时发生时,这确实使我放慢了速度。 我可以运行一个命令来重置超时吗? 顺便说一下,我不想更改超时或影响其他用户!
26 sudo  password 

3
没有密码的用户-如何从非root帐户登录到该帐户
我刚刚开始使用Scientific Linux(7.0)(尽管我认为这个问题可能与发行无关。)。内核版本为3.10.0-123.20.1.el7.x86_64。 回到我的问题。 我切换到root帐户,然后test-account使用命令从那里创建了一个新的用户帐户adduser test-account。它没有提示我输入密码,也没有使用该选项来提供密码。所以我想这是一个“无密码”帐户。我可以从root帐户登录到该帐户-我想即使测试帐户有密码,我也可以不提供密码。但是,当我尝试从第三个帐户登录此(测试帐户)时-会提示我输入密码。而且仅按Enter不起作用。 是否可以从非root用户帐户登录到该帐户。有没有办法(无需切换到root或使用sudo)?


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.