Linux —— 用户管理

目录

Linux下的用户管理

1. 用户及用户组存在的意义

2. 用户在系统中的存储方式

3. 用户配置文件

4. 用户信息查看

5. 用户身份的切换

6. 用户的建立、删除以及修改

7. 用户认证信息文件

8. 用户认证管理

9. 用户权力下放


Linux下的用户管理

        Linux系统的管理员之所以是root,并不是因为它的名字叫root,而是因为该用户的身份号码即UID(User IDentification)的数值为0。在Linux系统中,UID就相当于我们的身份证号码一样具有唯一性,因此可通过用户的UID值来判断用户身份。

1. 用户及用户组存在的意义

名称作用
用户限制权限 
用户组归类用户便于管理权限

用户:是操作者在系统中的身份标识,它们拥有不同的用户号码(UID,User IDnetification),通过建立不同权限的用户,合理的利用资源和管理文件,达到限制权限的目的。

用户组:是一种逻辑概念,用户的集合。为了方便管理属于同一组的用户,Linux系统中还引入了用户组的概念。通过使用用户组号码(GID,Group IDentification),我们可以把多个用户加入到同一个组中,从而方便为组中的用户统一规划权限或指定任务。

2. 用户在系统中的存储方式

存在形式:系统配置文件里的一行字符以及这行字符所指定调用的系统资源。

3. 用户配置文件

3.1. /etc/passwd              ## 用户信息库

root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
...
insights:x:977:975:Red Hat Insights:/var/lib/insights:/sbin/nologin
avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
dsd:x:1000:1000:dsd,,,,:/home/dsd:/bin/bash

我们可以很清楚的看到,该文件信息中每一行都被划分为7列。

1、用户名称

2、密码(加密,密码信息转移到/etc/shadow中,只有在root用户处才可以访问)

3、UID(用户ID,超级用户ID为0,rhel7中系统用户ID为1-999,rhel6中系统用户ID为1-499,登录用户ID为1000-65534)

4、用户初始组的ID

5、用户的说明,即名称备注

6、用户的家目录,即用户登录系统以后默认所在系统的位置

7、用户默认所使用的shell

3.2. /etc/group            ## 用户组信息库,记录组名称和组ID对应关系的文件 

root:x:0:
bin:x:1:
daemon:x:2:
sys:x:3:
adm:x:4:
tty:x:5:
disk:x:6:
lp:x:7:
mem:x:8:
...
gdm:x:42:
rpcuser:x:29:
gnome-initial-setup:x:976:
sshd:x:74:
insights:x:975:
avahi:x:70:
slocate:x:21:
dip:x:40:
tcpdump:x:72:
dsd:x:1000:

1、名称

2、密码(加密,数据保存在/etc/gshadow中)

3、初始组的ID

4、组内的成员

3.3. /home/用户同名目录            ## 默认用户家目录

[root@localhost Desktop]# ls /home/
dsd
[root@localhost Desktop]# su - dsd
Last login: Wed Jan  1 01:40:18 PST 2020 on tty2
[dsd@localhost ~]$ pwd
/home/dsd

3.4. /etc/skel/所有文件              ## 用户环境配置文件模板

[root@localhost Desktop]# ls -a /etc/skel/
.  ..  .bash_logout  .bash_profile  .bashrc  .mozilla
[root@localhost Desktop]# touch /etc/skel/dsdfile
[root@localhost Desktop]# ls -a /etc/skel/
.  ..  .bash_logout  .bash_profile  .bashrc  dsdfile  .mozilla
[root@localhost Desktop]# useradd test
[root@localhost Desktop]# su - dsd
Last login: Wed Jan  1 06:20:03 PST 2020 on pts/0
[dsd@localhost ~]$ ls -a  /etc/skel/
.  ..  .bash_logout  .bash_profile  .bashrc  dsdfile  .mozilla

用户在建立的时候会把/etc/skel/下的所有文件都复制过去,若我们向让所有的用户家目录中都有某个文件的时候,可以直接将该文件建立在/etc/skel/下。

以上四种配置文件,可以统称为系统的身份配置文件,只控制系统的用户身份,除此之外,系统中还有用户认证,密码就叫做用户的认证。

3.5. /etc/shadow              ## 用户认证信息

root:$6$PBkW5wBQIJKTPJRD$7PSYLXXfqNkmg34MDxtG/nbG9gf1gHbStZi.syKl7JFStd8SEPnk4YTENCFp5S8/XagqKIJ2wHmJ81zDJ0HGo1:18262:0:99999:7:::
bin:*:17784:0:99999:7:::
daemon:*:17784:0:99999:7:::
adm:*:17784:0:99999:7:::
lp:*:17784:0:99999:7:::
sync:*:17784:0:99999:7:::
shutdown:*:17784:0:99999:7:::
halt:*:17784:0:99999:7:::
mail:*:17784:0:99999:7:::
operator:*:17784:0:99999:7:::
games:*:17784:0:99999:7:::
...
rpcuser:!!:18262::::::
gnome-initial-setup:!!:18262::::::
sshd:!!:18262::::::
insights:!!:18262::::::
avahi:!!:18262::::::
tcpdump:!!:18262::::::
dsd:$1$fGZns4jL$rm3RqkcdPV1sAJjpk5De21:18262:0:99999:7:::
test:!!:18262:0:99999:7:::

1、用户名称

2、用户密码,!!表示锁定状态下

3、密码已使用时长

4、密码最短有效期

5、密码最长有效期

6、密码到期前警告

7、密码非活跃天数

8、密码到期日

3.6. /etc/gshadow              ## 组认证信息 

root:::
bin:::
daemon:::
sys:::
adm:::
tty:::
disk:::
lp:::
mem:::
kmem:::
...
gnome-initial-setup:!::
sshd:!::
insights:!::
avahi:!::
slocate:!::
dip:!::
tcpdump:!::
dsd:!::
test:!::

1、组名称

2、组密码

3、组管理员

4、组内成员

4. 用户信息查看

参数作用
-u查看用户的uid
-g查看用户的gid
-G查看用户所在的所有组的id
-n显示名字不显示id

4.1 通过cat查看文件全部内容 

[root@localhost Desktop]# useradd student
[root@localhost Desktop]# cat /etc/passwd
...
student:x:1002:1002::/home/student:/bin/bash

4.2 通过gentent直接指定student查找 (除了系统用户,还可以查看网络用户)

[root@localhost Desktop]# getent passwd student 
student:x:1002:1002::/home/student:/bin/bash

4.3 查看当前用户

[root@localhost Desktop]# whoami
root

4.4 查看指定用户id信息

[root@localhost Desktop]# id -u student 
1002                                                                    ## 查看用户的UID,即用户id
[root@localhost Desktop]# id -g student
1002                                                                    ## 查看用户的初始组id
[root@localhost Desktop]# id -G student  
1002                                                                    ## 查看该用户所有组的id,包括初始组和所有附加组

现在将student加到dsd组中,显示信息如下,可以看到多了一个组的身份,即附加组

[root@localhost Desktop]# id -G student 
1002 1000
[root@localhost Desktop]# id -a student 
uid=1002(student) gid=1002(student) groups=1002(student),1000(dsd)      ## 表示查看这个用户所有的id信息
[root@localhost Desktop]# id -un student 
student                                                                 ## 表示显示这个用户的名称
[root@localhost Desktop]# id -gn student 
student                                                                 ## 表示显示这个初始组的名称
[root@localhost Desktop]# id -Gn student 
student dsd                                                             ## 表示显示所有组的名称
 

5. 用户身份的切换

5.1 图形界面中身份切换

5.2 shell中身份切换

命令作用
gnome-session-quit60秒后注销用户
gnome-session-quit --logout等同于第一条命令
gnome-session-quit --force注销当前用户
gnome-session-quit --power-off关机
gnome-session-quit --reboot重启
gnome-session-quit --no-prompt不提示

5.3 用户之间的切换

命令作用
su只切换用户身份,不切换用户环境
su-切换用户身份和用户环境

实例:

[root@localhost Desktop]# su dsd
[dsd@localhost Desktop]$ pwd
/root/Desktop
[root@localhost Desktop]# su - dsd
Last login: Wed Jan  1 07:33:35 PST 2020 on pts/0
[dsd@localhost ~]$ pwd
/home/dsd

由上可知,通过su切换时,只是切换了用户身份,用户环境还是在root下,而通过su - 方式切换的时候其用户身份和用户环境均切换。

注意:1、每次su切换到其他用户,操作完之后必须要退出,然后再次切换到其他用户;

           2、高级用户切换至低级用户不需要密码,但是低级用户切换到高级需要,平级用户之间切换也需要密码。

6. 用户的建立、删除以及修改

6.1 用户及用户组的建立、删除

命令作用
useradd 名称用户建立
useradd -u 名称指定用户的uid
useradd -g 名称指定用户的gid
useradd -G 名称指定用户的附加组
useradd -c 名称指定用户的说明
useradd -d 名称指定用户的家目录,默认为/home/username
useradd -s 名称指定用户的默认shell
useradd -M 名称指定用户不创建家目录
命令作用
userdel 名称用户删除
userdel -u 名称删除指定用户的uid
userdel -g 名称删除指定用户的gid
userdel -G 名称删除指定用户的附加组
userdel -c 名称删除指定用户的说明
userdel -d 名称删除指定用户的家目录
useradd -s 名称指定用户的默认shell
useradd -M 名称指定用户不创建家目录

实例:

(1)增加一个组dsd2333

 

(2)删除一个组dsd2333

 

(3)新建一个组dsd2333,并修改它的初始组id为6666

 

(4)删除新建的组dsd2333

 

(5)新建一个用户du961028

 

(6)在这里要注意,要指定用户的UID,在用户建立的时候就指定,用户已经建立好后就没有办法直接指定它的UID。

         删除用户du961028,主要中间一定要加-r,不加-r只会删除用户的信息,环境配置所涉及的文件仍然保留,Id会裸露出来。

 

(7)在建立的时候直接指定uid,那么uid和组id是一样的,默认被指定。

 

指定初始组的id,要注意的是,指定初始组或者附加组时,组的身份一定要存在。

(8)指定用户的备注名称

 

6.2 用户的修改

命令作用
groupmod -g修改用户的gid
groupmod -n修改组名
usermod -l修改用户名称
usermod -u修改用户uid
usermod -g

                                修改用户gid

usermod -aG指定用户的附加组
usermod -c修改用户的说明
usermod -md修改用户的家目录,默认为/home/username
usermod -s修改用户的shell类型

7. 用户认证信息文件

dsd:$1$fGZns4jL$rm3RqkcdPV1sAJjpk5De21:18262:0:99999:7   :  :  :

[1]                    [2]             [3]  [4][5]   [6]][7][8]

 [1]:用户名称

 [2]:用户密码,用户的加密字符串,默认用的加密方式为sha512对称加密,如果加密字符串前出现"!/!!",表示用户被冻结

 [3]:用户密码最后一次被更改的时间,此时间计算是从1970-1-1开始计算的累计天数

 [4]:用户密码最短有效期。如果此位没有设定数字,那么在此数字范围内的天数内是不能修改用户密码的

 [5]:用户密码最长有效期。用户必须在此有效期内更新密码,如果超时会被冻结

 [6]:密码警告期限。在过期数天内发出警告信息

 [7]:非活跃天数。密码过期后仍可登陆系统的天数

 [8]:到期日。用户在此日被冻结

相关命令:

(1)passwd -S dsd:查看用户dsd信息

(2)passwd dsd:更改dsd的密码

(3)passwd -l dsd:在用户密码前加 !!,锁住用户密码

(4)passwd -u dsd:解锁用户密码

8. 用户认证管理

命令1作用命令2作用
passwd -S dsd查看用户信息  
passwd -l dsd!!锁住用户usermod -L dsd!锁住用户
passwd -u dsd!!解锁,消失usermod -U dsd解锁用户
passwd -d dsd删除密码  
passwd -e dsd将已使用时间清零chage -d 20 dsd改变密码已使用时间
passwd -n 2 dsd密码最短有效期chage -m 2 dsd密码最短有效期
passwd -x 40 dsd密码最长有效期chage -M 20 dsd密码最长有效期
passwd -w dsd密码到期前警告chage -W 2 dsd密码到期前警告
passwd -i dsd密码非活跃天数chage -I 5 dsd密码非活跃天数
  chage -E "2020-01-21"密码到期日

9. 用户权力下放

1、在系统中超级用户可以下放普通用户不能执行的操作给普通用户下放权力配置文件:

/etc/sudoers

2、下放权力的方法

visudo

用超级用户执行visudo进入编辑/etc/sudoers模式
输入格式:

获得权限用户    主机名称=(获得到的用户身份)    命令
dsd    localhost.localdomain=(root)    /usr/sbin/useradd /usr/sbin/userdel /usr/sbin/usermod

将命令添加到配置文件中,wq保存退出。

3、切换到test用户,test能在desktop0.example.com以超级用户身份执行/usr/sbin/useradd命令

4、执行下放权限命令

我们在运行的时候发现在第一次执行sudo时需要输入当前用户密码

sudo command
passwd

若是嫌需要输入密码繁琐,在这里我们也可以通过权限下放的方式来省略这个步骤,用超级用户执行visudo进入编辑/etc/sudoers模式。将输入改为:

dsd    localhost.localdomain=(root)  NOPASSWD  /usr/sbin/useradd /usr/sbin/userdel /usr/sbin/usermod

退出保存即可,这样就可以完成调用sudo命令的时候不需要再输入密码操作。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值