Linux用户与组
Linux本身是个多用户多任务的操作系统。
用户账户分类
- root用户(UID:0):超级用户,能跨越一切用户和组群对所有文件或目录进行读取、修改、删除。
- 系统用户(UID:1~999):虚拟用户,不具有登入Linux的能力,是系统自身拥有且系统运行不可缺少的,如bin、deamon、adm、mail等。
- 普通用户(UID:1000~60000):在Linux系统上进行普通操作。由系统管理员创建。
基本指令
高权限用户切入低权限用户无需输入密码,低权限用户切入高权限用户需要输入密码。
- useradd 用户名 添加用户 该指令会默认创建一个同用户名的家目录
- useradd -d 指定家目录 新用户名 添加用户
- useradd -g 用户组名 用户名 添加用户到指定组
- passwd 用户名 设置密码 若不指定用户名就默认是对当前用户操作
- userdel 用户名 删除用户 需要root权限
- id 用户名 查看用户id
- su [选项] 用户名 切换登录用户
-
改变登录shell环境-c <命令>
执行一个命令,之后退出当前用户环境- 若不写用户名则默认为root
- exit或logout返回到原来的用户 root用户退出相当于退出系统
- whoami/who am i我是谁 第一次登录到系统的用户信息
用户组
如果在添加用户的时候没有指定组,那么他自成一组,组名称为其用户名。
- groupadd 增加组
- groupdel 删除组
- usermod -g 组名 用户名 移动组
用户和组相关文件
- /etc/passwd 用户配置文件
用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录shell
- /etc/shadow 口令配置文件
登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
- /etc/group 组配置文件
组名:口令:组标识号:组内用户列表
找回root密码
不同的版本找回密码的操作略有不同。kali请看我这篇文章的第三部分
centos请看:
- 进入开机界面,立即按“e”进入编辑模式 再按e进入这个项目
- 用光标上下键翻阅,找到以“Linux16”开头的一行
- 本行最后加上
init-/bin/sh
(后面的步骤基本和kali一样了)
- 输入完之后直接ctrl+x进入单用户模式
- 在光标闪烁的位置输入
mount -o remount,rw /
- 再回车输入
passwd
指令 回车 输入密码 两次
密码最好是8位 但也可以不是
- 这样就是成功了
- 然后再分别输入两个指令
touch /. autorelabel``````exec /sbin/init
这个指令时间比较长 耐心等待
- 接着系统会自动重启 此时密码生效 登录即可
- 登录之后可以直接用passwd指令重置密码
文件目录详细信息
【Part1 0-9位——rwx权限】
-rw-rw-r--
第0位:文件类型
- - 普通文件
- d 文件夹
- l 链接 相当于win的快捷方式
- c 字符设备文件 例如键盘鼠标
- b 块设备 例如硬盘
第1-3位:所有者的权限
第4-6位:所在组的权限
第7-9位:其他组的权限
-
rwx作用到文件:
[r] read 读取、查看
[w] write 修改,但不能删除
[x] execute 执行 -
rwx作用到目录:
[r] read 读取、ls查看
[w] write 修改(相当于删除创建文件),创建、删除、重命名目录
[x] execute 可进入目录 -
rwx可以用数字来表示
r=4, w=2, x=1
rwx =4+2+1=7
rw- =4+2=6
r-x =4+1=5
……
每一个状态都有唯一的数字对应
因此这三个部分的权限就可以用三个数字来表示
修改权限指令chmod
chomd [ u g o a ] [ + - = ] [ r w x ] filename # 字母法公式
chomd [ num1 ][ num2 ][ num3 ] filename # 数字法公式
- u-user,g-group,o-other,a-all。不写ugoa默认就是all。
- r-read-4,w-write-2,x-execute-1
- num1-user的权限和,num2-group的权限和,num3-other的权限和。
- +增加权限,- 撤销权限,= 赋予权限。
举例
chmod +x filename # all增加x可执行权限
chmod u=rwx,g=rx,o=rx filename # 用户赋予rwx 所在组赋予rx 其他组赋予rx
chmod a-x filename # all撤销x可执行权限
chmod 777 filename # all赋予rwx权限
chmod 761 filename # 用户赋予rwx 所在组赋予rx 其他组赋予x
注意区分目录权限和文件权限,如果要对一个文件进行修改,首先要拥有改文件所在目录的相应权限。
目录就相当于大门,如果连目录都进不去,那么即使对文件有所有权限都无济于事。
【Part2 连接数/子目录数】
1
如果是文件,就是link的数量
如果是目录,就是一级子目录数,包括隐藏目录 . 和 ..
【Part3 所有者】
root
默认创建者就是所有者
- 更改文件所有者
chown
chown newowner
chown newowner:newgroup #同时更改所在组
如果是目录 加上参数-R
【Part4 所在组】
root
默认所在组是创建者所在的组
- 更改文件所在组
chgrp
chgrp newgroup filename
如果是目录 加上参数-R
在执行完这条指令之后需要重启,因为它不能立即生效。
- 补充 更改用户所在组:
usermod -g newgroup username
usermod -d dirname username #改变用户登录的初始目录 用户要有进入目录的权限
注意文件所有者和文件所在组是相对独立的
【Part5 大小】
107
默认单位是字节B。
如果在ls查询的时候加上参数-h
,就可以人性化地展示文件大小,转化成人类直观能辨别的单位。
【Part6 修改时间】
Jun 9 03:01
Month-Day-Time
【Part7 文件/目录名】
hello.txt