本文出自   http://blog.csdn.net/shuangde800

---------------------------------------------------------------------------------

用户,组
当我们使用Linux时,需要以一个用户的身份运行,用户限制使用者或进程可以使用,或不可使用哪些资源。

,用来方便组织管理用户

  • 每个用户拥有一个UserID,操作系统实际使用的是用户ID,而非用户名
  • 每个用户属于一个主组,属于一个或多个附属组
  • 每个组拥有一个GroupID
  • 每个进程以一个用户身份运行,并受该用户可访问的资源限制
  • 每个可登录用户拥有一个指定的shell

用户

用户ID为32位,从0开始,但是为了和老式系统兼容,用户ID限制在60000以下。

用户分为以下三种:
  • root用户 (ID为0的用户为root用户)
  • 系统用户(1~499)
  • 普通用户(500以上)
系统中的文件都有一个所属于用户及所属组
使用id命令可以显示当前用户的信息
使用passwd命令你个可以修改当前用户密码


相关文件
/etc/passwd    - 保存用户信息
/etc/shadow    - 保存用户密码(加密的)
/etc/group       - 保存组信息



查看登录的用户

  • 命令whoami显示当前用户
  • 命令who显示有哪些用户已经登录系统
  • 命令w显示有哪些用户已经登录并且在干什么

pts/0:图形界面
Linux很多时候,命令越长,显示出来的越少,命令越少,显示出来的越多


创建一个用户

命令useradd创建一个新用户
$ useradd  zsd    新建一个名为zsd的用户
这个命令会执行以下操作
1. 在/etc/passwd中添加用户信息
2. 如果使用passwd命令为指定用户创建密码,则将密码加密保存在/etc/shadow文件中
3. 为用户创建一个新的家目录 /home/zsd
4. 将/etc/skel 中的文件复制到用户家目录中(这个文件是新建用户的一些初始文件,在这个文件中新建一些文件,例如如用户文档等,以后只要创建新用户,都会自动有这些文件)
5. 建立一个与用户用户名相同的组,新建用户默认属于这个同名组

命令useradd支持以下参数
-d  家目录
-s  登录shell
-u  userid
-g  主组
-G 附属组
也可以通过直接修改/etc/passwd的方式实现,但是不建议




修改用户信息
usermod   参数  username

命令usermod支持以下参数
-l   新用户名。 $ usermod -l  new_name  test_user  把test_user改名为new_name
(修改新用户名后,/home目录下的用户文件名不会改变,需要手动修改,否则用户登录找不到家目录)
-u  新userid。  $ usermod -u 1002  test_user  把test_user的id改为1002
-d  用户家目录位置
-g  用户所属主组
-G  用户所属附属组
-L   锁定用户使其不能登录
-U  解除锁定



删除用户
命令userdel 用以删除指定用户

$ userdel  test_user       (删除用户,但保留用户的家目录) 
$ userdel  -r  test_user  (删除用户,并且删除该用户家目录)





几乎所有操作系统都有组的概念,通过组,我们可以更加方便地归类和管理用户。一般来讲,我们使用部门,职能或地理区域的分类方式来创建使用组。

  • 每个组有一个组ID
  • 组信息保存在 /etc/group 中
  • 每个用户拥有一个主组,同时还可以拥有最多31个附属组



创建,修改,删除组

命令groupadd用以创建组
   $ groupadd  lab104


命令groupmod用以修改组信息
   $ groupmod  -n  newname  oldname   修改组名
   $ groupmod  -g  newGid  oldGid          修改组ID

命令groupdel用以删除组
   $  groupdel   lab104

    


Linux入门基础 #6:Linux用户基础的更多相关文章

  1. 零基础Linux入门之《Linux就该这么学》

    本书是由全国多名红帽架构师(RHCA)基于最新Linux系统共同编写的高质量Linux技术自学教程,极其适合用于Linux技术入门教程或讲课辅助教材,目前是国内最值得去读的Linux教材,也是最有价值 ...

  2. lilybbs-faq - linux入门以及百合 Linux 版精华区导读

    QUESTIONS 问题与解答 不需要任何命令的简单介绍 历史 (APUE 提到了1990年之前的unix历史,还有各种标准 ANSI ISO IEEE posix xpg3.... 但是linux ...

  3. linux入门教程(七) linux系统用户以及用户组管理

    关于这部分内容,笔者在日常的linux系统管理工作中用到的并不多,但这并不代表该内容不重要.毕竟linux系统是一个多用户的系统,每个账号都干什么用,你必须了如指掌.因为这涉及到一个安全的问题. [认 ...

  4. Linux入门:usermod - 修改用户帐户信息

    一.什么是usermod? usermod 命令通过修改系统帐户文件来修改用户账户信息usermod [options] user_name选项(options)-a|--append ##把用户追加 ...

  5. linux入门教程(八) Linux磁盘管理

    [查看磁盘或者目录的容量 df 和 du] df 查看已挂载磁盘的总容量.使用容量.剩余容量等,可以不加任何参数,默认是按k为单位显示的 df常用参数有 –i -h -k –m等 -i 使用inode ...

  6. linux入门教程(六) Linux文件与目录管理

    在linux中什么是一个文件的路径呢,说白了就是这个文件存在的地方,例如在上一章提到的/root/.ssh/authorized_keys 这就是一个文件的路径.如果你告诉系统这个文件的路径,那么系统 ...

  7. linux入门教程(三) Linux操作系统的安装

    因为笔者一直都是使用CentOS,所以这次安装系统也是基于CentOS的安装.把光盘插入光驱,设置bios光驱启动.进入光盘的欢迎界面. 其中有两个选项,可以直接按回车,也可以在当前界面下输入 lin ...

  8. Linux入门培训教程 linux网络编程socket介绍

    一.概念介绍 网络程序分为服务端程序和客户端程序.服务端即提供服务的一方,客户端为请求服务的一方.但实际情况是有些程序的客户端.服务器端角色不是这么明显,即互为Linux培训 客户端和服务端. 我们编 ...

  9. Linux入门培训教程 linux下拷贝cp删除rm移动mv命令参数以及说明

    拷贝移动删除在windows中看起来这么简单,但linux经常使用的文字界面,所以对于linux系统 下拷贝cp删除 rm 移动mv命令参数就不得不需要了解和学习了 cp 该命令的功能是将给出的文件或 ...

  10. linux入门教程(五) Linux系统的远程登录

    首先要说一下,该部分内容对于linux初学者来讲并不是特别重要的,可以先跳过该章节,先学下一章,等学完后再回来看这一章. Linux大多应用于服务器,而服务器不可能像PC一样放在办公室,它们是放在ID ...

随机推荐

  1. java记事本

    新知识点 1.撤销 textArea添加一个实现监听接口的类(添加了之后可以一直监视着添加的删除的情况,以便来撤销 textArea.getDocument().addUndoableEditList ...

  2. socket (转,吴秦,http://www.cnblogs.com/skynet/archive/2010/12/12/1903949.html)

    Linux Socket编程(不限Linux)2010-12-12 21:58 by 吴秦 我们深谙信息交流的价值,那网络中进程之间如何通信,如我们每天打开浏览器浏览网页时,浏览器的进程怎么与web ...

  3. 【转载】如何学习javascript

    如何学习Javascript 作者: chaomao  首先要说明的是,咱现在不是高手,最多还是一个半桶水,算是入了JS的门. 谈不上经验,都是一些教训. 这个时候有人要说,“靠,你丫半桶水,凭啥教我 ...

  4. 解决spring mvc 上传报错,Field [] isn't an enum value,Failed to convert value of type 'java.lang.String[]' to required type '

    没有选择附件,但是点击上传按钮的时候会报错. 之前不选择文件,直接上传空文件是可以的,后来不知道改了什么就不行了. 错误信息: -- :: [http--] TRACE org.springframe ...

  5. php 带cookie登陆

    <?php /** * @version $id */ define('SCRIPT_ROOT',dirname(__FILE__).'/'); $act = trim($_REQUEST['a ...

  6. 随机数是骗人的,.Net、Java、C为我作证(转载)

      几乎所有编程语言中都提供了"生成一个随机数"的方法,也就是调用这个方法会生成一个数,我们事先也不知道它生成什么数.比如在.Net中编写下面的代码: Random rand = ...

  7. iTunes 安装终极解决方案

    近日手贱升级了Itunes,升级过程即报失败,然后卸载所有相关东西,再重装,Itunes安装成功,但是报告无法使用iphone,经过几天摸索,发现是Apple Mobile Device Suppor ...

  8. Linux——搭建PHP开发环境第一步:apache

    原文链接:http://www.2cto.com/os/201511/450258.html ##### Apache 编译安装[root@localhost ~]# yum install gcc ...

  9. UIAlertView的使用方法

    UIAlertView的使用方法 1. 最简单的用法 UIAlertView*alert = [[UIAlertView alloc]initWithTitle:@"提示" mes ...

  10. UMHexagonS搜索过程

    通过相邻块的预测得到mvp后,会以mvp为基础搜索最佳的匹配块,UMHexagonS就是h.264中用的一种搜索算法. UMHexagonS是一种整像素搜索算法,也就是搜索过程中,参考图像一直都是原来 ...