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.权限
访问人群分为了三类
-
所属主(u)
-
所属组(g)
-
其他人 (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 ? ? ? ? ? ? ?显示本帮助信息
————————————————
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!