账号和权限管理

本文详细介绍了Linux系统中的用户账号类型(包括超级管理员、普通用户和程序用户)、组账号(基本组和附加组)、UID和GID的概念,以及用户账号的管理(如添加、密码修改、属性修改、删除),文件和目录权限的分类、chmod和umask的使用。
摘要由CSDN通过智能技术生成

用户账号和组账号概述

 1.1用户帐号类型

Linux中每个用户是通过 User Id (UID)来唯一标识的 新建用户 1-60000 自动分配     0-65535    端口号            

超级管理员:root, 0       

程序用户:1-499 (CentOS 6以前), 1-999 (CentOS 7以后)    不是给人登录使用的,给系统使用的

普通用户:500+ (CentOS6以前), 1000+(CentOS7以后)权限受限的用户     

  给用户进行交互式登录使用

  - 超级用户

  - 普通用户

  - 程序用户

1.2组账号

基本组(私有组)

- 建立账户时,若没有指定账户所属的组,系统会建立一个和用户名相同的组,这个组就是私有组,这个组默认只容纳了一个用户。

- 在用户所属组中的第一个组称为基本组,基本组在 /etc/passwd 文件中指定

附加组(公共组)

附加组:除了第一个组外的其他组为附加组或公共组,附加组在 /etc/group 文件中指定

[root@localhost ~]# id lisi
uid=1002(lisi) gid=1002(lisi) 组=1002(lisi)
                              1002为基本组或是私有组

基本组:有且唯一

附加组:可有可无,可以有多个

默认新建用户时自动添加同名的组

1.3ID

UID

UID(UserIDentity,用户标识号):Linux 操作系统中的每一个用户账号都有一个数字形式的身份标记,称为 UID,对于操作系统核心来说,UID 是区分用户的基本依据,原则上每个用户的 UID 号应该是唯一的。

uid范围0-60000

centos7

centos6

超级用户

0

0

普通用户

1000开始

500开始

系统用户

1-999

1-499

GID

GID(Group IDentify,组标识号):与 UID 类似,每一个组账号也有一个数字形式的身份标记,称为 GID。root 组账号的 GID 号为固定值 0,而程序组账号的 GID 号默认为 1~499,500~60000 的 GID 号默认分配给普通组使用。

系统是靠uid 来区分用户身份的

用户的uid 为0 就是 超级管理员,不是应为他叫root

二、用户账号管理

2.1用户信息文件位置:

/etc/passwd

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

[root@localhost ~]# cat /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
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
后面还有很多就此省略

第一字段

用户名

root   

第二字段

密码占位符

 x

第三字段

UID

0

第四字段

GID

0

第五字段

备注信息

root

第六字段

家目录路径

/root

第七字段

登录时默认的加载的shall类型

/bin/bash

用户相关的文件

用户信息文件:/etc/passwd

用户密码文件:/etc/shadow

shadow 文件

作用:存放密码、密码策略的文件

[root@localhost ~]# head -1 /etc/shadow
root:$6$t859EzzPP0OSGZMi$ILdrs7LdQZ43f0YMBcByHYlb0paFXD0W50pmjJFDtI9GdXfXzQmNgK.L.DRrqD/yWKnuv6Qy3HcCf5tFw.MNL/:
:0
:99999
:7
:
:
:

第一字段:用户名:root   

第二字段:密码: $6$t859EzzPP0OSGZMi$ILdrs7LdQZ43f0YMBcByHYlb0paFXD0W50pmjJFDtI9GdXfXzQmNgK.L.DRrqD/yWKnuv6Qy3HcCf5tFw.MNL    当为*或!!时表示用户不能登录到此系统,若该字段为空,则表示无需密码即可登录 

第三字段:上次修改密码时间,最后一次修改密码的时间

第四字段  0:最小修改密码间隔时间

第五字段  99999:密码有效

第六字段  7:密码到期提前7天提醒提醒(提示密码即将过期时间)

第七字段:密码过期后的宽限天数 (密码过期后多少天禁用此用户)                         

第八字段:账号失效时间

第九字段:保留字段收费内容

2.2添加用户

useradd命令

基本格式

useradd 【选项】 用户名

添加用户:查看是否在 passwd和shadow文件中生成信息

- 在/etc/passwd 文件和/etc/shadow 文件的末尾增加该用户账号的记录

- 若未明确指定用户的宿主目录,则在/home 目录下自动创建与该用户账号同名的宿

  主目录,并在该目录中建立用户的各种初始配置文件。

- 若没有明确指定用户所属的组,则自动创建与该用户账号同名的基本组账号,组账

  号的记录信息将保存到/etc/group 和/etc/shadow 文件中。

[root@localhost ~]# useradd lisi
[root@localhost ~]# id lisi
uid=1002(lisi) gid=1002(lisi) 组=1002(lisi)
[root@localhost ~]# cat /etc/passwd |grep lisi
lisi:x:1002:1002::/home/lisi:/bin/bash
[root@localhost ~]# tail -1 /etc/shadow
lisi:!!:19823:0:99999:7:::
选项

-u

指定用户的 UID 号,要求该 UID 号码未被其他用户使用。

-s

指定用户的登录 Shell /sbin/nologin

-M

不建家目录,即使/etc/login.defs 系统配置中已设定要建立宿主目录。

-d

指定家目录

 密码管理

passwd命令:为用户账号设置密码

passwd  [选项]...  用户名

基本用法 不加选项 可以添加密码

[root@test1 /]# passwd lisi    修改lisi 用户密码输入两次密码
更改用户 lisi 的密码 。
新的 密码:
无效的密码: 密码少于 8 个字符
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。

选项

-u

指定用户的 UID 号,要求该 UID 号码未被其他用户使用。

-d

指定用户的宿主目录位置(当与-M 一起使用时,不生效)。

-e

指定用户的账户失效时间,可使用 YYYY-MM-DD 的日期格式。

-g

指定用户的基本组名(或使用 GID 号)。

-G

指定用户的附加组名(或使用 GID 号)。

-M

不建立宿主目录,即使/etc/login.defs 系统配置中已设定要建立宿主目录。

-s

指定用户的登录 Shell   /sbin/nologin

-l

锁定用户无法登录

免交互设置密码

echo  "12341234"  |  passwd lisi --stdin

[root@localhost ~]# passwd -d lisi
清除用户的密码 lisi。
passwd: 操作成功
[root@localhost ~]# passwd -S lisi
lisi NP 2024-04-10 0 99999 7 -1 (密码为空。)
[root@localhost ~]# passwd -u lisi
解锁用户 lisi 的密码。
passwd: 警告:未锁定的密码将是空的。
passwd: 不安全的操作(使用 -f 参数强制进行该操作)
[root@localhost ~]# passwd -uf lisi
解锁用户 lisi 的密码。
passwd: 操作成功
[root@localhost ~]# echo "12341234"|passwd --stdin lisi
更改用户 lisi 的密码 。
passwd:所有的身份验证令牌已经成功更新。

2.3修改用户账号的属性

usermod命令

usermod  [选项]...  用户名

常见选项

-l 

更改用户账号的登录名称(Login Name)

-L

锁定用户账户

-u

修改用户的 UID 号

-U 

解锁锁用户账户

-d

修改用户的宿主目录位置。

-e

修改用户的账户失效时间,可使用 YYYY-MM-DD 的日期格式。

-g

修改用户的基本组名(或使用 GID 号)

-G

修改用户的附加组名(或使用 GID 号)

-s

指定用户的登录 Shell

[root@localhost ~]# echo "12341234" | passwd  --stdin ky36   //免交互修改密码
更改用户 ky36 的密码 。
passwd:所有的身份验证令牌已经成功更新。
[root@localhost ~]# usermod -L ky36                          //锁定用户
[root@localhost ~]# passwd -S ky36                           //查看状态
ky36 LK 2024-04-10 0 99999 7 -1 (密码已被锁定。)
[root@localhost ~]# usermod -U ky36                          //解锁用户
[root@localhost ~]# passwd -S ky36
ky36 PS 2024-04-10 0 99999 7 -1 (密码已设置,使用 SHA512 算法。)

[root@localhost ~]# usermod -l ky3 ky36                    //修改用户名
[root@localhost ~]# id ky36                                //验证查看
id: ky36: no such user
[root@localhost ~]# id ky3
uid=1002(ky3) gid=1002(ky36) 组=1002(ky36)
 删除用户

userdel [选项] 用户

-r  将宿主目录一起删除

[root@localhost etc]# userdel -r ky3
[root@localhost etc]# id ky3
id: ky3: no such user
[root@localhost etc]# cd /home
[root@localhost home]# ls
w  wu

用户账号的初始配置文件

用户宿主目录下的初始配置文件只对当前用户有效

~/ .bash_profile

#此文件中的命令将在该用户每次登录时被执行,他会设置一些环境变量,并且会调用该用户的~/.bashrc文件

~/.bashrc

#此文件中的命令将在该用户每次打开新的bash shell时(包括登录系统)被执行(登录 切换 新的bash环境)

~/.bash_logout

#此文件中的命令将在该用户每次退出时bash shell时使用

/etc/bashrc        

三、文件/目录的权限和归属

程序访问文件时的权限,取决于此程序的发起者

- 进程的发起者,同文件的属主:则应用文件属主权限

- 进程的发起者,属于文件属组;则应用文件属组权限

- 应用文件“其它”权限

属主:文件的主人,文件的拥有者

属组:

例子  root用户和普通用户 是否都可以看 (cat /etc/shadow)

3.1访问人群分为了三类

1. 所属主(u)

2. 所属组(g)

3. 其他人 (o)

3.2权限

权限分为三种

1. 读(r,4)

文件:可以看里面的内容

文件夹:可以用ls看文件夹中的文件列表

2. 写(w,2)

文件(需要读):可以修改文件的内容

文件夹:新建文件夹、文件,删除文件夹、文件,移动文件夹、文件

3. 执行(x,1程序,脚本)

文件:       可以运行(命令,脚本)颜色是绿色

文件夹:   执行是最小的权限,没有执行 读写无法使用

对文件而言:如果大家都没有 执行权限,那超级管理员也没有执行权限,只要有一个人有执行权限那么超级管理员就有执行权限

3.3 chmod

chmod 可以修改文件的权限

-R  递归

模式法:

chmod   对谁(所有者,所属组,其他)操作(+ - =)权限   文件

谁:  属主u  

      属组g

      其他人o

      所有人a

操作:+加上

        -减去

        =赋予

权限:r,w,x(普通权限对root无效)

chmod   u或g或o或a+r  文件名

文件加上权限

chmod   u或g或o或a=r   文件名

给文件赋予权限

chmod   u或g或o或a-r  文件名

给文件减去权限

chmod   a+r   文件名

给所有人加上权限

chmod   +x   文件名

不指明对象,只可以给所有人夹执行权限

数字法:

r

4

w

2

x

1

执行

文件夹 一定要有执行权限

你去切知道文件夹的名字才能

执行 cp /etc/issue /data/dir/ 所需要的最小权限?

/bin/cp      需要x权限

/etc/          需要x权限

/etc/issue  需要r权限

/data         需要x权限

/data/dir   需要w,x权限

修改属主,属组

chown  属主  文件名

只改文件的属主

chown  :属组  文件名

只改文件的属组

chown  属主:属组  文件名

属主属组都改变

[root@localhost opt]# chown -R lisi:lisi /opt/a
[root@localhost opt]# ll
总用量 20
-rw-r--r--. 1 lisi lisi   22 4月   2 09:46 a
-rw-r--r--. 1 root root   18 4月   1 14:23 b
-rw-r--r--. 1 root root  541 4月   1 11:28 fstab
-rw-r--r--. 1 root root 2107 4月   1 12:26 passwd
drwxr-xr-x. 2 root root    6 3月  26 2015 rh
----------. 1 root root 1193 4月   1 11:28 shadow

3.4umask

在linux中规定了新建文件和新建文件夹的权限

默认umask 为0022,是你没有的权限

拿最高的权限减去umask就是你的最终权限

文件夹的最高权限为777

777-022=755   所以文件夹的落地的权限为  rwx   r-x  r-x

文件的最高权限为666     执行权限对于文件而言非常危险

666-022=644    所以文件的落地的权限为    rwx  r--  r--        

直接使用 umask 可以看到 当前的umask 设置

umask后面跟上数值 可以设置 umask的值umask123

文件夹一样

文件的权限,用666-umask 结果有奇数自动加一

文件666 -123 =543 奇数 再加1,偶数不变

三种特殊权限:

suid :

如果拥有该权限,把当前用户当成文件的属主

guid:

如果拥有该权限,把当前用户当成文件的属组

stickey 粘贴位

拥有 该权限的 文件夹, 该文件内的文件 只有超级管理员和属主可以删除, 其他人不可以删除

具有写权限的目录通常用户可以删除该目录中的任何文件,无论该文件的权限或拥有权

在目录设置Sticky 位,只有文件的所有者或root可以删除该文件

sticky 设置在文件上无意义

  • 7
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值