LINUX基础第二章:账号和权限管理

一.用户帐号和组账号

1.用户账号

1.普通用户            权限受到限制的用户

2.超级管理员        拥有至高无上的权限

3.程序用户            不是给人使用的,是给程序使用的,不允许登录

你能不能打开文件和用户有关,用户有用户自己的权限

运行程序不能使用超级管理员

系统如何区别用户的身份?

系统区别用户的身份使用的是uid号

超级管理员默认是0

普通用户 centos7 包括1000-60000

程序用户 1-999

60000最大值是可以修改

centos6

超级管理员 uid=0

程序用户 1-499

普通用户 500开始

2.组账号

  • 基本组有且唯一
  • 附加组可有可无,但可以有很多个

基本组

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

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

etc/passwd 存放用户信息

七段,每段用冒号隔开

liwu 用户名
x 密码占位符
1003 uid
1003 gid
普通用户 备注信息
/home/liwu 家目录位置
/bin/bash

默认的shell类型        

( /sbin/nologin 这个shell类型比较奇怪 不让登录 )

man 5 passwd 查看该文件

附加组

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

/etc/shadow 存放密码以及用户密码信息

root 用户名
$6$4V9hEko/

加密的密码

*或!!代表不可以登录

19717 最近一次修改密码的时间
7 7天以后擦可以改密码,0代表随时可以改,限制你改密码的期限
99999

密码有效时间

99999永久有效 7 7天有效

7 密码过期前7天会提醒你一次去修改密码
8 密码过期8天后账号会被锁定,登录不了系统了
19718 明天过期,用户的有效期,超过有效期登陆不了系统
保留字段 未使用

可以用man 5 shadow 去查看

3.添加用户useradd

原理

使用命令useradd 最后是在passwd文件中添加一条记录

vim /etc/passwd

useradd 实际上 修改了passwd文件

passwd 实际上是改了 shadow文件

linux命令修改是临时性的,需要永久生效,得写入文件

格式

useradd 添加新用户,并对新用户进行一些个性化设置

选项

-u 指定uid

-M 不生成家目录

-s 指定shell类型

建立一个命名为ky35,uid2222 不生成家目录 指定shell类型为不让登录的用户

useradd -u 2222   -M  -s  /sbin/nologin  ky35

-d 指定用户的家目录

-e:指定用户的账户失效时间

useradd -e 2023-12-27 ky35

-g:指定用户的基本组名

-r 生成一个uid小于1000的程序用户

-c 备注信息

-p 密码加密

面试题

随机生成密码

cat /dev/random | tr -cd [a-zA-Z0-9] |head -c 12

4.修改密码passwd

格式

passwd +用户

只有root用户才有权限改别的用户的密码

免交互修改密码

选项

-l 锁定用户

passwd -l 用户名 锁定用户

-u 解锁用户

passwd -u 用户名 解锁用户

-S 查看用户状态

passwd -S 用户名 查看用户状态

-d 清空密码,不需要密码直接登录(免密登录)

5.修改用户账号的属性usermod

对已有的属性进行修改

格式

usermod [选项]... 用户名

选项

选项和useradd 基本一致

-l 更改用户账号的登录名称

user -l 新名 原名

-L 锁定用户账户

-U 解锁锁用户账户

-u 修改用户的 UID 号

-s:指定用户的登录 Shell

6.删除用户userdel

格式

userdel [选项] 用户

选项

-r 用户名 把家目录一起删除

7.组帐号文件

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

/etc/gshadow:保存组帐号的密码信息基本不使用

8.添加组groupadd

格式

groupadd +账户名

groupadd [-g GID] 组账号名

9.组内管理(添加,删除,设置)gpasswd

选项

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

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

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

10.删除组账号groupdel

格式

groupdel+组名

11.查询

finger

finger命令查询用户帐号的详细信息

finger [用户名]

w

查询已登录到主机的用户信息

 w [选项] [用户名]

who

相比较 w 命令,who 命令只能显示当前登陆的用户信息,但无法知晓每个用户正在执行的命令。

who [选项] [file]

12.用户账号的初始配置文件

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

~/ .bash_profile

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

~/.bashrc

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

~/.bash_logout

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

/etc/bashrc

二.文件/目录的权限和归属

1.权限

访问人群分为了三类

  1. 所属主(u)

  2. 所属组(g)

  3. 其他人 (o)

权限分为三种

  • r   可以看
  • w 可以改
  • x 可以执行

文件夹 一定要有x,没有x、有rw也没用

r可以看文化夹有哪些文件按

w可以修改文件夹下的文件‘’

x执行 是文件夹的最小

文件

  • r 可以看文件内容
  • w可以修改文件内容
  • x可以运行文件

rwx 有就写 没有用-表示没有

rw- r-- r--

属主 属组 其他

root 可读可写

root组中的用户 只可读

其他用户 只可读

一个文件可以被删除,和本身权限有关吗?

和所在文件夹有 wx权限 就可以删除

cp test

当前用户 一定要有读r权限

能不能操作文件夹,和你当前登录的用户权限是有关系的的

2. 修改权限 chmod

模式法

  • u 属主
  • g 属组
  • o 其他人

+是加上 在原有基础上加上权限

-在原有基础上减去权限

=赋予 原有权限不看 就是 等于号后面的权限

chmod urwx 文件名

数字法

所代表的权限 对应的数字
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权限

3.修改属主,属组,文件或文件夹chown

格式

chown lisi:lisi 文件名

属主 属组都改

chown 用户名:组名 文件

属主

chown 用户名 文件

属组

chown :组名 文件

-R 递归 所有都改

4.umask

作用

umask 的值可以用来保留在创建文件权限

实现方式

新建文件的默认权限: 666-umask,如果所得结果某位存在执行(奇数)权限,则将其权限+1,偶数不变

新建目录的默认权限: 777-umask

非特权用户umask默认是 002

root的umask 默认是 022

默认文件夹最高权限是 777

文件 666 自动将x权限减去 为了安全性考虑

落地权限 文件夹777 -022 755

文件 666-022 64

5.三种特殊权限

suid

sgid

Sticky 

三.特殊权限

访问控制列表 ACL

除了文件的所有者,所属组和其它人,可以对更多的用户设置权限

用法

用法: setfacl [-bkndRLP] { -m|-M|-x|-X ... } file ...
-m,       --modify-acl 更改文件的访问控制列表
-M,       --modify-file=file 从文件读取访问控制列表条目更改
-x,       --remove=acl 根据文件中访问控制列表移除条目
-X,       --remove-file=file 从文件读取访问控制列表条目并删除
-b,       --remove-all 删除所有扩展访问控制列表条目
-k,       --remove-default 移除默认访问控制列表
          --set=acl 设定替换当前的文件访问控制列表
          --set-file=file 从文件中读取访问控制列表条目设定
          --mask 重新计算有效权限掩码
-n,       --no-mask 不重新计算有效权限掩码
-d,       --default 应用到默认访问控制列表的操作
-R,       --recursive 递归操作子目录
-L,       --logical 依照系统逻辑,跟随符号链接
-P,       --physical 依照自然逻辑,不跟随符号链接
          --restore=file 恢复访问控制列表,和“getfacl -R”作用相反
          --test 测试模式,并不真正修改访问控制列表属性
-v,       --version           显示版本并退出
-h,       --help              显示本帮助信息
————————————————

相关推荐

  1. Linux系统的账号权限管理

    2023-12-26 21:20:02       15 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-26 21:20:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-26 21:20:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-26 21:20:02       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-26 21:20:02       20 阅读

热门阅读

  1. tcpdump

    2023-12-26 21:20:02       42 阅读
  2. css学习笔记8(定位)

    2023-12-26 21:20:02       35 阅读
  3. flutter学习-day19-国际化支持

    2023-12-26 21:20:02       36 阅读
  4. golang 最全按键对应表

    2023-12-26 21:20:02       31 阅读
  5. 【Qt-编码】

    2023-12-26 21:20:02       24 阅读
  6. 阿里云服务器助力企业出海跨境电商解决方案

    2023-12-26 21:20:02       41 阅读
  7. 【Unity】对象池技术

    2023-12-26 21:20:02       39 阅读
  8. arm32 arm64 读取PMCCNTR cpu cycle counter

    2023-12-26 21:20:02       69 阅读