ubuntu@ubuntu:/usr/lib/locale$ sudo rm -R nl_NL.utf8
rm: cannot remove directory `nl_NL.utf8': Input/output error
Run Code Online (Sandbox Code Playgroud)
我在删除看似已损坏的目录以允许重新配置此语言环境时遇到问题,但操作系统不允许我这样做。为什么?
没有内部攻击的机会,所以我想使用sudoers为本地计算机上的用户授予 sudo 权限。我分别尝试了这些行:
%admin localhost=(ALL) NOPASSWD: ALL
%admin 127.0.0.1=(ALL) NOPASSWD: ALL
Run Code Online (Sandbox Code Playgroud)
但是 sudoers 似乎也不认识localhost或127.0.0.1。
是否有替代方案,如果有,它的安全性如何?远程攻击者能否使用cron或其他方法获得本地用户权限?
说 Windows UAC 在概念上与 Linux sudo 相同是否正确?
你能指出两者之间的区别吗?
我正在运行一些非交互式 ssh 命令。通过 ssh 代理可以很好地处理 ssh 身份验证,但是如果我运行需要 sudo 的命令,则终端中的密码提示是纯文本。例如:
ssh remotemachine "sudo -u www mkdir -p /path/to/new/folder"
Run Code Online (Sandbox Code Playgroud)
将提示我输入纯文本密码。有谁知道我如何让它使用正常的安全提示,或者我可以通过交换机传递密码?(这样我就可以在发送命令之前在这边设置一个安全提示)
任何帮助深表感谢。
我正在我的 Debian 机器上设置一个基于 Python 的网络服务器。
设置:
192.168.1.7(根据我路由器的管理屏幕或ifconfig)。无论我使用的是什么特定的 Python 网络服务器(Django、CherryPy、标准库),我都必须使用sudo. 否则,我会收到关于无权访问该端口的错误。没有任何网络服务器教程提到sudo在指定 ip:port 时需要使用。
问题:为什么我需要使用sudo来启动这些网络服务器?这是否表明我不应该使用192.168.1.7?或者我没有在某处正确设置配置文件?
我想使用不同的密码将我的用户提升到 sudo 状态,而不是我用来登录(通过 GUI、shell 或 SSH)到我的帐户的密码。这可能吗?
编辑: 由于设置 root 密码将允许以 root 身份登录,这不是一个好方法。我更喜欢用户特定的 sudo 密码,而不是系统范围的 root 密码。
我知道手册页对 -K 和 -k 有什么看法:
?K
?K (sure kill) 选项与 ?k 类似,不同之处在于它完全删除用户的缓存凭据,并且不能与命令或其他选项结合使用。此选项不需要密码。并非所有安全策略都支持凭据缓存。
?k[命令]
单独使用时,sudo 的 ?k (kill) 选项会使用户的缓存凭据无效。下次运行 sudo 时将需要密码。此选项不需要密码,添加此选项是为了允许用户从 .logout 文件中撤销 sudo 权限。并非所有安全策略都支持凭据缓存。当与可能需要密码的命令或选项结合使用时, ?k 选项将导致 sudo 忽略用户的缓存凭据。因此,sudo 将提示输入密码(如果安全策略需要密码)并且不会更新用户的缓存凭据。
因此,如果不需要将命令与这些选项结合使用,我是否正确地假设 K 总是使用而不是 k 的更好选择?
全新安装 OS X 后,我决定以正确的方式安装 python 包管理器。所以我开始谷歌搜索,发现自制软件是最好的方法。现在我有两个问题:
Homebrew 旨在无需使用 sudo 即可工作。
但是安装脚本要求输入密码。那是因为实际用户被授予读取、写入、执行 usr/local... 目录的权限,因为它是 admin 的组成员。因此,homebrew 不是每次都询问 sudo,而是询问一次。尽管如此,规则已被打破,因为您必须使用 sudo yes 或 yes。
我害怕在安装软件包时将 sudo 与 python 一起使用。这就是我决定使用自制软件的原因。但实际上不一样吗?
如果这是真的,我认为让自制程序做你想做的事情是不安全的,因为它们有 root 权限。
/usr/local/bin 已经在您的 PATH 中。
那为什么我需要
在 PATH 的顶部插入 Homebrew 目录
正如在http://docs.python-guide.org/en/latest/starting/install/osx/ 中所说的那样?
命令自制软件的安装脚本执行:
/usr/bin/sudo /bin/chmod g+rwx /usr/local/. /usr/local/include /usr/local/lib /usr/local/lib/pkgconfig
/usr/bin/sudo /usr/bin/chgrp admin /usr/local/. /usr/local/include /usr/local/lib /usr/local/lib/pkgconfig
Run Code Online (Sandbox Code Playgroud) 我在 sudo 组中:
$ id
uid=1002(molot) gid=1002(molot) groups=1002(molot),27(sudo),33(www-data)
Run Code Online (Sandbox Code Playgroud)
在我的 sudores 中,我似乎有合适的设置:
sudo ALL=(ALL:ALL) NOPASSWD: ALL
Run Code Online (Sandbox Code Playgroud)
这是那里最后一个未注释的行。
但是当我尝试时git pull,我必须重新输入密码:
$ sudo -u www-data git --git-dir /var/www/.git --work-tree /var/www pull "origin" master
[sudo] password for molot:
Run Code Online (Sandbox Code Playgroud)
当我登录控制台时这不是问题,但在脚本中是不可接受的。那么我怎样才能允许 sudo 组中的任何人在不重新输入密码的情况下将 git pull 作为 www-data 呢?
当我直接输入我的名字时:
molot ALL=(ALL) NOPASSWD: ALL
Run Code Online (Sandbox Code Playgroud)
这个对我有用。但是,显然,不适用于来自 sudo 组的 marian 或其他用户。据我了解manual,用户名和组名都应该在第一个文件中工作。
(在 Centos 上通过 Docker)
我知道我可以使用visudo. 有没有办法直接从命令行将用户添加到 sudoer 列表中,这样我就不必以交互方式进行操作?
我之所以这么问,是因为我正在尝试配置不具有交互性的 Docker centos 容器。