首页 > 代码库 > 【Linux笔记】Linux的用户、组管理

【Linux笔记】Linux的用户、组管理

1. Linux的用户、组管理

  1)   用户

    i.      添加用户

      useradd 用户名

      useradd 不带参数直接添加用户时,家目录默认在/home下,默认使用bash shell

      例1:

      [root@test etc]# useradd testyx

      [root@test etc]# cd /home

      [root@test home]# ls

      ads_yx  testyx

      [root@test home]# passwd testyx

      Changing password for user testyx.

      New password:

      BAD PASSWORD: it is too simplistic/systematic

      BAD PASSWORD: is too simple

      Retype new password:

      passwd: all authentication tokens updated successfully.

      [root@test home]# cat /etc/passwd|grep testyx

      testyx:x:501:502::/home/testyx:/bin/bash

 

      useradd -d 家目录 -g 组名 -G 组集合(逗号间隔) -p 密码 -s shell 用户名

      例2:

      [root@test home]# useradd -d /home/test1 -g test -p 123456 -s /bin/bash testyx1

      [root@test home]# cat /etc/passwd|grep testyx1

      testyx1:x:502:501::/home/test1:/bin/bash  

      [root@test home]# cat /etc/group|grep test

      test:x:501:

      testyx:x:502:

    ii.      修改用户

      usermod

      -c<备注>  修改用户帐号的备注文字。
      -d登入目录>  修改用户登入时的目录。
      -e<有效期限>  修改帐号的有效期限。
      -f<缓冲天数>  修改在密码过期后多少天即关闭该帐号。
      -g<群组>  修改用户所属的群组。
      -G<群组>  修改用户所属的附加群组。
      -l<帐号名称>  修改用户帐号名称。
      -L  锁定用户密码,使密码无效。
      -s<shell>  修改用户登入后所使用的shell。
      -u<uid>  修改用户ID。
      -U  解除密码锁定。

      注意:更改家目录时,目的家目录必须存在且为绝对路径

      例1:修改 testyx的用户名为 testyxc
      # usermod -l testyxc testyx
      例2:锁定账号 testyxc
      # usermod -L testyxc
      例3:解除对 testyxc的锁定
      # usermod -U testyxc    

    iii.      删除用户

      userdel 用户名

      只删除用户,不删除家目录

      例:

      [root@test home]# userdel testyx

      [root@test home]# cd /home

      [root@test home]# ll

      total 12

      drwx------ 3 ads_yx  yxtest 4096 Sep 15 07:52 ads_yx

      drwx------ 2 testyx1 test   4096 Sep 22 01:57 test1

      drwx------ 2     501    502 4096 Sep 22 01:50 testyx 

      userdel  -r用户名

      删除用户及家目录

      例:

      [root@test home]# userdel -r testyx1

      [root@test home]# ll

      total 8

      drwx------ 3 ads_yx yxtest 4096 Sep 15 07:52 ads_yx

      drwx------ 2    501    502 4096 Sep 22 01:50 testyx

      可以看到/home 下的testyx1的用户家目录test1已经被删除

  2)  切换用户

    i.     su 用户名

      不会重新加载切换用户的环境变量

      例:

      [root@test home]# cd /opt

      [root@test opt]# pwd

      /opt

      [root@test opt]# su ads_yx

      [ads_yx@test opt]$ pwd

      /opt

      可以看到切换到ads_yx用户后,当前目录没有改变

    ii.     su – 用户名

      会重新加载切换用户的环境变量

      [root@test opt]# pwd

      /opt

      [root@test opt]# su - ads_yx

      [ads_yx@test ~]$ pwd

      /home/ads_yx

      可以看到切换到ads_yx用户后,当前目录改变为ads_yx的家目录,因为su – ads_yx时重新加载了用户的环境变量

    iii.     sudo

      普通用户下获取超级用户权限

      配置:在/etc/sudoers文件中找到 root ALL=(ALL) ALL 这一行,在它下面加入并保存:

      ads_yx  ALL=(ALL)    NOPASSWD:ALL

      技术分享

                                                   

  3)  查看当前用户

    i.      查看当前用户的uid 和 gid

      [root@test home]# id

      uid=0(root) gid=0(root) groups=0(root)

    ii.      查看当前用户是谁

      [root@test home]# whoami

      root

  4)  环境变量

    i.     系统环境变量

      系统环境变量是放在/etc/profile文件中,使环境变量生效是source命令

      技术分享

      [root@test ~]# echo $PATH

      /opt/lampp/bin:/opt/jdk1.7.0_75/bin:/opt/jdk1.7.0_75/jre/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

  ii.     用户环境变量

      用户自己环境变量是放在用户家目录的.bash_profile文件中*(该示例的shell为bash)

      技术分享

      [root@test ~]# su - ads_yx

      [ads_yx@besttest ~]$ echo $PATH

      /opt/lampp/bin:/opt/jdk1.7.0_75/bin:/opt/jdk1.7.0_75/jre/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/ads_yx/bin

  iii.     env查看环境变量

      [ads_yx@test ~]$ env

      SHELL=/bin/bash

      TERM=xterm

      HISTSIZE=1000

      JRE_HOME=/opt/jdk1.7.0_75/jre

      USER=ads_yx

      ……

      PATH=/opt/lampp/bin:/opt/jdk1.7.0_75/bin:/opt/jdk1.7.0_75/jre/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/ads_yx/bin

      ……

  5)  用户组

    iv.      添加用户组

      groupadd  -g  组id  组名

      例:

      [root@test ~]# groupadd -g 580 testcc

      [root@test ~]# cat /etc/group|grep testcc

      testcc:x:580:

    v.      修改用户组

      groupmod  -g  新的组id  –n 组新名 组旧名

      例:

      [root@test ~]# groupmod -g 581 testcc

      [root@test ~]# cat /etc/group|grep testcc

      testcc:x:581:

     vi.      删除用户组

      groupdel  组名

      例:

      [root@test ~]# groupdel testcc

      [root@test ~]# cat /etc/group|grep testcc

      [root@test ~]#                               --查询不到组信息

 

【Linux笔记】Linux的用户、组管理