linux [vim]用户权限操作
软件下载
sudo apt (un)install tree # tree 是appname
sudo 提权 #sudo的全称是“Superuser Do”,
apt 管理软件包的命令行工具 #Advanced Packaging Tool” 的缩写
install 下载
从普通用户到bd用户,到root用户 这里bd用户也是普通用户,不过这里改普通用户用的是/bin/sh,所以要切换
vim 使用
Vi (Visual Interface)是 Linux下基于Shell 的文本编辑器,Vim (Visual Interface iMproved)是 Vi的增强版本,扩展了很多功能,比如对程序源文件的语法高亮。
vim 命令模式
vim 打开文件的时候 首先进入的是命令模式(没有该文件就创建)
如: vim test3.txt
命令模式在中间,不能直接由插入模式到末行模式
vim 插入模式
写内容 命令模式切换到 插入模式
按一下 键盘 小写 a i o
方向键 和 回车键 移动
vim 末行模式
按:键进入末行模式
:2,3s/^/#/g 给2-3行加注释(substitute) 不需要g
:2,3s/^#//g 给2-3行取消注释
:3 跳转到第三行
:/e n往下查询 N网上查询 e为替代的内容
快捷键
:q 退出 quit
:wq 保存退出 write quit
:q! 强制退出 quit!
:wq! 保存退出 write quit!
另外linux: copy c[复制] shift insert [粘贴]
vim 命令模式
yy 复制(指针在哪行就复制哪行,用方向键调节指针,复制到位置也是从指针下一行)
p 粘贴
2yy 复制两行 2是可变参数
dd 删除
2dd 删除两行 2是可变参数
dd p 剪切
u 撤销
x 删除光标位置下的元素
r 替换
用户和权限管理
切换用户
用户和用户组
sudo # 提权
su # 切换用户 switch user
sudo su - root # - 连同用户的系统环境一起
passwd # 针对当前用户设置密码 qwe123
查看当前用户
who
用户相关文件
vim /etc/passwd
普通用户没有权限查看,显示文件内容为空
/etc/passwd
用户信息文件
x 代表密码标识
vim /etc/shadow
在Linux系统中,/etc/passwd和/etc/shadow是两个重要的系统文件,它们共同管理用户的账户信息。
/etc/passwd文件存储了用户的基本信息,如用户名、用户ID(UID)、组ID(GID)、家目录等。
而/etc/shadow文件则存储了加密后的用户密码信息,以确保系统的安全性。
影子文件
第一段:用户信息
第二段:加密密码 sha5112散列类型加密 !! * 没有密码
第三段:密码最后一次修改时间
第四段:两次密码修改时间间隔
第五段:密码有效期
第六段:密码到期提示时间
第七段:密码过期宽限期
第八段:账号失效时间(封停)
vim /etc/group
组文件信息
第一段:组名
第二段:组密码标识
第三段:组id
第四段:附加用户
vim /etc/gshadow
组密码文件信息
第一段:组名
第二段:组密码标识
第三段:组用户管理
第四段:附加用户
组不需要密码 组用户管理
权限管理 文件权限管理
用户和用户组
在创建用户的时候 会对应生成同名,同id的用户组(初始组)
改用户在初始组内我们又称为(初始用户)
创建用户
必须在root用户的基础上操作,不再乎在哪个文件夹
-m 同时创建对应的用户空间,或者称为文件夹、目录
-u 1003
-g 更改初始组 不去这么操作
-G 附加组
-c 备注信息
-d 指定家目录 不去这么操作 否则要重新权限分配
-s /bin/bash s 代表shell 指定执行脚本
在Linux系统中,/bin/bash和/bin/sh是两个不同的shell解释器。
简单地说,bash是sh的完整版,bash完全兼容sh命令,反之不行
除了bash和bin,还有/bin/csh脚本,/bin/perl脚本,/bin/awk脚本,/bin/sed脚本,/bin/echo等
useradd -m -u 1003 -G root,bd -c "test user1" -s /bin/bash user1
shell即shell script,是一种程序设计语言,也是一种命令语言
简化创建用户
vim /etc/passwd
vim /etc/group
passwd user1 # 创建用户密码 用户没有密码 无法登录
useradd -m -s /bin/bash user2
passwd user2
删除用户
root 用户下面
模拟项目开发环境
userdel -rf user1 # -r
修改用户
没有修改用户
用户相关default(默认)文件
vim /etc/default/useradd
SHELL=/bin/bash
vim /etc/login.defs
useradd文件
如果是 SHELL=/bin/sh 进入该用户家目录时为$
login.def文件
用户组操作
创建用户组 生成用户的时候 不是会创建用户组吗
创建的用户组 空组 组里面是没有用户的
创建的用户的时候 生成的用户组 是有用户的
root
groupadd tp 创建用户组
groupdel tp 删除用户组
如果这个用户组里面有用户,这个组能不能删呢?
创建用户的时候,会生成同名,同id的用户组 这个组是不能删除的 (初始用户)
初始用户和初始用户组 相互依存的,如果说没有这个初始组,这个初始用户就不能存在
假设 user1 ===> user1用户组
groupadd tp 然后我把这个 user1 加入到tp 组里面 (可以删)
user6 的初始组是谁 user6组
把用户添加到组里面去
user6用户 初始组 user6 tp组是user6的附加组
gpasswd -a user6 tp (附加组)
问题:初始组呢?
问题:是不是用户组里面必须要有一个就可以?
问题:能把A用户同时加到B组和C组中吗
创建用户的时候 会同时创建用户组 (初始组) 初始组绑定了 这个初始用户
这个组不能删除
useradd -m user1
groupdel user1 不能删
groupadd tp 空组 #没有绑定初始用户
我们可以给用户 添加组 被添加的组(附加组)
gpasswd -a user1 tp
# 这个tp组能不能删 能删 为什么? 因为tp组没有属于他的 初始用户
groupdel tp #可以删除
groupadd tp 空组 # 没有绑定初始用户
useradd -m -g tp user2 # tp 还是空组吗 不是了 有初始用户了 user2
groupdel tp #不可以删除
组能不能删取决于有没有跟他绑定的初始用户
一个用户可以有多个附加组
一个组可以被多个用户添加成为附加组
一个添加多个附加组
user6 添加多个组
useradd -m -G tp1,tp2,tp3 user6
一个组 成为多个用户的附加组
gpasswd -a -user1 testtp
gpasswd -a -user2 testtp
gpasswd -a -user3 testtp
gpasswd -a -user4 testtp
gpasswd -a -user5 testtp
testtp 能不能删
tp1 tp2 tp3
切换组 newgrp
user6 user6组 tp1 tp2
查询命令 尽量少用
创建userA userB userC 三个用户
同时创建 tp1 tp2 tp3 三个用户组
userB 关联 tp2 和 tp3 用户组
userA 关联 tp2 和 tp1 用户组
userC 关联 tp1 和 tp3 用户组
linux中命令提示符
在大多数Linux系统中,默认的命令提示符样式是”$”符号,表示普通用户权限。
如果用户以超级用户(root)权限登录系统,则默认的命令提示符是”#”符号。
不同的Linux发行版本可能还会根据用户或系统的配置设置其他特定的样式。
/是指根目录:就是所有目录最顶层的目录
~是当前用户的主目录:如果是root用户就是/root/目录, 如果是其他用户就是/home/下用户名命名的用户,该主目录是我们在新建某个Linux账户的时候指定的一个目录。
比如,root用户的主目录是/root,那么~对应/root,
如果我们新建一个用户wsys对应主目录/home/wsys,那么wsys登陆后的目录就是/wsys.
根目录是整个文件系统的起点,包含了操作系统的所有文件和目录,通常只有管理员有完全的访问权限。
主目录是为每个用户设置的个人空间,用于存储个人文件和设置,通常只有该用户和管理员有访问权限。