linux的用户管理是非常以后工作中重要的一部分,也是linux系统安全的防线。

1、用户理解

那么到底什么是用户呢?用户就是系统使用者的身份。

用户是以怎样的方式储存在计算机中的呢?在系统中用户存储为若干窜字符和若干个系统配置文件。

在linux系统中,用户的信息储存在"/etc/passwd"文件下,如下图所示,"tcpdump:x:72:72::/:/sbin/nologin"的排列顺序为"用户:密码:uid:gid:说明:家目录:用户使用的shell"。

用户的认证信息即密码等储存在"/etc/shadow"文件下,如下图,"tcpdump:!!:16261::::::"的排列顺序为"用户:密码:最后一次密码修改该时间:最短有效期:最长有效期:警告期:非活跃期:帐号到期日"。

用户的组认证信息储存在"/etc/group"文件下,如下图,"slocate:x:21:"的排列顺序"组名称:组密码:组id:附加"。

另外,还有一些文件储存着用户的信息,"/etc/gshadow"储存着组认证信息,"/home/username"是用户家目录,"/etc/skel/.* "是用户的配置文件等等。

2、用户的管理

管理用户的过程包括用户的建立、删除,组的建立、删除,用户的查看,用户信息的修改等。

2.1、用户的查看

在linux系统中,一般可以直接输入命令"id username"来查看指定用户的id信息,如下图所示,查看用户"student"的用户信息,可以看到"uid""gid"组和附加组信息。

2.2、用户的建立与删除

在系统中,用户的建立使用的是"useradd"命令,如下图,用命令直接建立一个名为"jerry"的用户,并用"id"来查看"jerry"用户的信息。

在建立用户时,加上不同的参数就可以指定所建用户不同的信息,"-u"是指定用户uid,"-g"指定用户初始组信息,但是这个组必须已经存在,"-G"指定附加组,这个组也必须存在,"-c"是添加用户说明,"-d"指定用户家目录,"-s"设置用户所使用的shell。

上图就是利用参数建立了一个"uid"是1111,"gid"是21,附加组是"72",用户说明是"student study",家目录是"/home/assassinator",使用"/bin/bash"的一个普通用户we。

在删除用户时,需要输入"userdel -r username",-r表示删除用户信息及用户的系统配置,在删除用户时是必须加上的。例如删除之前建立的用户"jerry"。

2.3、组的建立与删除

用户组的建立是通过"groupadd groupname"来实现的,加了参数"-g"后可以指定组的"gid",如下图建立一个"gid"为8888,组名字为"xian"的组。

在删除用户组时,可以直接输入命令"groupdel groupname"来删除,如删除刚才所建立的组"xian"。

2.4、用户信息的更改

用户在建立之后,所有的信息都是可以更改的,例如刚才所建立的新用户"we",可以"usermod -l wea we"来将"we"的用户名改为"wea",用"usermod -u 3333 wea"将用户的"uid"改为"3333",用"usermod -g 8888 wea"来改变用户的组信息。

又例如参数"-G"可以更改附加组,参数"-aG"可以添加附加组,参数"-c"可以更改用户说明,参数"-d"可以更改用户家目录的指定,"-md"可以更改家目录指定及家目录名称,"-s"可以更改shell,参数"-L"是用来冻结帐号的,参数"-U"来解冻帐号等等。

3、用户权力的下放

在系统中,超级用户可以进行系统的所有操作,但是普通用户因为有权力的限制,有时候无法进行操作,例如"wea"用户想在"/root"下建立一个目录,如下图,这样的操作是没有权限的,这时就需要超级用户对"wea"进行权力下放。

在超级用户登陆下执行"visudo"进入编辑/etc/sudoers模式,如下图,在其中对内容进行添加,格式是:“获得权限用户 主机名称=(获得到的用户身份)命令”,如果需要免密则要在命令前加上"NOPASSWD",如上述操作,就需要添加"wea client=(root) NOPASSWD: /usr/bin/mkdir"。

然后输入命令"sudo mkdir /root/test"即可在"/root"下建立一个名为"test"的目录。

4、用户认证信息

用户的认证信息即密码信息设置可以通过"chage"命令来实现,加入参数"-d",表示用户密码组后一次修改的时间,如果设定成0,用户登陆系统后必须修改自己的密码,参数"-m"表示最短有效期,"-M"表示最长有效期,"-W"表示警告期,"-I"表示用户非活跃天数,"-E"

表示帐号到期日。

以上就是在linux系统中用户管理的一些常用方式。

最新文章

  1. (原)解决.NET 32位程序运行在64位操作系统下的兼容性问题
  2. html5 Web Workers
  3. B-tree&B+tree
  4. Filter过滤器(1)
  5. (原)ubuntu上安装qt
  6. poj1004
  7. ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统
  8. linux下写脚本时-gt是什么意思
  9. 微服务(Microservices)【翻译】
  10. Jfrog Maven jenkins pipeline 流水线 培训 简单实验
  11. linux-shell系列7-ssh密匙生成分发
  12. greenplum 开启和关闭服务
  13. Android -- AudioPlayer
  14. 别人家的PS系列又来了!!!
  15. 比较分析 Spring AOP 和 AspectJ 之间的差别
  16. go开源项目influxdb-relay源码分析(一)
  17. Hadoop压缩之CompressionCodecFactory
  18. 安全技能树简版 正式发布——BY 余弦(知道创宇)
  19. Head First Java-图形化界面
  20. SAP 增强表MODSAP 和TFDIR

热门文章

  1. Awesome Go (http://awesome-go.com/)
  2. 推荐一些C#相关的网站、资源和书籍 (转载自http://blog.csdn.net/chinacsharper/article/details/17514923)
  3. QTableView中加入Check列实现,无需Delegate(使用::data(),Qt原生支持)
  4. Quartz.Net实现作业定时调度详解
  5. Keepalived双主模式配置流程
  6. 拉格朗日乘子法 - KKT条件 - 对偶问题
  7. never下的easysql
  8. Solr 18 - 通过SolrJ局部更新Solr中的文档 (原子操作、非覆盖操作)
  9. C#—使用InstallerProjects打包桌面应用程序
  10. Visual Studio Code配置