【Linux】——用户账号和组账号

1.UID and GID

1.1 用户账号和组账号概述

linux基于用户身份对资源访问进行控制

● 用户账号
超级用户、普通用户、程序用户

用户账号
超级用户: root用户是 Linux操作系统中默认的超级用户账号,对本主机拥有最高的权限。系统中超级用户是唯一的

普通用户:由root用户或其他管理员用户创建,拥有的权限会受到限制,一般只在用户自己的宿主目录中拥有完整权限

程序用户:在安装inux操作系统及部分应用程序时,会添加一些特定的低权限用户账号,这些用户一般不允许登录到系统仅用于维持系统或某个程序的正常运行,如bin、 demon、ftp、mail等。

● 组账号
基本组(私有组)
附加组(公共组)

组账号

基本组(私有组):基本组账号只有一个,一般为创建用户时指定的组。在/etc/passwd文件中第4字段记录的即为该用户的基本组GID号。

附加组(公共组):用户除了基本组以外,额外添加指定的组

扫描二维码关注公众号,回复: 14753169 查看本文章

● UID和GID
UID (User IDentity,用户标识号)
GID (Group IDentity,组标识号)

UID:用户标识号

GID:组标识号

root 用户账号的UID和GID号为固定值0

程序用户账号的UID和GID号默认为Centos5,6: 1~499,Centos7: 1~999

普通用户的UID和GID号默认为Centos5,6: 500~60000,Centos7:1000~60000

1.2 用户账号文件/etc/passwd

保存用户名称、宿主目录、登录shell等基本信息

文件位置:/etc/passwd

每一行对应一个用户的账号记录

在这里插入图片描述
在这里插入图片描述

root:x:0:0:root:/root:/bin/bash
第一字段root:用户名
第二字段x:占位符
第三字段0:用户的UID号
第四字段0:用户基本组的GID号
第五字段root:用户全名信息的描述
第六字段/root:用户的宿主目录,也就是家目录所在位置
第七字段/bin/bash:用户登录的shell信息(/bin/bash:默认的shell登录信息;/sbin/nologin:不允许登录的shell信息)

1.3 用户账号文件/etc/shadow

保存用户的密码、账号有效期等信息

文件位置:/etc/shadow

每一行对应一个用户的密码记录

在这里插入图片描述

root:$6$rn9yK8kuso3pcHaI$mi0mdf/UQf9p2PdB/zkG1Zmyh7DtvL2Ckgr1aFjTJP1tFPKwRLaKUzUxLtKvR2b995g4JqOcTuWd6EF/ad4xa0::0:99999:7:::
第一字段root:用户名
第二字段$6$rn9yK8kuso3pcHaI$mi0mdf/UQf9p2PdB/zkG1Zmyh7DtvL2Ckgr1aFjTJP1tFPKwRLaKUzUxLtKvR2b995g4JqOcTuWd6EF/ad4xa0:MD5算法加密(当为"*""!!"时表示此用户不能登录到系统。若该字段内容为空,则该用户无须密码即可登录系统)
第三字段:::上次修改密码的时间
第四字段0:密码的最短有效天数
第五字段99999:密码的最长有效天数
第六字段7:提前多少天警告用户密码将过期,默认为7
第七字段:::密码过期之后多少天禁用此用户
第八字段:::账号失效时间
第九字段:保留字段(未使用)

在这里插入图片描述

2. UID

2.1 添加用户账号

useradd命令

useradd命令格式:useradd [选项]…用户名

常用选项:

-u、-d、-e、-g、-G、-M、-s

[root@clr ~]# which useradd   #查看外部命令useradd在系统中的位置
/usr/sbin/useradd
[root@clr ~]# ll /usr/sbin/useradd
-rwxr-xr-x. 1 root root 137616 89 2019 /usr/sbin/useradd
[root@clr ~]# which adduser  #查看外部命令adduser在系统中的位置
/usr/sbin/adduser
[root@clr ~]# ll /usr/sbin/adduser
lrwxrwxrwx. 1 root root 7 323 00:42 /usr/sbin/adduser -> useradd   #adduser是个软链接指向useradd

在这里插入图片描述

在这里插入图片描述

useradd -d ## -e ## -s ##命令:指定用户的宿主目录位置、账户失效时间以及登录shell信息

[root@clr ~]# useradd -d /admin -e 2024-01-01 -s /sbin/nologin admin1  #添加用户admin1,指定家目录/admin;指定失效时间:2024-01-01;指定不能登录到系统的shell命令

在这里插入图片描述

[root@clr ~]# useradd -u 2000 -g gaozhenyang -G 1002 admin2  #指定用户admin2的UID号为2000;指定基本组名为gaozhenyang;指定附加组的GID号为1002(admin1)

[root@clr ~]# vim /etc/passwd
admin2:x:2000:1001::/home/admin2:/bin/bash

[root@clr ~]# id admin2 
uid=2000(admin2) gid=1001(gaozhenyang)=1001(gaozhenyang),1002(admin1)  #查看可得,用户admin2的UID为2000;基本组的GID为1001(gzozhenyang);附加组的GID号为1002(admin1)

创建程序用户:useradd -M -s命令:不建立宿主目录,指定用户的登录shell信息

[root@clr ~]# useradd -M -s /sbin/nologin ergouzi #创建程序用户ergouzi,不建立宿主目录,shell登录信息,设置为不允许登录
[root@clr ~]# vim /etc/passwd
ergouzi:x:2001:2001::/home/ergouzi:/sbin/nologin

2.2 设置/更改用户口令passwd

passwd命令

passwd命令格式:passwd [选项]…用户名

常用选项:

-d、-l、-S、-u

不指定用户名时,修改当前账号的密码

passwd -d命令:清空指定用户的密码,仅使用用户名即可登录系统

[root@clr ~]# passwd -d gaozhenyang
清除用户的密码 gaozhenyang。
passwd: 操作成功

passwd -l命令:锁定用户账户,锁定的用户账号将无法再登录系统

[root@clr ~]# passwd -l gaozhenyang #锁定用户账户,锁定的用户账户将无法再登录系统
锁定用户 gaozhenyang 的密码 。
passwd: 操作成功
[root@clr ~]# passwd -l ergouzi
锁定用户 ergouzi 的密码 。
passwd: 操作成功

passwd -S命令:看用户账户的状态(是否被锁定)

[root@clr ~]# passwd -S gaozhenyang #查看用户账户的状态是否被锁定
gaozhenyang LK 2023-04-02 0 99999 7 -1 (密码已被锁定。)

passwd -u命令:解锁用户账户

[root@clr ~]# passwd -u gaozhenyang #解锁用户账户gaozhenyang
解锁用户 gaozhenyang 的密码。
passwd: 警告:未锁定的密码将是空的。
passwd: 不安全的操作(使用 -f 参数强制进行该操作)

[root@clr ~]# passwd -u -f gaozhenyang #-f命令,强制解锁用户
解锁用户 gaozhenyang 的密码。
passwd: 操作成功

设置用户密码之方法二:echo “密码” | passwd --stdin 用户名

[root@clr ~]# echo "abc" | passwd --stdin gaozhenyang #将用户gaozhenyang的密码修改为abc
更改用户 gaozhenyang 的密码 。
passwd:所有的身份验证令牌已经成功更新。

设置用户密码之方法三:echo <用户名>:<密码> | chpasswd

[root@clr ~]# echo gaozhenyang:123 | chpasswd #将用户gaozhenyang的密码修改为123

2.3 修改用户账号属性usermod

usermod命令

usermd命令格式:usermod [选项]…用户名

常用选项:

-l、-L、-U

以下选项与useradd命令中的含义相同

-u、-d、-e、-g、-G、-s

usermod -l命令:更改用户账号的登录名称。

[root@clr ~]# usermod -l CLR cCLR  #更改用户账户cCLR的登录密码

[root@clr ~]# vim /etc/passwd
CLR:x:1000:1000:CLR:/home/cCLR:/bin/bash

usermod -s命令:指定用户的登录shell

[root@clr ~]# usermod -s /bin/bash ergouzi #修改用户账户ergouzi的登录方式,修改为可登录/bin/bash

[root@clr ~]# vim /etc/passwd
ergouzi:x:2001:2001::/home/ergouzi:/bin/bash

usermod -d命令:修改用户的宿主目录位置

[root@clr ~]# usermod -d /admin CLR   #修改用户CLR的宿主目录位置为/admin

[root@clr ~]# vim /etc/passwd
CLR:x:1000:1000:CLR:/admin:/bin/bash
"/etc/passwd" 50L, 2568C                   

usermod -e命令:修改用户的账户失效时间,可使用YYYY-MM-DD的日期格式

[root@clr ~]# usermod -e 2023-12-31 admin1 #修改账户用户admin1的失效时间

[root@clr ~]# vim /etc/shadow
admin1:!!:19449:0:99999:7::19722:

usermod -L命令:锁定用户账户

[root@clr ~]# usermod -L ergouzi  #锁定用户账户ergouzi 

[root@clr ~]# passwd -S ergouzi  #查看用户账户ergouzi的状态,是否已被锁定
ergouzi LK 2023-04-02 0 99999 7 -1 (密码已被锁定。)

usermod -U命令:解锁用户账户

[root@clr ~]# echo ergouzi:123 | chpasswd #为用户账户ergouzi设置密码123

[root@clr ~]# usermod -U ergouzi  #解锁用户账户ergouzi

[root@clr ~]# passwd -S ergouzi  #查看用户账户ergouzi的状态(是否已被锁定)
ergouzi PS 2023-04-02 0 99999 7 -1 (密码已设置,使用 SHA512 算法。)

2.4 删除用户账号userdel

userdel命令

userdel命令格式:userdel [-r] 用户名

添加 -r 选项时,表示连用户的宿主目录一并删除

在这里插入图片描述

userdel -r命令:删除用户并删除其家目录

[root@clr ~]# userdel -r admin2  #删除用户admin2,并且连同家目录也一并删除
[root@clr ~]# ls /home/   #admin2的家目录已被删除
gaozhenyang
  • 当系统中的某个用户帐号已经不再需要使用时(如该员工已经从公司离职等情况),可以使用userdel命令将该用户帐号删除

  • 使用userdel命令需要指定帐号名称作为参数,添加"-r"选项时可以将该用户的宿主目录一并删除

3. GID

3.1 用户账号的初始配置文件

文件来源

useradd命令添加一个新的用户账号后,会在该用户的宿主目录中建立一些初始配置文件

这些文件来自于账号模板目录/etc/skel/,基本上都是隐藏文件。

主要的用户初始配置文件

● ~/.bash_profile

● ~/.bashrc

● ~/.bash_logout

查看模板目录隐藏文件/etc/skel/

[root@clr ~]# ls /etc/skel/ -a #查看账号模板目录/etc/skel/下的隐藏文件
.  ..  .bash_logout(用户退出系统时,加载的文件)  .bash_profile(用户登录时,自动加载的环境变量配置文件)  .bashrc  .mozilla

查看.bash_profile文件

[root@clr ~]# vim .bash_profile #查看并修改.bash_profile文件

# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc  #./bash_profile文件会调用该用户的~/.bashrc文件

查看.bashrc文件

[root@clr ~]# vim .bashrc  #查看并修改.bashrc文件

# .bashrc

# User specific aliases and functions

alias rm='rm -i'  #每次登录系统或shell环境时,都会自动执行的程序代码
alias cp='cp -i'
alias mv='mv -i'

# Source global definitions
if [ -f /etc/bashrc ]; then
        . /etc/bashrc  #./bashrc文件会调用./etc/bashrc文件

作用范围:

etc/profile /etc/bashrc 对所有用户有效

~/.bash_profile ~/.bashrc 只针对=当前用户有效

功能用途:

profile:系统启动后用户登录直接执行文件里的命令或者配置

bashrc:用户登录或者用户切换shell环境就会执行文件里的命令或者配置

调用关系:

/etc/profile -> /etc/profile.d/xxx. sh

~/.bash_profile -> ~/.bashrc -> /etc/bashrc

注意:

  • /etc/profile中的文件,系统启动时会自动执行

  • ~/.bash_profile的文件,只有在指定用户登录或切换shell环境时,才会执行。

3.2 组账号文件

与用户帐号文件相类似

  • /etc/group:保存组帐号基本信息

  • /etc/gshadow:保存组帐号的密码信息

在这里插入图片描述

查看组账号基本信息/etc/group

[root@clr ~]# vim /etc/group

kvm:x:36:qemu
组名:密码占位符:组的GID号:组中用户
[root@clr ~]# useradd -G admin1 zhangsan #添加用户zahngsan,并指定附加组为admin

[root@clr ~]# vim /etc/group
admin1:x:1002:lisi,zhangsan  #admin1中有组员lisi和zhangsan 

3.3 添加组账号groupadd

groupadd命令

groupadd命令格式:groupadd [-g GID] 组账号名

示例

在这里插入图片描述

groupadd -g命令:添加组,并设置指定的组账号

[root@clr ~]# groupadd -g 2345 mygirl #添加组mygirl,并设置组GID号为2345
[root@clr ~]# vim /etc/group
mygirl:x:2345:

3.4 添加删除组成员gpasswd

gpasswd命令

设置组帐号密码(极少用)、添加/删除组成员

gpasswd命令格式:gpasswd [选项]…组帐号名

`常用选项

-a:向组内添加一个用户

● -d:从组内删除一个用户成员

-M:定义组成员列表,以逗号分隔

gpasswd -a命令:向组内添加一个用户

[root@clr ~]# gpasswd -a zhangsan mygirl #用户zhangsan加入到mygirl组中
正在将用户“zhangsan”加入到“mygirl”组中
[root@clr ~]# id zhangsan
uid=2004(zhangsan) gid=2004(zhangsan)=2004(zhangsan),1002(admin1),2345(mygirl)

gpasswd -d命令:从组内删除一个用户成员

[root@clr ~]# gpasswd -d zhangsan admin1  #将用户zhangsan从admin1组中删除
正在将用户“zhangsan”从“admin1”组中删除
[root@clr ~]# id zhangsan
uid=2004(zhangsan) gid=2004(zhangsan)=2004(zhangsan),2345(mygirl)

gpasswd -M命令:定义组成员列表,以逗号分隔

[root@clr ~]# useradd xiaohua #分别创建三个用户xiaohua,xiaowang,xiaozhang
[root@clr ~]# useradd xiaowang
[root@clr ~]# useradd xiaozhang

[root@clr ~]# gpasswd -M xiaohua,xiaowang,xiaozhang mygirl  #将这三个用户xiaohua,xiaowang,xiaozhang,一次性加入到mygirl组中(-M定义组成员列表,定义即覆盖)
[root@clr ~]# vim /etc/group
mygirl:x:2345:xiaohua,xiaowang,xiaozhang

3.5 删除组账号groupdel

groupdel命令

groupdel命令格式:groupdel 组账号名

示例

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/cailirong123/article/details/129909642