Questions tagged «sudo»

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

3
如何限制通过SUDOERS在特定目录中运行命令?
我可以配置sudo(通过sudoers文件),以允许用户在系统中的任何文件或目录上运行chownand chmod命令。但是,我只想授予用户权限以对/var/www/html目录下的文件运行这些命令。 如何限制特权命令,使用户只能在预先指定的目录中运行特权命令? 例如:以下命令向index.html文件授予777权限。 sudo chmod 777 /var/www/html/index.html 现在我要执行两个动作 限制sudo,使得用户可以仅运行chmod和chown从内/var/www/html 禁止用户在系统中的其他位置执行这些命令(例如,命令无法在/var/www或中运行/var/ftp)
13 sudo 


5
我怎么能sudo su并立即更改目录?
我想创建一个执行以下操作的别名: alias userYYY='sudo su userYYY; cd /a/path/that/only/userYYY/has/access' 因此,然后从我的命令行,我登录与须藤用户,我想输入别名userYYY让我的壳现在登录同userYYY和pwd是/a/path/that/only/userYYY/has/access。 我怎样才能做到这一点?这userYYY是用于运行某些进程的,它的主目录中必须有任何东西。因此,我尝试使用以下方法更改其$ HOME: sudo usermod -m -d /a/path/that/only/userYYY/has/access userYYY 然后从我的sudoer文件的外壳中执行操作sudo su userYYY。但这没有用。唯一有效的方法是,sudo su -l userYYYY但是在我的原始shell(-bash-4.1$ ....)中打开了一个新bash 。 总而言之,我要避免在shell中写两行代码: sudo su userYYY cd /a/path/that/only/userYYY/has/access 有任何想法吗?
13 bash  shell  sudo  su 

2
Shell脚本:在其中使用sudo与在sudo中运行它?
在编写shell脚本时,其中的某些命令(而非全部)需要超级用户特权,我应该 将sudo添加到需要超级用户特权的命令中,并在不使用sudo的情况下运行shell脚本,或者 不要在需要超级用户权限的命令中添加sudo,而是使用sudo运行shell脚本? 第二种方式,我只需要提供一次密码,但是脚本中的所有命令都将以超级用户权限运行,包括那些不需要的命令。 第一种方式,我可能需要为不同的sudo命令多次提供密码,而超级用户特权仅授予那些需要它们的命令。 从安全性考虑,第一种方法更好。为了方便起见,第二种方法更好。 我一直在考虑采用第一种方法。因此,我不得不处理在shell脚本中为多个sudo命令提供密码的不便之处。 斯蒂芬·哈里斯(Stephen Harris)写道: 编写良好的脚本会检测它是否以正确的权限运行,而根本不会调用sudo,但是有很多错误的脚本 那我应该用第二种方式吗?如果是这样的话, 我怎么写“脚本将检测它是否以正确的权限运行,而根本不调用sudo”? 我如何提高其安全性,以避免在使用sudo运行脚本时为不需要超级用户的命令赋予超级用户特权的问题? 这种简单的方法是否能兼具这两种方法的优点:将sudo添加到只需要它的命令中,然后根据需要的方便性或安全性运行带有或不带有sudo的脚本?这种方法有问题吗? 谢谢。

2
如何在不更改文件所有者的情况下将命令与sudo一起使用?
当我使用sudo对文件进行某些活动时,这些文件会更改所有权。如何在不更改文件所有者的情况下将命令与sudo一起使用? 示例文件archivos35.sh来自apache,但我使用sed(与usr admin sudo一起使用) $ ls -l -rwxr-xrw-. 1 apache apache 181 Aug 5 11:56 archivos35.sh adminsudo 用户- sudo sed -i s/old/new/g archivos35.sh 但是使用sudo执行该命令会更改文件的所有者 $ ls -l -rwxr-xrw-. 1 admin apache 181 Aug 5 11:56 archivos35.sh 如何避免将命令与sudo一起使用来更改文件的所有者?我只想在不修改文件所有者的情况下对文件进行更改。
12 sed  sudo  ownership 

3
使用sudo -u以其他用户身份执行命令时出现问题
当我尝试使用以下命令ls以用户身份执行时,abc出现错误: xyz@host:~/temp$ sudo -u abc ls [sudo] password for xyz: Sorry, user xyz is not allowed to execute '/bin/ls' as abc on host. 但是如果我执行su abc然后执行ls我就没问题
12 sudo  su 

11
如何在“ sudo su-”中记录命令?
如果我: [user@notebook ~] sudo echo 123456uu 123456uu [user@notebook ~] 然后我可以在日志中看到: [root@notebook /var/log] grep 123456uu * auth.log:Jan 9 17:01:51 notebook sudo: user : TTY=pts/3 ; PWD=/home/user ; USER=root ; COMMAND=/bin/echo 123456uu [root@notebook /var/log] 但是如果我: [user@notebook ~] sudo su - [root@notebook ~] echo 1234567zz 1234567zz [root@notebook ~] 我在日志中看不到它: [root@notebook /var/log] grep 1234567zz …
12 sudo 


2
更改root密码不会更改sudo密码
我正在尝试更改sudo在Ubuntu中运行时要求的密码。运行sudo passwd或sudo passwd root确实会给我两个新密码提示,它成功更改了密码。 但是,当我sudo再次运行其他内容时,仍然可以使用旧密码。我确实有一个用户使用完全相同的密码,但是我不知道这是否有所不同。我启用了root用户,并且可以看到新密码确实适用于root用户帐户。 因此,更改了root密码,但没有更改的密码sudo。 如何更改sudo密码?
12 linux  ubuntu  root  sudo 

2
zsh希望将vim改成.vim
我在Gentoo x64上使用zsh,当我sudo vim /path/to/file 从主文件夹键入内容时,zsh会问: zsh: correct 'vim' to '.vim' [nyae]? 我不想运行vim我的.vim文件夹。我该如何解决? 我的猜测是setopt autocd造成这种情况的原因。奇怪的是,如果我不添加sudo,zsh不会要求更正任何内容。
12 zsh  sudo  gentoo  line-editor 

6
如何在Ubuntu上找回sudo?
我已经做到了: sudo chown -R myname /usr/ 现在sudo由于这个错误我无法使用命令: sudo:必须是setuid root 当我读到这意味着该文件的所有者/usr/bin/sudo不是根。现在是我的用户,因为/usr文件夹上有chown 。 在许多论坛和博客上,人们建议以root身份这样做: # chown root:root /usr/bin/sudo # chmod 4111 /usr/bin/sudo ...但是问题是我需要以root用户身份登录,但是我不能,因为如果我su在终端中写密码错误(实际上,我使用的密码就是我添加到用户中的密码): $ su Password: su: Authentication failure 那么我可以取回sudo命令吗? 编辑:我的Ubuntu在我的Mac OS X上的Paralells下。


1
sudoers和默认值
我需要允许用户在没有tty的情况下运行无密码的sudo。 我有一个/etc/sudoers.d/带有我所需的特殊命令和设置的文件,因为我不想直接编辑该sudoers文件。在该文件中,我具有以下内容: # My list of commands that the user can run passwordless myUser ALL=(ALL) NOPASSWD:SETENV: /foo/bar /foo/zaz # My new defaults. Defaults exempt_group = myUser Defaults !env_reset,env_delete-=PATH Defaults: myUser !requiretty 但是,当我su向用户运行时,sudo -l我得到的是默认值: Matching Defaults entries for myUseron this host: requiretty, !visiblepw, always_set_home, env_reset, env_keep="COLORS DISPLAY HOSTNAME HISTSIZE INPUTRC KDEDIR …
12 sudo  sudoedit 


2
如何允许非root用户使用实例控制systemd服务?
我需要允许dba组中的用户控制database@服务。这个相关问题的答案是仅列出systemctl我要允许在sudoers文件中使用的所有“动词” ,但是,这不适用于我的情况,因为我事先不知道系统中可能存在哪些数据库。例如,如果我列出 %dba = /usr/bin/systemctl start database@awsesomeapp %dba = /usr/bin/systemctl start database@anotherawsesomeapp %dba = /usr/bin/systemctl start database@yetanotherawsesomeapp %dba = /usr/bin/systemctl start database@wowyetanotherawsesomeapp # ... other "verbs" omitted for brevity 它不包括将来可能存在的实例,因此dba将无法 $ sudo systemctl start database@omgwowyetanotherawsesomeapp 无论如何,我在包装方面的想法比在特定系统上的想法更多。 请注意,正如对另一个相关问题的惊人回答所示,为此使用sudo glob最终是不安全的: %dba ALL = /usr/bin/systemctl start database@[a-z]* # UNSAFE! 确实允许 $ sudo systemctl …

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.