热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

建立Linux用户的几种方法

今天在一个技术Q群中求工作时,给一道看似简单,却很有味道的题目“Redhat下,创建一个用户有几种方式?”,特意上网查看了相关的资料,以作后记。方法一传统的Shell命令[addu

  今天在一个技术Q群中求工作时,给一道看似简单,却很有味道的题目“Redhat下,创建一个用户有几种方式?”,特意上网查看了相关的资料,以作后记。

 

  方法一 传统的Shell命令[adduser/useradd]

  这个是最简单、最直接和最常用的方法了,相信大家都很熟悉了吧!下面就给出一些命令:

#adduser username         

        ——>这个可以默认,当然为了安全起见,一般指定ID(尽量大于500)
            如:#adduser username -u 600
#passwd username
        ——>这里必须得指定用户名才可以修改相应的用户的密码,否则将会修改当前用户的密码

 下面是adduser命令的详细参数:

-c comment  新帐号password 文档的说明栏
-d home_dir  新帐号每次登入时所使用的home_dir,预设值为default_home内login名称,并当成登入时目录名称
-e expire_date  帐号终止日期,日期的指定格式为MM/DD/YY
-f inactive_days  帐号过期几日后永久停权;当值为0时帐号,则立刻被停权;而当值为-1时,则关闭此功能,预设值为-1
-g initial_group group  名称或以数字来做为使用者登入起始群组(group),群组名须为现有存在的名称,群组数字也须为现有存在的群组,预设的群组数字为1
-G group,[...]   定义此使用者为此一堆groups的成员,每个群组使用??区格开来,不可以夹杂空白字元;群组名同-g选项的限制,定义值为使用者的起始群组
-m  使用者目录如不存在则自动建立,如使用-k选项 skeleton_dir内的档案将复制至使用者目录下;然而在/etc/skel目录下的档案也会复制过去取代,任何在skeleton_dir or /etc/skel的目录也相同会在使用者目录下一一建立,-k同-m不建立目录以及不复制任何档案为预设值 
-s shell   使用者登入后使用的shell名称,预设为不填写,这样系统会帮你指定预设的登入shell
-u uid   用者的ID值,必须为唯一的ID值,除非用-o选项;数字不可为负值,预设为最小不得小于99而逐次增加,0~99传统上是保留给系统帐号使用
 
   

 

  方法二 手动创建

  其实,手动来创建用户的过程也就是我们用shell命令所做的工作。它所涉及的几个文件是:

     etc/passwd  储存账户信息
              etc/shadow  真正存放密码文件
      etc/group 存放组信息的文件
             etc/gshadow 存放组密码吗的文件

   而它所涉及的目录:

    /hom        家目录
           /var/spool/mail   邮件

 

   1、向 passwd 添加用户相关

#vim /etc/passwd
 按照以下格式添加:
 jx:x:600:600:jx:/home/jx:/bin/bash

 在该文件中,每一行用户记录的各个数据段用“:”分隔,分别定义了用户的各方面属性,各个字段的顺序和含义如下:

  注册名:口令:用户标识号:组标识号:用户名:用户主目录:命令解释程序shell

    

  2、向shadow中添加MD5加密的口令

#grub-md5-crypt
 Password:
 Retype password:
 $1$7CL2v0$N9z0F85BGA31tLUaR7naY1

#chmod
700 /etc/shaow 由于默认是只读,后面完成添加后即刻修改回到原来的权限
#vim
/etc/shadow 复制当前用户的行到最后,将第二部分修改为上网刚刚计算出来的MD5值,类似以下: jx:$1$7CL2v0$N9z0F85BGA31tLUaR7naY1:15640::::::
#chmod
000 /etc/shadow

 

     3、添加到组 group中

  本文件的主要内容包括用户组(Group)、用户组口令、GID及该用户组所包含的用户(User),每个用户组一条记录;格式如下:

group_name:passwd:GID:user_list

  注:用户列表,每个用户之间用“,”号分割;本字段可以为空,如果字段为空表示用户组为GID的用户名

#vim /etc/group
 复制当前用户的行到最后,再修改前面和后面即可,注意GID值,如:
 jxg:x:600:

 

     4、 修改 gshadow 文件添加加密口令

  这个文件与“shadow”类似,需要修改权限

 

#chmod 700 /etc/gshadow

#vim
/etc/gshadow 复制当前用户的行到最后,修改第一个为相应的组即可,如: jxg:!::

#chmod
000 /etc/gshadow

 

     5、创建用户的home 目录

 

 #mkdir /home/jx
 
 #chmod 770 /home/jx 更改"jx"目录的权限为"770" #chown jx:jxg /home/jx  更改 "jx"目录所有人和组
 
 # cat /etc/skel/.
 ./ .bash_logout .bashrc .mozilla/ ../ .bash_profile .gnome2/ #cp -a /etc/skel/.* /home/jx "jx"用户配置环境变量
 
  
 
 在"jx" 目录下生成".bash_logout"".bash_profile"".bashrc" 三个隐藏文件(当前用户为root),如下:
 
 [root@Nagios ~]#ls -a /home/admin/.
 
 . .. .bash_logout .bash_profile .bashrc .gnome2 .mozilla
 
 [root@Nagios ~]#cp /home/admin/.* /home/jx [root@Nagios ~]#chown -R jx:jxg /home/jx/* 修改各文件属性权限

 

     6、配置用户邮件mail目录 

 #cd /var/spool/mail #touch jx #chmod 660 jx 更改"jx"目录权限为660
 
 #chown -R jx:jxg jx 更改 "jx"目录所有人和组

 

  这样下来,我们的手工创建用户就成功啦!

    

   方法三 图形界面-用户管理器

   这个方法是在redhat系统的图形界面下使用的,比较简单。

 可以参考:http://zonghe.17xie.com/book/10965479/33345.html 

 

本文章参考:http://book.51cto.com/art/201006/206455.htm


推荐阅读
  • 用阿里云的免费 SSL 证书让网站从 HTTP 换成 HTTPS
    HTTP协议是不加密传输数据的,也就是用户跟你的网站之间传递数据有可能在途中被截获,破解传递的真实内容,所以使用不加密的HTTP的网站是不 ... [详细]
  • 开机自启动的几种方式
    0x01快速自启动目录快速启动目录自启动方式源于Windows中的一个目录,这个目录一般叫启动或者Startup。位于该目录下的PE文件会在开机后进行自启动 ... [详细]
  • 在CentOS 7环境中安装配置Redis及使用Redis Desktop Manager连接时的注意事项与技巧
    在 CentOS 7 环境中安装和配置 Redis 时,需要注意一些关键步骤和最佳实践。本文详细介绍了从安装 Redis 到配置其基本参数的全过程,并提供了使用 Redis Desktop Manager 连接 Redis 服务器的技巧和注意事项。此外,还探讨了如何优化性能和确保数据安全,帮助用户在生产环境中高效地管理和使用 Redis。 ... [详细]
  • Vim 编辑器功能强大,但其默认的配色方案往往不尽如人意,尤其是注释颜色为蓝色时,对眼睛极为不友好。为了提升编程体验,自定义配色方案显得尤为重要。通过合理调整颜色,不仅可以减轻视觉疲劳,还能显著提高编码效率和兴趣。 ... [详细]
  • 服务器部署中的安全策略实践与优化
    服务器部署中的安全策略实践与优化 ... [详细]
  • 阿里云 Aliplayer高级功能介绍(八):安全播放
    如何保障视频内容的安全,不被盗链、非法下载和传播,阿里云视频点播已经有一套完善的机 ... [详细]
  • 短视频app源码,Android开发底部滑出菜单首先依赖三方库implementationandroidx.appcompat:appcompat:1.2.0im ... [详细]
  • 本文详细介绍了 InfluxDB、collectd 和 Grafana 的安装与配置流程。首先,按照启动顺序依次安装并配置 InfluxDB、collectd 和 Grafana。InfluxDB 作为时序数据库,用于存储时间序列数据;collectd 负责数据的采集与传输;Grafana 则用于数据的可视化展示。文中提供了 collectd 的官方文档链接,便于用户参考和进一步了解其配置选项。通过本指南,读者可以轻松搭建一个高效的数据监控系统。 ... [详细]
  • 在List和Set集合中存储Object类型的数据元素 ... [详细]
  • 在 Linux 环境下,多线程编程是实现高效并发处理的重要技术。本文通过具体的实战案例,详细分析了多线程编程的关键技术和常见问题。文章首先介绍了多线程的基本概念和创建方法,然后通过实例代码展示了如何使用 pthreads 库进行线程同步和通信。此外,还探讨了多线程程序中的性能优化技巧和调试方法,为开发者提供了宝贵的实践经验。 ... [详细]
  • 深入解析HTTPS:保障Web安全的加密协议
    本文详细探讨了HTTPS协议在保障Web安全中的重要作用。首先分析了HTTP协议的不足之处,包括数据传输过程中的安全性问题和内容加密的缺失。接着介绍了HTTPS如何通过使用公钥和私钥的非对称加密技术以及混合加密机制,确保数据的完整性和机密性。最后强调了HTTPS的安全性和可靠性,为现代网络通信提供了坚实的基础。 ... [详细]
  • 在 CentOS 6.5 系统上部署 VNC 服务器的详细步骤与配置指南
    在 CentOS 6.5 系统上部署 VNC 服务器时,首先需要确认 VNC 服务是否已安装。通常情况下,VNC 服务默认未安装。可以通过运行特定的查询命令来检查其安装状态。如果查询结果为空,则表明 VNC 服务尚未安装,需进行手动安装。此外,建议在安装前确保系统的软件包管理器已更新至最新版本,以避免兼容性问题。 ... [详细]
  • 本文详细解析了微信服务端示例类的功能与应用。其中,`ClientResponseHandler` 类主要用于处理微信支付所需的响应数据,而 `TenpayHttpClient` 则是对 HTTP 请求(包括 GET 和 POST 方法)进行了封装,以便在内部调用时更加便捷和高效。这些工具类在实际开发中起到了关键作用,开发者无需深入了解其底层实现细节,即可轻松集成微信支付功能。 ... [详细]
  • 2018年9月21日,Destoon官方发布了安全更新,修复了一个由用户“索马里的海贼”报告的前端GETShell漏洞。该漏洞存在于20180827版本的某CMS中,攻击者可以通过构造特定的HTTP请求,利用该漏洞在服务器上执行任意代码,从而获得对系统的控制权。此次更新建议所有用户尽快升级至最新版本,以确保系统的安全性。 ... [详细]
  • FastDFS Nginx 扩展模块的源代码解析与技术剖析
    FastDFS Nginx 扩展模块的源代码解析与技术剖析 ... [详细]
author-avatar
迷茫的路人甲-
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有