因此,为了稍微保护我的服务器,我创建了一个具有 su - root 访问权限的新用户并拒绝 root 登录。现在我无法使用该用户通过 Filezilla 对我的服务器上的任何文件进行 SFTP。这些是我采取的步骤:
/etc/ssh/sshd_config使用Filezilla SFTPPermitRootLogin yes进行编辑PermitRootLogin no。现在,不幸的是,当使用新用户/密码通过 Filezilla 进行 SFTP 时,我可以访问和查看服务器中的所有目录/文件,但无法打开/读取/编辑它们。
我是否需要以 root 用户身份更改权限设置,以便新用户能够执行此操作?我有没有搬起石头砸自己的脚?
编辑:好的,root 被 chmod 了文件 777,这允许我以新用户身份查看/编辑,但是有没有办法简单地向用户授予 SFTP 的所有这些权限,而不是公众/任何人别的?
通过 SSH 以 root 身份运行以下命令 (bash) 后:
pkill --help
pkill -h
pkill /?
Run Code Online (Sandbox Code Playgroud)
前两个命令没有为我提供任何信息,这就是为什么运行第三个命令(有点本能......)。
接下来发生的事情是,我与服务器的 SSH 会话关闭,并且无法重新连接。我猜它停止了所有(或大部分)正在运行的进程,包括负责此类会话的守护进程。
我想了解为什么会发生这种情况:我的输入的确切评估(逐步)是什么以及它是什么原因造成的。
我最好的猜测是它与 shell 对 '?' 的评估有关。字符,它可能转换为一些单字符表达式的列表,这些表达式被传递给 pkill,而 pkill 又关闭了这些 PID。
我们刚刚部署了几个 Linux 服务器。每个系统管理员都将在服务器上拥有自己的帐户(即:jsmith),并将使用 SSH 与证书进行连接,该证书将放入其主目录中的“authorized_keys”文件中。一旦连接到服务器,如果他们想发出提升的命令,他们会这样做:
sudo ifconfig
Run Code Online (Sandbox Code Playgroud)
然后他们将输入 root 密码。
我现在想知道的是管理该 root 密码的最佳实践。我应该定期更换吗?我如何与系统管理员共享新密码?
**当然我会在 SSH 中禁用 root 登录。
我丢失/忘记了坐在我旁边的服务器的 root 密码,正在尝试重置它。我宁愿不必擦除并重新安装或使用 Live CD(服务器运行的是 Ubuntu Server 12.04)。到目前为止我尝试过的...
1) 从 Grub2 启动菜单启动到“恢复模式”,然后进入 root shell 提示符。系统提示我“为维护提供 root 密码”。不去。
2) 将主引导选项的引导参数更改为包括“rw”和“init=/bin/bash”。然后当我用 Ctrl-X 启动时,屏幕变黑,什么也没发生(我已经等了五分钟)。init=/bin/sh 和 init=/bin/static-sh 都做同样的事情,而 init=/sbin/init 正常启动。
还有什么我可以尝试重置root密码的吗?谢谢!
我的 MySQL (5.5) root 用户遇到了一些非常奇怪的问题。我试图允许外部主机访问 root 用户,但似乎我的 root@localhost 没有对本地数据库的“GRANT OPTION”!我认为此时的问题是由于我认为我有两个 root@localhost 用户,两者都有不同的授权规则,但我不知道如何重新安装。
我已经尝试删除 root 用户并重新创建它(我认为),重置 root 用户密码(修改 mysql 数据库本身)
我无法使用我一直指定的密码进入 root 帐户,而是使用备用密码,我什至不知道我是怎么得到的......这个备用用户似乎没有完整root 权限,但仍称为 root。
--下面发布的解决方案--
我需要像 sudo -i 一样在没有密码的情况下运行 important_script.sh。
如果我有 sudoers:
apache ALL = (root) NOPASSWD: /blah/important_script.sh
Run Code Online (Sandbox Code Playgroud)
并运行“sudo /blah/important_script.sh”我可以在没有密码的情况下运行它。
但是,如果我运行“sudo -i /blah/important_script.sh”,我需要输入 apache 的密码。
如果我将 sudoers 中的行更改为:
apache ALL = (root) NOPASSWD:ALL
Run Code Online (Sandbox Code Playgroud)
我可以在没有密码的情况下运行命令“sudo -i /blah/important_script.sh”。
但我希望只能运行 /blah/important_script.sh,而不是所有命令。
那么,我如何设置只有 /blah/important_script.sh 可以在没有密码的情况下使用 sudo -i 运行。
我正在尝试为在 Debian 设备上运行的应用程序测试新的网络监控代码。我目前的任务是确保在使用 FUSE 安装外部网络共享(例如 S3 存储桶)并且连接中断时抛出 SNMP 陷阱。
问题是,要使共享无法访问,我显然必须使文件不可写(或使用 iptables 阻止每个可能的 S3 相关 IP),并且如果存储桶旨在由root 用户,并由 root 用户监控。
有没有办法让这个程序以 root 身份运行,认为存储桶坏了?
PS 我不能使用 chattr 制作这些存储桶,因为,afaik,S3 不支持不变性等属性的概念。
我熟悉配置 Linux 服务器以符合PCI-DSS 3.2 的一些更常见的方法,至少符合SAQ A的要求。一个常见的问题是要求 8.5,它要求:
通用用户 ID 和帐户被禁用或删除
这包括 root 用户,显然不能被禁用,因此需要“补偿控制”(在 PCI-DSS 的术语中)。一个常见的配方是以下的一些变体:
ssh才能使用 SSH 密钥;sudo获取root;pam_loginuid一旦用户有root,安装记录登录用户ID;和auditd以记录 root 操作和登录用户 ID。但是,如果我今天要处理,它不是我要保护的单一机器:它是一个小型集群(目前有 10 台机器),并且能够在机器之间ssh(和scp文件)进行(和文件)真的非常有用。作为非 root 用户必须这样做将是一个真正的痛苦:几乎总是你需要的文件只能被 root 读取,并且需要放在一些只有 root 可以写入的地方。
我想要做的是允许ssh在机器之间作为 root,使用服务器上存在的 SSH 密钥。这在块中使用命令很容易。我不太担心允许破坏一台机器的人控制整个集群的安全隐患:这些机器非常相似,如果他们设法破坏一台机器,他们可能可以使用相同的过程来访问其余的./etc/ssh/sshd_configPermitRootLoginMatch Address
但是,如果我这样做,我将失去跟踪谁在运行什么命令的能力,因为当我ssh到另一台机器时,没有登录 UID 不再附加到进程。PCI-DSS 中的补偿控制需要“满足原始 PCI DSS 要求的意图和严格性”,并且要求 8.5 的意图被声明为使“跟踪系统访问和活动到个人”成为可能。在不保留登录 UID 的情况下,我们不再为允许 root 用户存在提供补偿控制。 …
Mac OS X 机器默认禁用 root 用户。这是网络环境的正确设置吗?
具体来说,计算机将运行 Apache 2、MySQL 5、PHP 5 和其他有用的网络服务软件。管理员将处理编译此类软件、更新和增强该软件以及其他类似任务。在这种情况下,root 用户会有用吗?
更广泛地说,在什么情况下应该在 OS X 上启用 root 用户?启用此用户的优缺点是什么?
我做 Rails 开发。在这个应用程序中,我需要指定环境变量LD_LIBRARY_PATH = /usr/local/oracle/lib,但是当我使用 sudo 脚本/服务器运行应用程序时,它不会运行,因为该库路径不在 root 的 env 中。
我该怎么做才能让它发挥作用?我试图将路径放在根目录下./bashrc,但没有用。