首页 > 代码库 > linux命令之 用户和群组

linux命令之 用户和群组

一、保存用户信息的文件

  1. 1 /etc/passwd
root:x:0:0:root:/root:/bin/bashpwftp:x:500:500::/alidata/www/wwwroot/:/sbin/nologinapache:x:48:48:Apache:/var/www:/sbin/nologinmysql:x:501:400::/home/mysql:/sbin/nologin

一共7项,都用:分隔

1 用户名  
2 密码 真正的密文保存在/etc/shadow中
3 UID 用户id
4 GID 组id
5 账户信息 这个账户有什么样的意义
6 家目录 在这个目录中,用户拥有全部的权限
7 shell类型 /sbin/nologin 非登录用户  
/bin/bash   一般用户使用的shell
/bin/false 无法登录

 

2. 新增用户

      useradd [-u UID] [-g GID] [-d HOME] [-mM]  [-s shell]  username

案例:
useradd –u  500 –g 500 –d /home/pwftp  -s /sbin/nologin  pwftp
建立了一个用户id为500,组id为500的用户,用户名pwftp,主目录/home/pwftp,
使用的/sbin/nologin这个shell是不可以登录的.
如果不想系统自动创建mysql用户家目录/home/mysql,则要使用-M参数

3. 删除用户

      userdel 用户名

案例:
userdel mysql
删掉mysql这个用户.
加入mysql用户组里只存在mysql这一个用户的话,这个组也会被同时删掉
如果mysql登录状态的,那么得等它登出了再删除


[root @test /root]# userdel testing  <==只有砍掉 /etc/passwd 与 /etc/shadow 的该账号内容;
[root @test /root]# userdel -r testing<==连该账号的 /home/testing 与 /var/spool/mail/testing 都砍掉!

这个指令下达的时候要小心了!通常我们要移除一个账号的时候,你可以手动的将 /etc/passwd 与 /etc/shadow 里头的该账号取消即可!一般而言,如果该账号只是『暂时不启用』的话,那么将 /etc/shadow 里头最后倒数一个字段设定为 0 就可以让该账号无法使用,但是所有跟该账号相关的数据都会留下来!使用 userdel 的时机通常是『你真的确定不要让该用户在主机上面使用任何数据了!』

停用一个账号:

#vi /etc/shadow
/pwftp
  找到用户所在行
shift+a  移动到本行的行尾并编辑状态 做如下的修改:
pwftp:$6$fkOSovyP$FDrG1XFhNOvy.ZnsDhrbN7Jnj/Aw1rmN2T8UewW.dcS3nrKbbkRTl.JP4/fh/UFXZ.5Jq61WiLwLYQDssUpbv1:16367:0:99999:7::0:
再次使用pwftp用户登录时,得到的提示如下图:
image


 

4. 修改用户

      usermod -参数  参数值  用户名

usermod –s /bin/bash  mysql
修改mysql用户的shell为bash,这样mysql也能登陆了
其实吧,如果要求改用户的家目录,shell,或者组信息,还是直接修改/etc/passwd文件来的简单直接。

 

[root @test /root]# useradd testing  <==直接以默认的数据建立一个名为 testing 的账号
[root @test /root]# useradd -u 720 -g 100 -M -s /bin/bash testing   <==以自己的设定建立账号

这个指令影响/使用的文件可多了呢,都有以下这些:

  • /etc/passwd
  • /etc/shadow
  • /etc/group
  • /etc/gshadow
  • /etc/skel
  • /etc/default/useradd
  • /etc/login.defs
  • 5. 建立预设的账号:

          建立账号时,如果没有特殊的限定,通常我们只使用 『 useradd username 』就可以建立一个名为username的账号了!

         不过你知道预设账号的基本设定吗?嘿嘿嘿嘿!!基本设定就在/etc/default/useradd 和/etc/login.defs 这两个档案中!

    在 login.defs 里头有点像底下这样:

    MAIL_DIR        /var/spool/mail  <==邮件默认目录摆放处
    PASS_MAX_DAYS   99999           <==密码需要变更的时间
    PASS_MIN_DAYS   0            <==密码多久需要变更
    PASS_MIN_LEN    5            <==密码的最小长度(这个可以改大一些吧!)
    PASS_WARN_AGE   7            <==密码快要失效之前几天发警告讯息?
    UID_MIN                   500    <==预设帐号最小起算的 UID 数目(最小为 500 )
    UID_MAX                 60000    <==最大的 UID 限制
    GID_MIN                   500    <==GID 限制
    GID_MAX                 60000    <==GID 限制
    CREATE_HOME     yes            <==是否建立家目录,默认是要建立家目录(若为 mail server 可以取消此项目)

    几乎可以设定的都在这里设定了!所以需要了解一下这个档案!另外,如果你是专门开启 mail server 的,那么由于使用者账号不需要登入主机,

    所以也就不需要给予家目录,这个时候最后一项 GREATE_HOME 或者可以设定为 no !此外,当你以默认的数据建立账号时,该账号的 UID 将会取目前在

    /etc/passwd 当中『最大的(其实是小于 60000)』那一个 UID + 1 即是预设帐号的 UID 啰!

     

    而至于 useradd 内容则为:

    GROUP=100      <==预设的使用者群组为 100 ,查看一下 /etc/group 时,这个组名为 users 呢!
    HOME=/home     <==默认用户的家目录建立的目录
    INACTIVE=-1    <==是否不启动,设定为 -1 自然就是启动啦!
    EXPIRE=        <==是否需要设定『死亡』时间?如果你希望该用户在期限到之后就不许登入,此项可以设定天数。
    SHELL=/bin/bash <==预设的 Shell 为何?
    SKEL=/etc/skel <==用户家目录的内容!

    在这个项目中,最需要了解的就是 SKEL 啦!当你建立一个名为 testing 的账号时,默认的家目录会是『 /home/testing 』这个目录,

    而这个目录的内容就是由 /etc/skel 所 copy 过去的!所以『当你想要让用户的默认家目录内容更动时,可以直接将要更动的数据写在 /etc/skel 当中!』

    6. 以自己的条件建立账号:

    如果要以自己的条件建立账号的时候,一般我都是喜欢手动的增加啦!

    不然就是先以上面的那一个例子增加一个账号之后,在去手动修改 /etc/passwd 等等的档案!

     

    二、保存用户密码的文件

    1. /etc/shadow

    1 账户名  
    2 密码  
    3 上次密码修改日期  
    4 密码不可被更改的天数  
    5 密码需要被变更的天数  
    6 密码需要被变更前的警告期限  
    7 账号失效期限  
    8 账号取消日期 设为<1970到系统当前日期的数字时,表示账号已经取消,则该不能使用。
    9 保留  

    三、保存群组信息的文件

    1.  /etc/group

      这个档案可以让你直接将账号所要支持的群组加进来!例如你有一个账号名称为 myaccount ,你想要让这个账号可以支持 root 这个群组,则你可以直接在 /etc/group 里面加入呢!很方便,不需要动用的指令呦!

      root:x:0:root
      bin:x:1:root,bin,daemon
      daemon:x:2:root,bin,daemon
      sys:x:3:root,bin,adm
      adm:x:4:root,adm,daemon

        1 2 3 4
        组名 群组密码 群组 ID (GID)
        1. 支持的账号名称

      四、保存群组密码的文件

      1. /etc/gshadow

      root:::root
      bin:::root,bin,daemon
      daemon:::root,bin,daemon
      sys:::root,bin,adm
      adm:::root,adm,daemon

       

       

      五、增加使用者的一般步骤:

      新增使用者的时候,如果该使用者所属的群组不存在,则得(1)先新增群组;

      然后(2)再新增使用者账号。当然,如果要删除群组时,则必须要反过来,先删除使用者才能删除群组!这点请大家留意啰!

       

      更详细的教程请访问  鸟哥的linux私房菜   http://u2l.info/3iltdg

      linux命令之 用户和群组