Questions tagged «sudo»

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


1
Ubuntu和Debian如何为具有sudo特权的用户管理$ HOME?
我有一个myhome.sh仅包含一行的bash脚本: echo $HOME 脚本的所有者是用户: $ ls -l myhome.sh -rw-rw-r-- 1 user user <date> <time> myhome.sh 在Ubuntu 16.04和17.10中,我得到了: $ echo $HOME /home/user $ sudo echo $HOME /home/user $ bash myhome.sh /home/user $ sudo bash myhome.sh /home/user 在Debian Buster / Testing中,我得到: $ echo $HOME /home/user $ sudo echo $HOME /home/user $ bash …
39 bash  debian  ubuntu  sudo  home 


5
sudo如何设置为在Ubuntu中不更改$ HOME以及如何禁用此行为?
在Ubuntu 12.04上,当我sudo -s不更改$ HOME变量时,因此如果我的普通用户是regularuser,情况将如下所示: $ cd $ pwd /home/regularuser $ sudo -s # cd # pwd /home/regularuser 我很早以前就放弃了Ubuntu,所以不能确定,但​​是我认为这是默认行为。因此,我的问题是: Q1。怎么做?配置在哪里? Q2。如何禁用它? 编辑: 感谢您的答案,这使事情有所澄清,但我想我必须添加几个问题,才能得到我想要的答案。 Q3。在Debian中sudo -s,将$ HOME变量更改为/root。从答案中得到的结果和man sudo运行的shell sudo -s是给定的/etc/passwd,对吗? Q4。但是,在Ubuntu和Debian上/etc/passwd,root用户指定的shell 是/bin/bash。在这两个系统中,就$ HOME而言,我都找不到文件.profile或.bashrc文件中的差异所在的位置,从而使行为sudo -s不同。有什么帮助吗?

7
通过sudo和su运行时,为什么PATH变量不同?
在我的fedora VM上,使用用户帐户运行时/usr/local/bin,我的路径是: [justin@justin-fedora12 ~]$ env | grep PATH PATH=/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/justin/bin 同样在运行时su: [justin@justin-fedora12 ~]$ su - Password: [root@justin-fedora12 justin]# env | grep PATH PATH=/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/justin/bin 但是,当通过运行时sudo,该目录不在路径中: [root@justin-fedora12 justin]# exit [justin@justin-fedora12 ~]$ sudo bash [root@justin-fedora12 ~]# env | grep PATH PATH=/usr/kerberos/sbin:/usr/kerberos/bin:/sbin:/bin:/usr/sbin:/usr/bin 为什么通过via运行时路径会有所不同sudo?

1
禁用requiretty可以吗?
我试图使用Capistrano设置部署脚本。 在一步,cap deploy:setup脚本正在连接到我的服务器,并试图运行用于创建目录的命令。然后我看到一个错误:msudo: sorry, you must have a tty to run sudo 有一个建议的解决方案可以在我的服务器上禁用requiretty。https://unix.stackexchange.com/a/49078/26271 我想知道这样做是否安全?
39 security  sudo  tty 

2
如何在sudoers中将命令参数与Cmnd_Alias一起使用?
如何在sudoers中指定命令参数?作为背景,aws命令实际上是通向大量子系统的网关,我想限制用户只能运行aws s3 cp ...any other args... 当我尝试以下内容时 /etc/sudoers Cmnd_Alias AWSS3_CMD = /usr/local/bin/aws s3 cp, /usr/local/aws/bin/aws s3 cp gbt1 ALL=(gbt-ops) NOPASSWD: AWSS3_CMD 不幸的是,shell提示输入密码 $ sudo -u gbt-ops aws s3 cp helloworld s3://my-bucket/hw.1 gbt-ops's password: 如果我在Cmnd_Alias中删除了命令args,那么它会按需要流动(没有密码提示),但是授权范围太广。因此,仅将某些类型的命令调用限制为正确的方法是什么。 Cmnd_Alias AWSS3_CMD = /usr/local/bin/aws, /usr/local/aws/bin/aws 然后 $ sudo -u gbt-ops aws s3 cp helloworld s3://my-bucket/hw.1 ...happy …
36 sudo 


1
为什么sudo中的#include和#includedir指令以井号(#)字符为前缀
在设置sudo环境时,我注意到include指令的前缀是井号(#)。 Solaris显示为: ## Read drop-in files from /etc/sudoers.d ## (the '#' here does not indicate a comment) #includedir /etc/sudoers.d 该手册(Linux和Solaris)指出: 从sudoers中包含其他文件可以使用#include和#includedir指令从当前正在解析的sudoers文件中包含其他sudoers文件。 和: 其他特殊字符和保留字井号(`#)用于表示注释(除非它是#include指令的一部分,或者除非它出现在用户名的上下文中并且后跟一个或多个数字,在这种情况下,它被视为uid)。注释字符及其后的任何文本,直到行尾都将被忽略。 有人知道为什么在#includeand #includedir指令中选择使用井号吗? 附带说明:我经常使用类似的方法egrep -v '^#|^$' configfile来获取非默认/活动的配置设置,这显然不适用于该sudoers文件。
36 sudo 

7
如何抑制dd输出?
我有一个bash脚本,可使用创建一些文件dd。问题是dd抛出了大量的输出,这将使我的脚本的输出混乱。经过搜索,我找到了解决方案: dd if=boot1h of="/dev/r$temp1" >& /dev/null 是否有替代方法,或者重定向到/dev/null唯一方法?
35 bash  sudo  su  dd 

13
我可以创建一个* super *超级用户,以便实际上可以拥有一个可以拒绝root权限的用户吗?
我当时在想,拥有比root用户更高权限的用户可能是有利的。 您会看到,我想保留所有活动以及几乎所有现有的root用户特权。 但是,我希望能够在极其个别的情况下拒绝特权授予root权限。 优点之一是可以防止在更新过程中安装某些不需要的文件。这只是一个可能优势的例子。 因为apt-get更新是由root或具有sudo特权运行的,所以apt-get能够在更新过程中替换某些不需要的文件。 如果我可以拒绝这些特定文件的特权,则可以将它们设置为simlink,/dev/null或者可以将其设置为空白占位符文件,该文件可以具有在更新过程中拒绝替换文件的权限。 此外,我不禁想起了在接受Ubuntu创作者之一采访时说的一句话,当时那个家伙说了一些有关用户如何更好地信任“我们”(指Ubuntu开发者)的事情,“因为我们有根”,这是在具有root权限的情况下如何执行系统更新的参考。 简单地更改安装过程以说出解决此问题的方法绝对不是我在这里感兴趣的。既然我的脑子里有一个想法,就是有权拒绝超级用户访问权限,那么我想找出一种方法来实现此目的。 我只是考虑过这一点,到目前为止还没有花任何时间来思考这个问题,我非常有信心可以解决这个问题。但是,我很想知道这是否已经完成,或者这可能不是一个新的想法或概念。 基本上,似乎应该有某种方法可以拥有一个超级超级用户,该超级超级用户的权限仅超出系统权限一个级别。 注意:尽管我认为可接受的答案最符合标准,但我非常喜欢@CR的答案。也。 我想在树上创建一个实际的用户(我),但我想我有一天要花一天时间坐下来。 另外,我不是在这里尝试使用Ubuntu。如果我对此感到负面,就不会将其用作主要发行版。
34 permissions  sudo  users  root 

5
找不到Bash Sudo命令
我已经使用Turnkey Linux Redmine设置了VM,并且试图通过SSH进入服务器以安装更多项目。 它似乎无法识别sudo命令。每次尝试对某些内容进行sudo时,我都会收到一条错误消息: -bash: sudo: command not found 我在其他地方读到键入“ whereis sudo”,输出为: sudo:
33 bash  sudo 


3
我如何确定自己是否更喜欢?
不熟悉Linux时,Linux系统的行为如何?如果我尝试使用sudo,将会发生以下情况: server:/tmp>$ sudo cal [sudo] password for user: Sorry, try again. 是否有可能我只是不知道密码,或者这意味着我不懂密码?(在打印出来的另一台机器系统上,我没有任何抱怨,并且将报告此事件)
32 permissions  sudo  root 

4
错误消息“ X不在sudoers文件中。这起事件将得到报告。”从哲学/逻辑上讲?
除了问题“ 用户名不在sudoers文件中。将报告此事件 ”,该问题解释了错误的程序方面,并建议了一些解决方法,我想知道:此错误是什么意思? X is not in the sudoers file. This incident will be reported. 错误的前一部分清楚地解释了错误。但是第二部分说“将报告此错误”?!但为什么?为什么会报告错误,在哪里?给谁?我既是用户又是管理员,没有收到任何报告:)!

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.