运行需要sudoin的命令是一种不好的做法~/.profile吗?
如果真的想这样做,如何在重新启动 Ubuntu 时运行命令?
使命令与运行sudo,并在我的用户帐户不需要密码,通过编辑/etc/sudoers?
在命令中提供我的密码sudoin ~/.profile, by echo <passwd> | sudo -S <mycommand>?
我还没有验证第一种方法是否有效,因为我还在学习如何去做。
第二种方式似乎引起了严重的安全问题,而且可能是我最不想走的方式。
谢谢。
我使用的是 Kubuntu 20.04。
当我运行时sudoedit /etc/fstab,VS Code 将打开一个空白文档,并且 CLI 立即返回(请参阅下面的详细信息)。
如果我运行export SUDO_EDITOR=nano,文档将在 nano 编辑器中打开,其中内容符合/etc/fstab预期。
如果我运行export SUDO_EDITOR=/snap/bin/code,它会再次打开带有空白文档的 VS Code。
我究竟做错了什么?或者这是一个错误?
kevin@kevcoder00 ~ $ echo $VISUAL
kevin@kevcoder00 ~ $ echo $SUDO_EDITOR
kevin@kevcoder00 ~ $ echo $EDITOR
/snap/bin/code
kevin@kevcoder00 ~ $ sudoedit /etc/fstab
[sudo] password for kevin:
sudoedit: /etc/fstab unchanged
Run Code Online (Sandbox Code Playgroud) 这是我原来的 /etc/sudoers.d/www 文件:
Cmnd_Alias WWWCMDS = /home/xxx/shop/update.sh
www-data ALL=(ALL) NOPASSWD: WWWCMDS
Run Code Online (Sandbox Code Playgroud)
我只是想添加两个额外的命令,所以我 RTFM 并看到你只需要用逗号分隔它们。
Cmnd_Alias WWWCMDS = /home/xxx/shop/update.sh,geoipupdate,service memcached restart
www-data ALL=(ALL) NOPASSWD: WWWCMDS
Run Code Online (Sandbox Code Playgroud)
但它触发了语法错误。我究竟做错了什么 ?
我试图养成使用sudoedit, 而不是sudo vim. 这有几个优点,其中之一是它使用我用户的~/.vimrc.
是否有等价物,而不是使用sudo vimdiff?
vimdiff直接使用,而是可以垂直拆分打开两个文件,然后:diffthis在两者中运行。但是,如果我用 . 打开一个文件sudoedit,那么我必须直接打开第二个文件,而不是sudoedit在/var/tmp.vim -O file1 file2. 然而,不出所料,sudoedit -O失败了。我已阅读此答案,但不知道如何将以下行添加到我的 sudoers 文件中。
matthew ALL=(ALL) NOPASSWD: /usr/sbin/service fancontrol start
Run Code Online (Sandbox Code Playgroud)
我运行了“ sudo visudo ”,然后弹出了一个“ /etc/sudoers.tmp ”窗口。“ /etc/sudoers.tmp ”是应该添加该行的正确文件吗?如果是这样,我应该在哪一行下添加这些行?我怎样才能保存它?我在那里找不到“保存”选项。
我的目标是在没有密码的情况下运行“ sudo service fancontrol start ”。
GNU nano 2.9.3 /etc/sudoers.tmp
#
# This file MUST be edited with the 'visudo' command as root.
Run Code Online (Sandbox Code Playgroud) 好吧,我知道问题标题很糟糕,但情况本身也是如此。
我想要做的是:
到现在为止还挺好。现在到了奇怪的部分:该validate: 'visudo -cf %s'文件的验证 ( ) 会引发错误。当我注释掉验证行时,文件会上传,但手动验证 ( visudo -cf /etc/sudoers.d/foo_bar) 也会失败。使用 vi 打开文件,在:wq不进行任何更改的情况下保存 ( ) 并再次运行验证成功。
我目前的工作论文:WTF?!
但是已经很晚了,我很累。如果有人有建议,请告诉我。我将在获得新信息后立即更新此问题,并在我将解决方案归零后将其清理干净。