linux下如何创建nolgin-shell账户
在linux系统维护的过程中,为了安全起见我们可能需要创建一些普通的而且不需要有shell登陆权限、需要特殊指定家目录的账号,比如需要给用户创建一个ftp账户不需要有login系统的shell权限。
1:下面我们先了解一下linux系统的账户,在安装完系统之后,系统会自动建立一批特殊的系统帐户,像bin,ftp等,这些账户都属于系统组的"特殊"的帐户,他们完成系统赋予他们的特定的功能,而我们自己建立的帐户,如:wang,cheng....等都是普通帐户,他们在/home下都有自己的主目录,如:/home/cheng,/home/wang等,而特殊帐户是不需要这个主目录的或者需要指定家目录的!普通帐户有自己的登录shell,如;bash,csh,...而特殊帐户也没有shell,从/etc/passwd中可以看到这些帐户的区别。
2:最后我们看一下怎么创建和修改用户这样的帐号,让它有一个nologin-shell?或者创建的账户的时候指定特定的家目录。
解决方法:
由于保证linux系统的安全等原因,有时候需要让linux系统用户不能登录服务器。一个简单的解决方法是配置他们的帐号,把登录的shell设置成/sbin/nologin。要修改一个已经存在的用户,执行这个命令:
usermod -s /sbin/nologin <username >
对新用户,可以使用这个命令:
useradd -s /sbin/nologin <new username>
3:要确保用-D选项把每个用户的登录shell设置成缺省的/sbin/nolgin(这个需要在环境变量中定义一下别名)
useradd -D -s /sbin/nologin
这样,在使用useradd增加新用户的时候,就不需要用-s选项指定登录shell了,缺省的登录shell就是/sbin/nologin。
4:这种配置仍然允许这个用户执行重要的日常任务,比如收发信件,FTP,访问网络共享目录和其他任务。它只是阻止用户登录服务器。如果服务器是一个主域控制器,用户主要在他们的工作站上使用windows,那么采用这样的配置是个好方法。这个方法也可以阻止因为用户设置了脆弱的密码而导致的非法登录服务器的事件发生。
创建账户时不允许账户登录shell并且指定特定家目录的命令:
[root@club other]# useradd -d /home/www/other/dalian <username > -s /sbin/nologin