Linux – 如何pipe理root的密码?

我们刚刚部署了一些Linux服务器。 每个系统pipe理员将在服务器上有他自己的帐户(即:jsmith),并将使用SSH连接证书,该证书将被放入主目录中的“authorized_keys”文件中。 一旦在服务器上连接,如果他们想发出一个提升的命令,他们会这样做:

sudo ifconfig 

然后他们将inputroot密码。

我现在想知道的是pipe理root密码的最佳实践。 我应该改变它吗? 我该如何与系统pipe理员分享新密码?

**当然,我将禁用SSH根login。

如果他们使用的是sudo,那么它会询问他们的密码而不是root密码,因此不需要更改root密码。 只要确保在/ etc / sudoers文件中给予他们适当的权限即可。

使用sudo时,您不必担心root密码。 也许,我会build议通过发布来禁用root密码

 sudo passwd -l root 

尽pipe如此,请确保您拥有具有所有权限的相关系统用户。

您始终可以通过发出获取根控制台

 sudo -i 

以下是我用来configuration我的服务器的一个小脚本。

 #!/bin/bash set -e addgroup sysadmin adduser newuser usermod -a -G sysadmin newuser chmod u+w /etc/sudoers echo "\n# Added by <YOUR-NAME>\n%sysadmin ALL=(ALL) ALL" >> /etc/sudoers chmod uw /etc/sudoers su newuser -c "mkdir /home/newuser/.ssh" su newuser -c "chmod 0700 /home/newuser/.ssh" su newuser -c 'echo "<YOUR-SSH-KEY>" >> /home/newuser/.ssh/authorized_keys' su newuser -c "chmod 0644 /home/newuser/.ssh/authorized_keys" 

你可以根据你的需要修改。 使其交互,使用用户可以等等:)

请享用!

有一种情况需要root密码:如果启动时文件系统fsck失败,通常会提示您inputroot密码以获取shell提示符,以便修复损坏。 在这一点上,既不是普通的用户帐户也不是可用的SSH。 如果系统pipe理员不知道root密码,那么唯一的select是从备用媒体启动。

根据最佳实践:

  • 根账户应该设置,并且至less每3个月更改一次。
  • 用root用户loginssh应该被禁止

    / etc / ssh / sshd_config注释如下:

    PermitRootLogin yes

  • 系统pipe理员应该使用自己的帐户login,并在需要升级权限时使用sudo。
  • 创build一个组,并把所有的系统pipe理员用户

    groupadd <sysadm_group>
    groupmod -A <user1>,<user2> <sysadm_group>

  • 编辑/ etc / sudoers文件。

    visudo

    在底部添加:
    %<sysadm_group> ALL=(ALL) ALL

  • 根密码应存放在安全的地方,只能在紧急情况下使用。

我的笔记关于sudo:(请注意 – 我的笔记只是我自己的谷歌收集,我张贴他们,因为它可能会帮助新手,像我这样的慢学习者;)..如果你说的信息是不正确的,或只是从维基副本,或抄袭,等等等等,然后让我知道通过评论,我会非常高兴删除我的post,比你的反对票)

从维基页面:

  1. 与su命令不同,用户通常将其自己的密码提供给sudo而不是root密码。
  2. sudo能够logging每个命令的运行。 如果用户试图调用sudo而没有列在sudoers文件中,则向用户呈现错误,指示尝试已被logging在系统日志中。
  3. sudo可能被configuration为需要root密码,或根本没有密码
  4. 这个文件必须以root用户的“visudo”命令编辑。 从wiki – visudo是一个命令行工具,允许以安全的方式编辑/ etc / sudoers文件。 它会打开/ etc / sudoers,默认情况下使用vi编辑器的界面(虽然可以通过将shell的EDITOR环境variables设置为不同的文本编辑器来更改),可以防止多个锁同时编辑,执行完整性检查并检查分析错误。
  5. runas命令在Microsoft Windows中提供了类似的function,但不能将当前目录,环境variables或长命令行传递给子级。 虽然它支持将孩子作为另一个用户运行,但不支持简单的提升。 对于Windows来说,一个真正的su和sudo可以传递所有的状态信息,并且启动subprocess,或者作为另一个用户(或者两个进程)包含在Hamilton C shell中。
  6. 在GUI环境中使用sudo有几个前端,特别是kdesudo和gksudo

从手册页:

获取不可读目录的文件列表:

%sudo ls / usr / local / protected

要列出保存〜yazza的文件系统不以root身份导出的机器上的用户yazza的主目录:

%sudo -u yazza ls〜yazza

以用户www编辑index.html文件:

%sudo -u www vi〜www / htdocs / index.html

closures一台机器:

%sudo shutdown -r +15“快速重启”

FAQ和疑难解答提示

http://www.sudo.ws/sudo/troubleshooting.html