IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> linux用户和组的权限管理 -> 正文阅读

[系统运维]linux用户和组的权限管理

?

目录

前言

?一、用户和用户组

1.用户的分类

2.用户组的分类

3.用户和组的关系

二、用户和组配置文件

1.passwd文件的格式

2.shadow文件的格式

4.gshadow文件的格式

三、用户和组的管理命令

1.useradd

2. usermod

2.1新建用户test,密码123456,另外添加usertest组?

2.2?把test用户加入usertest组

2.3修改test用户的家目录

2.4锁定urchin的密码

2.5?解锁urchin的密码

2.6指定帐号过期日期

2.7指定用户帐号密码过期多少天后,禁用该帐号

3.userdel

4.groupmod

5.groupdel

6.passwd

7.groupmod

8.gpasswd

9.su

10.id

11.chage

12.finger

13.w

14.last

四、文件和目录的权限和归属

4.1 访问权限和归属(所有权)

4.1.1 访问权限

4.1.2 归属(所有权)

4.2 查看文件/目录的权限和归属

4.3?设置文件/目录的权限和归属

4.3.1?chmod

4.3.2?chown

4.3.3?权限掩码 umask

总结


?

?

?

前言

? ? ? ?linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。那么本文内容,就是介绍如何使用用户和用户组。

?

?一、用户和用户组

1.用户的分类

管理员用户:享有最高权限,具备系统中的所有权限(一般为root),UID为0
普通用户:有权限限制,只能对自己目录下的文件进行操作,可以登录系统,UID>=500
系统用户:别称“伪用户”,无法登录系统,一般系统默认持有如bin,nobody等,其主要作用是支撑系统运行,方便系统管理,UID为1-499(闭区间)

2.用户组的分类

分为私有用户组(基本组)普通用户组(附加组)

3.用户和组的关系

一对一:一个用户可以存在一个组中,是组中的唯一成员;

一对多:一个用户可以存在多个用户组中,此用户具有这多个组的共同权限;

多对一:多个用户可以存在一个组中,这些用户具有和组相同的权限;

多对多:多个用户可以存在多个组中,也就是以上 3 种关系的扩展。


二、用户和组配置文件

1.passwd文件的格式

实例:

[root@localhost ~]# vi /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
...省略部分输出...

 root:x:0:0::/root:/bin/bash

登录名:密码:UID:GID:用户全名或注释:家目录:shell

2.shadow文件的格式

实例:

[root@localhost ~]#vim /etc/shadow
root: $6$9w5Td6lg
$bgpsy3olsq9WwWvS5Sst2W3ZiJpuCGDY.4w4MRk3ob/i85fl38RH15wzVoom ff9isV1 PzdcXmixzhnMVhMxbvO:15775:0:99999:7:::
bin:*:15513:0:99999:7:::
daemon:*:15513:0:99999:7:::
…省略部分输出…

root:11TCVDVaiT$JC7TbKjvIZpIprdehWFH/1:15157:0:99999:7:::

第一字段:登录名

第二字段:用户密码

第三字段:密码最近一次的修改时间(从1970年1月1日起)

第四字段:密码再过几天可以被更改(0表示随时可以更改)

第五字段:密码再过几天必需被变更(99999表示永不过期)

第六字段:密码过期前几天系统提醒用户(默认为一周)

第七字段:密码过期几天后账号会被锁定

第八字段:从1970年1月1日算起,多少天后账号失效

第九字段:保留字段

3.group文件的格式

实例:

[root@localhost ~]#vim /etc/group
root:x:0:root
bin:x:1:bin,daemon
daemon:x:2:bin,daemon
…省略部分输出…
lamp:x:502:

root:x:0:root

组名称:组密码:GID:以当前组为附加组的用户列表

4.gshadow文件的格式

实例:

[root@localhost ~]#vim /etc/gshadow
root:::root
bin:::bin, daemon
daemon:::bin, daemon
...省略部分输出...
lamp:!::

root:::root

组名称:组密码:组管理员的列表:以当前组为附加组的用户列表?

三、用户和组的管理命令

1.useradd

参数

-d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。

-g 用户组 指定用户所属的用户组。

-G 用户组,用户组 指定用户所属的附加组。

-s Shell文件 指定用户的登录Shell。

-u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。

-m:自动建立用户的登入目录;

-e<有效期限>:指定帐号的有效期限;

-f<缓冲天数>:指定在密码过期后多少天即关闭该帐号;

实例:

创建一个带有家目录并且可以登录 bash 的用户
  useradd -m -s /bin/bash tester1
指定创建用户家目录的路径
  useradd -m -d /home/xxx tester2
 创建一个没有家目录且不能登录的用户
 useradd -s /sbin/nologin tester3
 创建时把用户加入不同的用户组
 useradd -m -G xxx,sudo tester4
建立一个新用户账户testuser1,并设置UID为544,主目录为/usr/testuser1,属于users组:
#useradd -u 544 -d /usr/testuser1  -g users -m  testuser1

2. usermod

参数

? ? ? ? ?

  1. -c? ? ? ? ##修改/etc/passwd文件第五段comment?
  2. -d? ? ? ? ##修改用户的家目录通常和-m选项一起使用?
  3. -e? ? ? ? ##指定用户帐号禁用的日期,格式YY-MM-DD?
  4. -f? ? ? ? ?##用户密码过期多少天后采用就禁用该帐号,0表示密码已过期就禁用帐号,-1表示禁用此功能,默认值是-1?
  5. -g? ? ? ? ##修改用户的gid,改组一定存在
  6. -G? ? ? ?##把用户追加到某些组中,仅与-a选项一起使用?
  7. -l? ? ? ? ?##修改用户的登录名称?
  8. -L? ? ? ? ##锁定用户的密码?
  9. -m? ? ? ?##修改用户的家目录通常和-d选项一起使用?
  10. -s? ? ? ? ##修改用户的shell?
  11. -u? ? ? ?##修改用户的uid,该uid必须唯一?
  12. -U? ? ? ##解锁用户的密码
  13. -a? ? ? ?##把用户追加到某些组中,仅与-G选项一起使用?

实例:

2.1新建用户test,密码123456,另外添加usertest组?

#useradd test 
#echo "123456" | passwd --stdin test 
#groupadd usertest 

2.2?把test用户加入usertest组

#usermod -aG usertest test ##多个组之间用空格隔开 
#id test 
uid=500(test) gid=500(test) groups=500(test),501(usertest) 

2.3修改test用户的家目录

#usermod -md /home/usertest 
#ls /home 
usertest 

2.4锁定urchin的密码

# sed -n '$p' /etc/shadow 
urchin:$6$1PwPVBn5$o.MIEYONzURQPvn/YqSp69kt2CIASvXhOnjv/t \
Z5m4NN6bJyLjCG7S6vmji/PFDfbyITdm1WmtV45CfHV5vux/:15594:0:99999:7::: 
#usermod -L urchin 
# sed -n '$p' /etc/shadow 
urchin:!$6$1PwPVBn5$o.MIEYONzURQPvn/YqSp69kt2CIASvXhOnjv/t \
Z5m4NN6bJyLjCG7S6vmji/PFDfbyITdm1WmtV45CfHV5vux/:15594:0:99999:7::: 

2.5?解锁urchin的密码

#usermod -U urchin 
# sed -n '$p' /etc/shadow 
urchin:$6$1PwPVBn5$o.MIEYONzURQPvn/YqSp69kt2CIASvXhOnjv/t \ 
Z5m4NN6bJyLjCG7S6vmji/PFDfbyITdm1WmtV45CfHV5vux/:15594:0:99999:7::: 

2.6指定帐号过期日期

#?sed?-n?'$p'?/etc/shadow?
urchin:$6$1PwPVBn5$o.MIEYONzURQPvn/YqSp69kt2CIASvXhOnjv/t?\?
Z5m4NN6bJyLjCG7S6vmji/PFDfbyITdm1WmtV45CfHV5vux/:15594:0:99999:7:::?
#?usermod?-e?2012-09-11?urchin?
#?sed?-n?'$p'?/etc/shadow?
urchin:$6$1PwPVBn5$o.MIEYONzURQPvn/YqSp69kt2CIASvXhOnjv/t?\?
Z5m4NN6bJyLjCG7S6vmji/PFDfbyITdm1WmtV45CfHV5vux/:15594:0:99999:7::15594:

2.7指定用户帐号密码过期多少天后,禁用该帐号

# usermod -f 0 urchin 
# sed -n '$p' /etc/shadow 
urchin:$6$1PwPVBn5$o.MIEYONzURQPvn/YqSp69kt2CIASvXhOnjv/t \ 
Z5m4NN6bJyLjCG7S6vmji/PFDfbyITdm1WmtV45CfHV5vux/:15594:0:99999:7:0:15594: 

3.userdel

参数

-r 删除用户登入目录以及目录中所有文件。

-f 强制删除用户(甚至当用户已经登入 Linux 系统时此选项仍旧生效)

常用实例:

userdel -r john  删除用户john并把其家目录一起删除

4.groupmod

参数

-g  设置欲使用的群组识别码。

-o  重复使用群组识别码。

-n  设置欲使用的群组名称。

实例:

[root@localhost ~]# groupmod -n testgrp group1
#把组名group1修改为testgrp
[root@localhost ~]# grep "testgrp" /etc/group
testgrp:x:502:
#注意GID还是502,但是组名已经改变

5.groupdel

参数

-f? ??强制删除,即使是用户的主组也强制删除组

实例:

groupdel damon  //删除这个工作组

6.passwd

参数

-d:删除密码,仅有系统管理者才能使用;
-f:强制执行;
-k:设置只有在密码过期失效后,方能更新;
-l:锁住密码;
-s:列出密码的相关信息,仅有系统管理者才能使用;
-u:解开已上锁的帐号。

实例:修改用户密码


# passwd runoob  //设置runoob用户的密码
Enter new UNIX password:  //输入新密码,输入的密码无回显
Retype new UNIX password:  //确认密码
passwd: password updated successfully

7.groupmod

参数

-g  设置欲使用的群组识别码。

-o  重复使用群组识别码。

-n  设置欲使用的群组名称。

实例:

[root@localhost ~]# groupmod -n testgrp group1
#把组名group1修改为testgrp
[root@localhost ~]# grep "testgrp" /etc/group
testgrp:x:502:

8.gpasswd

参数

-a:添加用户到组;
-d:从组删除用户;
-A:指定管理员;
-M:指定组成员和-A的用途差不多;
-r:删除密码;
-R:限制用户登入组,只有组中的成员才可以用newgrp加入该组。

实例:想要添加一个用户到一个组,同时保留以前添加的组

gpasswd -a user_name group_name

9.su

参数

-c:执行完指定的指令后,即恢复原来的身份;

-f:适用于csh与tsch,使shell不用去读取启动文件;

-l:改变身份时,也同时变更工作目录,以及HOME,SHELL,USER,logname。此外,也会变更PATH变量;

-m,-p:变更身份时,不要变更环境变量;

-s<shell>或--shell=<shell>:指定要执行的shell;

实例:变更账号为超级用户,并在执行df命令后还原使用者。

su -c df root

su 和 su - 的区别

su -: 会切换root用户,也会把用户变量也切换到root的环境变量

su :? 只是会切换root用户,但是当前的环境变量还是以前用户的环境变量

10.id

参数

-g或--group   显示用户所属群组的ID。
-G或--groups?? 显示用户所属附加群组的ID。
-n或--name  ? 显示用户,所属群组或附加群组的名称。
-r或--real  ? 显示实际ID。
-u或--user  ? 显示用户ID。
-help  ?????? 显示帮助。
-version  ??? 显示版本信息。

实例:打印用户名、UID 和该用户所属的所有组

[root@localhost ~]# id -a
uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel)

输出所有不同的组ID?

[root@localhost ~]# id -G
0 1 2 3 4 6 10

11.chage

参数

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

实例:

#设置密码 60 天后过期
chage -M 60 root

#设置密码过期后过 5 天失效
chage -I 5 root

12.finger

参数

-l:列出该用户的帐号名称,真实姓名,用户专属目录,登入所用的Shell,登入时间,转信地址,电子邮件状态,还有计划文件和方案文件内容;
-m:排除查找用户的真实姓名;
-s:列出该用户的帐号名称,真实姓名,登入终端机,闲置时间,登入时间以及地址和电话;
-p:列出该用户的帐号名称,真实姓名,用户专属目录,登入所用的Shell,登入时间,转信地址,电子邮件状态,但不显示该用户的计划文件和方案文件内容。
实例:

[root@c7-1 ~]#finger -s root
Login     Name       Tty      Idle  Login Time   Office     Office Phone   Host
root      root       pts/0    3:08  Aug  6 08:35                           (20.0.0.1)
root      root       pts/1          Aug  6 14:30                           (20.0.0.1)

13.w

参数

-h:不打印头信息; 
-u:当显示当前进程和cpu时间时忽略用户名; 
-s:使用短输出格式; 
-f:显示用户从哪登录; 
-V:显示版本信息。

实例:

用户:仅显示指定用户。
w 
20:39:37 up 136 days, 3:58, 1 user, load average: 0.00, 0.00, 0.00 
USER TTY FROM login@ IDLE JCPU PCPU WHAT 
root pts/0 222.94.97.122 20:39 1.00s 0.00s 0.00s w

14.last

参数

-a:将登录系统的的主机名称或IP地址,显示在最后一行

-d:将IP地址转换成主机名称

-f:指定记录文件,默认是显示/var/log目录下的wtmp文件的记录,但/var/log目录下得btmp能显示的内容更丰富,可以显示远程登录,例如ssh登录 ,包括失败的登录请求。

-i:-i显示特定ip登录的情况。跟踪用 -i显示特定ip登录的情况。跟踪用

-o:Read an old-type wtmp file (written by linux-libc5 applications).

-n:-n <显示行数>或-<显示行数>  设置显示多少行记录

-w:Display full user and domain names in the output

-R:不显示登入系统的主机名称或IP(省略 hostname 的栏位)

实例:

将登录系统的主机名或IP地址显示在最后一行

[root@DB-Server ~]# last -10 -a
root     pts/1        Wed Dec 18 09:54   still logged in    :0.0
root     pts/4        Wed Dec 18 09:43 - 09:48  (00:04)     :0.0
root     pts/1        Wed Dec 18 09:43 - 09:48  (00:05)     :0.0
root     pts/3        Wed Dec 18 09:41 - 12:40  (02:59)     192.168.103.79
root     pts/4        Wed Dec 18 09:28 - 09:30  (00:01)     :0.0
root     pts/3        Wed Dec 18 09:27 - 09:30  (00:02)     :0.0
root     pts/2        Wed Dec 18 09:27   still logged in    192.168.103.29
root     pts/1        Wed Dec 18 09:27 - 09:42  (00:15)     :0.0
root     pts/2        Wed Dec 18 09:23 - 09:25  (00:01)     :0.0
root     pts/1        Wed Dec 18 09:22 - 09:25  (00:02)     :0.0
 
wtmp begins Wed Dec 11 03:02:17 2021

四、文件和目录的权限和归属

4.1 访问权限和归属(所有权)

4.1.1 访问权限

类型解释
读取r允许查看文件内容,显示目录列表
写入w允许修改文件内容,允许在目录中新建,移动,删除文件或子目录
可执行x允许运行程序,切换目录

4.1.2 归属(所有权)

类型解释
属主拥有该文件或目录的用户账号
属组拥有该文件或目录的组账号

4.2 查看文件/目录的权限和归属

[root@cheng0307 ~]# ls -l /etc/passwd #列出etc/passwd文件的详
-rw-r--r--. 1 root root 2235 4月 14 15:30 /etc/passwd

权限字段-rw-r–r–的含义

字符解释
第一个字符“-”表示文件类型。可以是d(目录),b(块设备文件),c(字符设备文件),“-”普通文件,字母“l”(链接文件)等
第2-4个字符“rw-”表示该文件的属主用户(User)对该文件的访问权限
第5-7个字符“r–”表示该文件的属组内每个成员用户(Group)对该文件的访问权限

第8–10个字符“r–”

表示其他任何用户(Other)对该文件的访问权限

?

rwx采用累加数字形式表示成 7 , r-x 表示成 5 , rwxr-xr-x 表示成755,rw-r–r–表示成644

4.3?设置文件/目录的权限和归属

4.3.1?chmod

参数?

u 即文件或目录的拥有者;

g 即文件或目录的所属群组;

o 除了文件或目录拥有者或所属群组之外,其他用户皆属于这个范围;

a 即全部的用户,包含拥有者,所属群组以及其他用户;

s 特殊功能说明:变更文件或目录的权限。

c?当发生改变时,报告处理信息
f?错误信息不输出
R?处理指定目录以及其子目录下的所有文件
v?运行时显示详细处理信息

实例:将文件 1.txt 与 2.txt 设为该文件拥有者,与其所属同一个群体者可写入,但其他以外的人则不可写入

chmod ug+w,o-w 1.txt 2.txt	

4.3.2?chown

参数

 -c 显示更改的部分的信息

? ? -f 忽略错误信息

? ? -h 修复符号链接

? ? -R 处理指定目录以及其子目录下的所有文件

实例:改变拥有者和群组

[root@localhost test6]# ll
---xr--r-- 1 root users 302108 11-30 08:39 linklog.log
---xr--r-- 1 root users 302108 11-30 08:39 log2012.log
-rw-r--r-- 1 root users   61 11-30 08:39 log2013.log
-rw-r--r-- 1 root users   0 11-30 08:39 log2014.log
-rw-r--r-- 1 root users   0 11-30 08:39 log2015.log
-rw-r--r-- 1 root users   0 11-30 08:39 log2016.log
-rw-r--r-- 1 root users   0 11-30 08:39 log2017.log
[root@localhost test6]# chown mail:mail log2012.log 
[root@localhost test6]# ll
---xr--r-- 1 root users 302108 11-30 08:39 linklog.log
---xr--r-- 1 mail mail 302108 11-30 08:39 log2012.log
-rw-r--r-- 1 root users   61 11-30 08:39 log2013.log
-rw-r--r-- 1 root users   0 11-30 08:39 log2014.log
-rw-r--r-- 1 root users   0 11-30 08:39 log2015.log
-rw-r--r-- 1 root users   0 11-30 08:39 log2016.log
-rw-r--r-- 1 root users   0 11-30 08:39 log2017.log

4.3.3?权限掩码 umask

创建文件和目录是,系统默认拿走的权限

umask设置命令格式 umask 000(000指数字) umask查看 umask?

实例:?

[root@host test]# touch file1
[root@host test]# mkdir mask
[root@host test]# ll
总用量 0
-rw-r--r--. 1 root root 0 5月  12 14:38 file1
drwxr-xr-x. 2 root root 6 5月  12 14:38 mask    #权限和umask -S 看到的权限一样

总结

? ? ? ?总的来说,用户和组的权限管理对于在工作中的我们有很大的帮助,熟练掌握它,对于遇到的难题,在解决过程中能体现作用。

?

?

?


    

? ? ??
?

    ?


?





?

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-08-09 10:35:59  更:2021-08-09 10:37:46 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/17 16:17:21-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码