linux用户管理与文件权限篇

时间:2024-03-11 09:46:26

1.linux用户权限相关
1)
root用户 相当于qq群的群主 超级用户
sudo命令 相当于qq群的管理员
普通用户 相当于qq群的水军

超级用户root 的UID是 0

系统用户UID为1~999

普通用户的UID是从 1000开始


2)
查看用户的id信息,用linux id命令

存放用户信息的文件 /etc/passwd

创建普通用户命令 useradd 用户名

更新普通用户密码passwd 密码



3)用户切换

su - 用户名

root切换普通用户 不需要秘密吗
普通用户之间需要密码

ps:如果你从root用户切换到XX用户 然后logout退出 回到了之前 用户 也就是root用户


Tip:
1.超级用户root切换普通用户无需密码,例如“群主”想踢谁就踢谁
2.普通用户切换root,需要输入密码
3.普通用户权限较小,只能基本查看信息
4.$符号是普通用户命令提示符,#是超级管理员的提示符


4)用户删除
userdel 用户 #只删除用户 家目录资料还在 不推荐

userdel -rf 用户名 #强制删除用户,及其家目录


5)linux的sudo命令 (就是让普通用户拥有 权限) 只有拥有root权限的用户才可以使用sudo命令
我们可以把sudo理解成是系统管理员有针对性地把权限下放,也就是“放权”,因此,被“授权”的用户如果想要以root的身份执行某些命令/操作,
只需要输入该用户的密码即可,无需知晓我们的root密码是多少,当执行完成后,直接退回到当前用户。


步骤:1. vim /etc/sudoers #打开/etc/sudoers文件
2. /root 然后再按n 就出现下面的 然后按格式添加liuxiaofeng用户#写入如下配置
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
liuxiaofeng ALL=(ALL) ALL

2.使用提供语法检测的命令来写
visudo
visudo使用vi打开/etc/sudoers文件,但是在保存退出时,visudo会检查内部语法,避免用户输入错误信息

6)linux文件目录的权限
Linux权限的目的是(保护账户的资料)
权限预设的身份有三个:

user/owner 属主,文件使用者,文件属于哪个用户 UID(用户ID)
group 属组,文件属于哪个组 GID(组ID)
others 既不是user,也不再group,就是other,其他人


对于文件来说 可读 可写 可执行,转化的linux命令是什么
cat more less 都是读取文本 r
vim echo ""> 都是可写 w
可执行就是值 可以 ./直接执行的,并且颜色是绿色的文件 x



2.linux文件权限相关
1)文件权限
使用ll命令 可以查出下面
- rw-r--r--. 1 root root 0 Mar 6 09:15 shixun.txt
普通文本 权限 文件链接数 属主 属组 文件大小 修改日期时间 文件名

drwxr-xr-x. 3 root root 56 Mar 5 10:38 www.luffycity.com

第一栏:
- 代表普通文本
d 代表是个文件夹
l 是一个软连接


第二栏:
rw- r-- r--
user group other
可读可写 只读 只读
4+2+0 4+0+0 4+0+0

r 可读 4
w 可写 2
x 可运行 1
- 没权限 0

d rwxrwx--- yinhuibing yinhuibing file1

d 代表文件夹

权限解读: rwxrwx---
rwx rwx ---
root group other


2)更改权限的命令用 chmod
chmod [身份]   [参数]   [文件]
    u(user)   +(添加)  
    g(group)  -(减去)
    o(other)  =(赋值)
    a(all)


chmod u-w shixun.txt 表示 给user 去掉w 只写的权限
chmod u+r shixun.txt 表示 给user 加上w 只写的权限
chmod u-x shixun.txt 表示 给user 去掉x 可运行的权限

chmod o+w shixun.txt 表示 给other 加上w 只写的权限

chmod g+x shixun.txt 表示 给group 加上x 可运行的权限

经过以上几条命令 此时 shixun.txt 这个文件的权限如下

- r-- r-x rw- . 1 root root 16 Mar 6 09:25

3)例题:

a)文件权限读、写、执行三种符号的标志依次是(A)
A.rwx B.xrw C.rdx D.rws


b)如果执行命令,chmod 746 file.txt ,那么该文件的权限是(A)

A.rwxr—-rw-
B.rw-r—r—
C.—xr—rwx
D.rwxr—r—
user rwx 7 other r-- 4 group rw- 6

764
c)某文件的组外成员的权限是只读、属主是全部权限、组内权限是可读可写、该文件权限为(D)
o r-- u rwx p rw-
4 7 6 # 按读写执行循序 764
A.467 B.674 C.476 D.764

 

4)linux快捷方式的语法 创建的软链接 以l开头

ln -s 目标文件的路径 快捷方式的路径
ln -s /opt/小姐姐电话.txt /tmp/电话.txt

把/opt/profile 中的PATH变量注释掉,就找不到python3.6的路径了,没法执行
然后就可以用ln -s 这个命令,把 安装包里的python3.6 添加快捷方式到 /bin/下 ,然后就能找到,可以运行


5)压缩解压格式
下载
wget https://files.cnblogs.com/files/pyyu/luffy_boy.zip

解压命令
unzip luffy_boy.zip #.zip 格式的保用 unzip命令解压

压缩命令 # -c 作用于 .tar格式
tar -cvf 压缩文件的名字 你要压缩的内容 #tar格式的压缩包
tar -cvf alltmp.tgz /tmp/* #压缩tmp下所有内容到 alltmp.tgz格式的压缩包下

解压命令
tar -xvf alltmp.tgz #解压缩这个压缩文件


压缩当前目录所有文件为.gz文件
gzip *
把上例中每个压缩的文件解压,并列出详细的信息
gzip -dv *


.tgz.gz 格式的文件 先解压.gz然后解压.tgz
解压命令
tar -zxvf alltmp.tgz.gz #解压缩这个压缩文件

-z 解压gz -x解压tgz -v解压过程 -f 指定文件

tar -zcvf alltmp.tar.gz #解压缩这个压缩文件

-z 解压gz -c解压tar -v解压过程 -f 指定文件

3.其他知识

补充:source /etc/profile 就是说改完里面东西 还不能立马生效 所以用此命令来读一下里面的内容,就生效了
查看端口命令 netstat -tunlp

查看进程 ps -ef|grep 进程名


1)如果你的crm在服务器上运行了,怎么证明他是否正常
1.查看是否能接受响应
2.会产生一个进程 通过 ps -ef | grep python 查看 ,可以通过 pid管理进程
3.也会产生一个端口,通过 netstat -tunlp | grep python #python 为进程名包含python的 因为django是python框架,名字会带python


2)杀死进程的命令

kill 进程id

如果遇见僵尸进程,
kill -9 pid #强制杀死进程,不管三七二十一

-9就代表强制?

#在后期运行uwsgi,支持多进程方式的django运行,会产生好多进程
可以通过

killall vim #可以杀死所有vim的进程
或者pkill 一次性杀死匹配多个的进程

比如有多个vim进程
pkill vim #可以杀死多个

 

3)关闭linux防火墙,便于学习
命令如下

1. 清空防火墙规则
iptables -F
2. 关闭防火墙系统服务
systemctl stop/start/status firewalld
systemctl status firewalld #查看当前防火墙状态

3.禁止防火墙服务,开机自启
systemctl disable/enable firewalld

4)linux的dns域名解析

1.域名和ip的关系
一对多的关系

多个域名可以对应一个服务器ip # 服务器为一 域名为多


2.本地的dns解析文件 /etc/hosts ,可以手动写入 dns 与ip的对应关系
[root@localhost ~]# cat /etc/hosts
123.206.16.61 s17wudi.com #就是输入域名就能访问到ip

ping ip 是连接 看能不能连接上


3.windows 的hosts解析路径如下:C:\Windows\System32\drivers\etc\hosts


4.dns服务器文件 /etc/resolv.conf

nslookup pythonav.cn域名查找
这个文件中,定义了2个 主备dns服务器地址,

这些dns服务器,都搭建了一个叫做bind的软件,用于dns解析

阿里: 223.5.5.5 223.6.6.6
腾讯的 : 119.29.29.29
谷歌dns :8.8.8.8
114网址的: 114.114.114.114

dns域名解析命令
nslookup 域名 #例baidu.com

5)linux的定时任务

crontab -l #查看定时任务


1.定制定时任务,编写定时任务

crontab -e
#写入如下定时任务

分 时 日 月 周 命令的绝对路径 字符串 >> 一个文件地址
#每分钟向/tmp/panta.txt 追加写入"干干巴巴,麻麻赖赖"

* * * * * /usr/bin/echo "干干巴巴,麻麻赖赖" >> /tmp/panta.txt
# echo命令的绝对路径
#每分钟执行一次命令
分 时 日 月 周 命令
* * * * * 命令绝对路径

#每小时的3,15分组执行命令
* * * * *
3,15 * * * *

#在下午8-11点的第3和第15分钟执行
分 时 日 月 周 命令
3,15 20-23 * * * 命令

#每晚21:30执行命令
分 时 日 月 周 命令
30 21 * * *


#没周六、日的1:30执行命令
分 时 日 月 周 命令
30 1 * * 6,7 命令


#每周一到周五的凌晨1点,清空/tmp目录的所有文件
分 时 日 月 周 命令
0 1 * * 1-5 /usr/bin/rm -rf /tmp/*

 

#每晚的21:30重启nginx
分 时 日 月 周 命令
30 21 * * * /usr/bin/systemctl restart nginx


#每月的1,10,22日的4:45重启nginx
分 时 日 月 周 命令
45 4 1,10,22 * * /usr/bin/systemctl restart nginx


#每个星期一的上午8点到11点的第3和15分钟执行命令

分 时 日 月 周 命令
3,15 8-11 * * 1 执行命令

6)linux安装软件的方式
1.yum安装 自动去配置的yum下搜索软件包,自动安装,自动解决依赖关系,牛逼
yum安装受限于yum仓库,并且安装到了哪个路径,也难以更改

2.源码编译安装 yum工具适用于简单,不重要的软件,方便安装
源码编译安装,适合,重量级的,企业应用,
源码编译安装可以扩展很多第三方功能

3.rpm包安装 这个方式就很烂了,需要手动解决依赖关系
1.下载rpm包格式
2.通过命令安装
rpm -ivh xx.rpm


rpm -q nginx #检测应用是否安装