Linux用户和组

用户和组

Linux多用户的意义

Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。

用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另一方面也可以帮助用户组织文件,并为用户提供安全性保护。

用户

每个用户有唯一的编号uid

使用ls -l可以查看文件所属的用户和组

用户分类

超级管理员: UID为0 root用户拥有至高无上的命令,root用户不能改名(#为管理员 $为普通用户)

系统用户:UID小于1000,用于管理服务,一般不允许登陆

普通用户:UID大于或等于1000,权限较小,允许登陆,只能使用bin下命令

每个组有唯一的gid,用户一定属于某个组,同时也可以加入多个辅助组(创建用户,系统会创建一个同名的组来装载该用户)

用户管理命令

用户创建 useradd

-c,  --comment  描述
-d,  --home HOME_DIR 家目录
-e, --expiredate EXPIRE_DATE  过期时间
-f, --inactive INACTIVE 是否启用过期机制
-g, --gid GROUP   指定组ID号
-G, --groups GROUP1[,GROUP2,...[,GROUPN]]]  附加组
-m, --create-home     建立家目录           
-M                    不建立家目录
           Do not create the user′s home directory, even if the system wide
           setting from /etc/login.defs (CREATE_HOME) is set to yes.

-N, --no-user-group 不指定用户同名组
-r, --system    指定该帐号是系统帐号
-s, --shell SHELL  指定登录shell
-u, --uid UID   指定用户ID号
-U, --user-group 指定用户创建用户同名组
-o 创建用户是可以uid重复

注意:用户名不能超过 32 个字符
#创建用户成功后会自动创建用户同名的组
useradd zx125 

密码设置 passwd

passwd - set user password
-l lock   锁定账号不能登录
-u unlock 解锁账号
-d delete a passwd  for an account 删除一个账号的密码
-S  This will output a short information about  the  status  of  the password for a given account.打印用户的简短信息
--stdin 特殊的密码赋值操作
    echo linux |passwd --stdin vfast    1 > 0

查看用户信息

id user

修改账号信息 usermod

-a, --append 将用户添加到附加组
-L, --lock 锁定账号
-U, --unlock 解锁账号
-m, --move-home with -d 将用户的目录移动到新位置

删除账号 userdel

-f, --force 删除账号,不包括账号文件
-r, --remove 删除主目录及邮箱

修改用户简短信息 chage

-m 密码可更改的最小天数。为零时代表任何时候都可以更改密码。
-M 密码保持有效的最大天数。
-W 用户密码到期前,提前收到警告信息的天数。
-E 帐号到期的日期。过了这天,此帐号将不可用。
-d 上一次更改的日期    如果设置为0 用户下次登录必须改密码
-i 停滞时期。如果一个密码已过期这些天,那么此帐号将不可用
-l 例出当前的设置。由非特权用户来确定他们的密码或帐号何时过期

查看

用户信息文件
/etc/passwd
   User account information.
          [用户名]:[密码]:[UID]:[GID]:[身份描述]:[主目录]:[登录shell] 
/etc/shadow
           Secure user account information.
                 用户名:这是用户登录系统时使用的用户名,它在系统中是惟一的
                 口令:此字段存放加密的口令
                 最后一次修改的时间:标识从某一时刻起到用户最后一次修改口令的天数
                 最小时间间隔:两次修改口令之间的最小天数
                 最大时间间隔:口令保持有效的最多天数,即多少天后必须修改口令
                 警告时间:从系统开始警告到口令正式失效的天数
                 不活动时间:口令过期多少天后,该账号被禁用
                 失效时间:指示口令失效的绝对天数(从1970年1月1日开始计算)
                 标志:未使用

用户切换和注销

su - 用户名	切换用户
exit		  回到原来用户

前提:如果在系统的图形界面无效
logout

who am i 原始登录用户
whoami 当前用户

组管理命令

groupadd

-g, --gid GID        指定GID
-r, --system        创建一个系统组
-o, --non-unique    此选项允许添加一个使用非唯一 GID 的组

注意:组名最长为 32 个字符

groupmod

-g, --gid GID
-n, --new-name NEW_GROUP  给组改名
-o, --non-unique 

例子  
1、将组名为test3的名字改为baism
groupmod test3 -n baism

groupdel

groupdel - delete a group

gpasswd

gpasswd  newgrp
gpasswd - administer /etc/group and /etc/gshadow
-a, --add USER                add USER to GROUP
-d, --delete USER             remove USER from GROUP
-r, --remove-password         remove the GROUP's password
-R, --restrict                restrict access to GROUP to its members 限制用户登录该组,除了组成员。
-M, --members USER,...        set the list of members of GROUP
-A, --administrators ADMIN,...
                                set the list of administrators for GROUP


案例:
设置组root密码    #gpasswd root
用户组身份切换为root $newgrp root
组管理员设置 #gpasswd test -A user3
限制陌生用户切换到组 #gpasswd -R test
指定组的成员列表   # gpasswd test -M user3,user2

查看

/etc/group
  Group account information.

      [组名]:[密码域]:[GID]:[组员列表] 

/etc/gshadow
  Secure group account information.

组密码的用处

可以临时给一个用户 加入组内(用户本身不属于这个组)

 当一个用户同时属于多个组,如何切换组身份  newgrp 命令 
            su - user1 
            newgrp test     切换到test组

       如何临时切换到某个外组【用户本身不属于这个组】
            1)首先给外组设置一个组密码 
                 gpasswd root
                 正在修改 root 组的密码
                 新密码:
                 请重新输入新密码
                 su - user1
                 newgrp root

所有相关文件

创建用户流程

创建一个用户首先会在下面开头的4个文件写入相关的默认信息,默认信息从哪里来呢?首先会从useradd里面拿去基本的用户默认值,密码相关的默认值从login.defs里面拿,用户文件是直接拷贝的/etc/skel/文件到home目录下面

/etc/passwd
        用户账户信息。

/etc/shadow
        安全用户账户信息。

/etc/group
        组账户信息。

/etc/gshadow
         安全组账户信息。

/etc/default/useradd
           账户创建的默认值。
           (比如创建用户并设置不创建同名组,就会去这个文件夹找默认配置的组100)

/etc/skel/
           包含默认文件的目录。

/etc/login.defs
           Shadow 密码套件配置。
posted @ 2019-09-22 19:43  zx125  阅读(262)  评论(0编辑  收藏  举报