Linux权限
一、用户权限
1、解释器
/bin/sh 默认
/bin/bash 默认
/sbin/nologin 虚拟用户
/dash ubuntu
2、用户配置
用户信息配置文件 /etc/passwd
一行内容 tjer:x:1000:1000:tjer:/home/tjer:/bin/bash
(用户名 密码 uid gid 注释 解释器)
密码文件地址 /etc/shadow
组信息地址 /etc/group
/bin/bash 可以登录
/sbin/nologin 不可以登录
3、用户相关命令
useradd 创建用户
usermod 修改用户信息
userdel 删除用户 -f强制 -r家目录删除
passwd 更改用户密码
chpasswd 批量更新用户密码
chage 修改用户密码属性
id 查看uid gid 组信息
su 切换用户 示例 su - tjer(不加-环境变量不会带过去) 密码(tjer的密码) -c切换后执行命令
sudo 以root权限执行命令
visudo 编辑sudoers配置文件
groupadd
whoami 显示当前用户
who 显示当前登录用户(比w全)
w 显示当前登录用户
last 最后用户的登录信息
lastlog 显示比last详细的悉尼
4、创建用户的过程
/home/tjer
.bash_profile 用户个人配置文件
删除tjer目录后,tjer无法运行登录 可以创建tjer目录 mkdir /home/tjer 然后cp /etc/skel/.bash* /home/tjer
useradd 创建用户 /etc/passwd -c 加备注 -d设置起始目录 -D变更预设值 -e有效期 -g群组 -m自动建立登录目录 -M不要自动建立登录目录 -n取消建立以用户名为名的组 -r建立系统账号 -s(shell)指定登录使用的shell -u(udi)用户id
passwd 设置密码
使用uderadd->系统读取/etc/login.defs(用户定义文件)和etc/default/userad(用户默认配置文件)俩文件中的规则定义创建新用户->向/etc/passwd和/etc/shadow /etc/gshadow添加密码信息->根据/etc/default/useradd创建家目录->/etc/skel所有文件复制到新的家目录
5、sudo详解
sudo command
su -root
visudo 编辑权限给某个用户
二、文件属性
1、命令
ll
ls
l -a
ln -s link命令 创建链接(类似widnows发送快捷方式)
chmod u+x ./hello.sh 给属主添加执行权限
chmod 0
touch filename 当前目录落地一个文件
2、
-rw-r--r-- 1 tjer tjer 3854 4月 27 2023 .bashrc
drwx------ 2 tjer tjer 4096 12月 14 2023 .box/
[1属性][3属主权限][3属组权限][3其他人权限] [属主][属组][大小] 修改日期 文件名
权限值 排列顺序 ---------- -rw-rw--- 10位
- (无权限)
r (read)
w (write)
x (exec)
-普通文件
d文件夹
l软连接
3、更改文件权限(chanage mod)
文件的权限必须严格按照顺序rwx
chmod u+x filename 给属主添加执行权限
chmod g-x filename 给数组去掉执行权限
chmod u=rw
chmod 0 filename 给属性清零
chmod o=x filename 其他人权限为x
chmod a=r filename 相当于一次性修改文件权限为只读 相当于chmod 444
4、更改文件夹的权限
文件夹的读权限体现在ls
文件夹的执行权限体现在可以cd文件夹
文件夹的写权限体现在可以touch等
文件夹先有w权限才能touch mkdir等
文件夹先有x权限才能cd进入
5、文件个数字的匹配
r w x r w x r w x
4 2 1 4 2 1 4 2 1
文件权限如下test.txt
-rwx -w- --x
修改权限如下:属主只读,其他人无权限
chmod u=r test.txt chmod g-w test.txt chmod o=x test.txt 需要三组
rwx 4+2+1 7
r-x 4+0+1 5
-w- 0+2+0 2
--- 0+0+0 0
chmod 400 test.txt
设置权限为
-w-r--r-- chmod u=w,g=r,o=r test.txt chmod 244 test.txt
设置权限为755 字母表示权限
rwxr-xr-x
数字666 rw-rw-rw-
数字542 r-xr---w-
数字443 r--r---wx
6、修改文件的属组、属主(change owner) chown tjer filename(dir)
chown tjer filename 送给人
chown :tjer_group filename 送给组
chown group:tjer filename 送给组和人
-R 递归修改文件的属组属主
chowm -R root:root dir/* 所有文件都修改 使用管理员权限
7、使用umask命令(用来限制新文件的权限)永久修改编辑此文件/etc/profile 否则umask 0002设置
文件、文件夹的权限最高为777
root创建文件、文件夹的权限
系统默认文件666 文件夹777 减去umask
普通用户创建文件、文件夹的权限 umask 0002
664 775
8、chattr 更改文件的扩展属性,比chmod更加底层
参数 a 只能向文件添加数据,不能删除
参数-R 递归更改目录属性
参数-V 显示命令执行过程
模式+ 添加参数
模式- 移除参数
模式= 更新为指定参数
A不让系统修改最后的访问时间
a文件数据只能追加,不能删除
i文件不能被删除、改名、修改内容
三、linux的通配符
常见通配符
* 匹配任意 0或多个字符
? 匹配任意一个字符 有且只有一个字符
符号集合 匹配一堆字符或文本
[] 匹配其中的任意字符 [absf]
[a-z] 匹配a到z之间的任意一个字符,要求连续字符
[1-9] 匹配1-9之间的任意一个数字,要求连数字
[!abcd]不匹配括号中的一个字符,也可以是[!a-d]
[^abcd]不匹配括号中的一个字符,也可以是[^a-d]
特殊通配符
[[:upper:]] 所有大写字母
[[:lower:]] 所有小写字符
[[:alpha:]] 所有字母
[[:alnum:]] 所有字母和数字
[[:space:]] 所有空白字符
[[:punct:]] 所有标点
示例 找出跟目录下最大文件夹深度是3,且以l开头的文件,以小写字母结尾,中间出现任意一个字符的文本文件
find / -maxdepth 3 -type f -name l?[a-z]
示例找出/tmp下任意一个数字开头且以非数字开头的文件
find /tmm -type f -name [0-9][!0-9]
五、特殊符号
单引号'' 所见即所得,强引用
双引号"" 可以解析特殊符号、变量、转移符号,解析后在输出结果
没有引号 一般是连续的字符串、数字、路径可以省略双引号,遇见特殊字符、空格、变量必须加上双引号
反引号 `` 常用于引用命令结果、同于$(命令)
六、重定向
输入流:<--标准输入stdin 键盘
输出流:-->标准输出stdout 显示器
错误输出流: -->输出错误stderr
程序启动时候默认打开三个I/O设备文件
stdin 文件描述符0 <或0< (覆盖) <<或0<<(追加)
stdout 文件描述符1 >或1>(覆盖)>>或1>>(追加)
stderr 文件描述符2 >或2>(覆盖)>>或2>>(追加)
七、其他特殊符号
; 1、表示命令结束 2、命令分隔符 ls;pwd 先前者再后者 3、注释符 系统不会读取的部分
| 管道符 第一个结果给第二个
#注释内容 root身份提示符
$ $变量 取变量的值 普通用户提示符
\转移符
{}生成序列 引用变量作为分隔
生成文本 touch test{1..20} test.txt touch {a..z} text.txt
生成文件 mkdir {test1,test2,test3}
快速备份文件 cp /tmp/test.txt{,.backup} 会备份成test.txt.backup
&&前一个命令成功再执行下一个
|| 前一个失败就下一个
!取反、vim的强制退出、找出历史命令