合理增添用户 确保Linux服务器的安全性
在涉及到Linux服务器系统安全可靠这个问题时,我们可以考虑的问题很多。今天,我们就重点看一下怎样安全地增加账户和设置用户的外壳。
向服务器增加用户账户
在设置服务器时,我们经常会允许人们上传文件或者从服务器下载文件或消息。然而,我们却不想允许这些人访问整个Linux服务器。实际上,在我们创建这些用户时,就可以限制这些用户的访问权限。
要限制一个远程用户登录并且限制其访问shell(通过SSH,telnet,或其它登录服务),我们可以为一个用户设置默认的shell为nologin。例如:
# useradd -s /sbin/nologin jerryb
在将其shell设置为nologin之后,这个用户就不能登录到服务器来打开一个shell。不过,用户仍然能够使用这个账户登录到服务器上的FTP服务(如果此服务器可用并且此用户拥有一个口令)。默认情况下,此例中,用户通过FTP方式登录时的起始目录(home Directory)将会是/home/jerryb。另一个只能访问服务器上的FTP服务的方法是,使用/usr/lib/sftp服务器作用一个用户的登录shell。虽然这会允许用户访问对用户可用的整个文件系统,它却限制其只能通过安全的FTP访问服务器。
Web主机的一个通用作法是允许用户在服务器中放置内容,通常是通过利用FTP(但并非shell登录)放置在那个用户的/home/username/public_Html目录中。但是,管理员能够选择将Web内容的位置指定到任何一个目录,包括系统范围内的Web服务器目录。下面的命令为用户webuser指定了/var/www/html为其起始目录(为了让此命令生效,我们还应该将文件的所有权改为属于webuser):
# useradd -s /sbin/nologin -d /var/www/html webuser
如果你想在Linux服务器增加一个账户,使其只能访问电子邮件服务,也可以选择防止对FTP的任何访问。其中的一个方法是将用户的起始目录指向/dev/null。例如:
# useradd -s /sbin/nologin -d /dev/null jerryb
在设置好受限的用户账户之后,你还可以利用与特定服务相关的特性,进一步定义服务器上用户能访问的服务和不能访问的服务。
为用户配置Shell
允许为每一个用户个别地定制其shell启动文件是一个相当灵活而实用的方法。不过,有时我们需要比这种方法更加集中化的控制。你可能会拥有一个环境变量或者你想为每一个用户设置的其它shell设置(无一例外地进行)。如果你为每一个单独的shell增加这种设置,用户就可以拥有编辑这个文件并清除它的能力。进一步讲,如果这个设置要在将来做出改变,你就必须在每一个用户的shell启动文件中改变它。