
Linux-基础建设(一)
一、linux系统概述与部署
1.Linux概述
简介:Linux与windows类似的,他们都是操作系统。只不过Linux一般用于企业环境,相对更稳定。
2.Linux发行版本
Debian系列(Debian、Ubuntu)、红帽系列(rhel红帽、Centos系统)、国产系列(中标麒麟、红旗linux、欧拉系统..)、其他
二、VMware中配置linux系统NAT网络
1.获取网卡名
Ifconfig、ip a 得到ens33或eth0
2.配置网络
[root@centos7 ~]#cd /etc/sysconfig/network-scripts/
[root@centos7 /etc/sysconfig/network-scripts]#vi ifcfg-ens32 #保留以下内容 TYPE="Ethernet" BOOTPROTO="none" NAME="ens32" DEVICE="ens32" ONBOOT="yes" IPADDR=192.168.3.17 NETMASK=255.255.255.0 GATEWAY=192.168.3.1 DNS1=8.8.8.8 DNS2=114.114.114.114
3.配置win VMnet8网络
编辑IPv4属性:
4.VMware中配置网络
编辑 > 虚拟网络编辑器
5.重启网络
[root@centos7 ~]#systemctl restart network [root@centos7 ~]#ifconfig [root@centos7 ~]#ping -c 2 baidu.com #查看DNS [root@centos7 ~]#cat /etc/resolv.conf
三、Linux常用命令
1、ip地址可以简单的分为2类:
- 局域网ip(内网ip,私网ip)
- 公网ip(外网ip)
2、端口
sshd:22 http:80 https:443
3、Linux命令行格式
命令 [选项] [参数]
4、快捷键:
Ctrl + a :光标移动到行首 Ctrl + e :光标移动到行尾 Ctrl + u : 把光标所在位置到行首的内容剪切(删除) Ctrl + l :清屏
6、关机:shutdown、init 0关机
7、重启:reboot、init6
四、linux核心命令
1、命令
cd:切换目录 Pwd:显示绝对路径 Mkdir:创建目录 Touch:创建文件 Ls :查看内容 (-a) Mv:移动 Cp:复制 Rm -rf :删除 Echo:输出信息到屏幕 Cat:显示文件内容 Head: 显示头几行 Tail:显示后几行 Less:按页显示文件内容 More:按页显示文件内容,到最后一行退出 Wc -l:统计行数
2、vim快捷键:
移动到最后一行 G(shift+g) 移动到第1行 gg 移动到某一行 100gg 复制当前行 yy 删除当前行 dd 粘贴到当前行后 p 撤销 u(undo) 显示行号 :set nu 或 :set number 取消显示行号 :set nonu 搜索(默认就是向下找) /你要的内容
3、/etc/目录结构:
/etc/hostname:主机配置文件
/etc/hosts:主机名和ip的对应关系
/etc/sysconfig/network-scripts/ifcfg-eth0:网卡配置文件
/etc/rc.local:开机自启动的文件
/etc/fstab:开机自动挂载的配置文件
/etc/motd:文件中的内容会在用户登录系统后显示出来.
/etc/issue/etc/issue.net文件中的内容会在用户登录系统前显示出来.
4、修改主机名:
#命令同时修改临时+永久,表示一直生效 hostnamectl set-hostname 新的主机名就行 hostname主机名 ctl ctrl control 控制
#配置主机名 hostnamectl set-hostname centos7.ops.com yum groupinstall -y "fonts"
#查看主机名 cat /etc/hostname
#重新登录 远程连接.
5.设置系统语言
vim /etc/locale.conf
查看当前语言包:locale
查看系统拥有的语言包:locale -a
安装简体中文语言包:yum install kde-l10n-Chinese && yum groupinstall -y "fonts"
# 设置系统语言
LANG="en_US.UTF-8" # 英文
LANG="zh_CN.UTF-8" # 中文
source /etc/locale.conf # 使配置生效
# 方法二
localectl set-locale.UTF8
五、上传与下载
Wget -O:指定下载目录 Wget -qO:下载无回显 Curl:-o:指定下载目录 Curl -k:不在验证ssl证书 Rz -E:上传 Sz :下载
六、Centos7.9系统初始化
1、关闭防火墙
[root@centos7 ~]#systemctl stop firewalld [root@centos7 ~]#systemctl disable firewalld [root@centos7 ~]#setenforce 0
#修改文件/etc/selinux/config,将SELINUX修改为disabled [root@centos7 ~]#cat /etc/selinux/config | grep ^SELINUX=.* SELINUX=disabled
2、配置网络和本地仓库源
[root@centos7 ~]#cd /etc/yum.repos.d/ [root@centos7 yum.repos.d]#ls [root@centos7 yum.repos.d]#mkdir bak [root@centos7 yum.repos.d]#mv CentOS-* bak/ [root@centos7 yum.repos.d]#ls bak
1) 配置阿里云仓库
下载镜像网址
http://mirrors.163.com/
https://mirrors.aliyun.com/
[root@centos7yum.repos.d] #wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-## 7.repo
[root@centos7 yum.repos.d]#ls bak CentOS-Base.repo
列出仓库信息 [root@centos7 yum.repos.d]#yum repolist
- 清除仓库的缓存 [root@centos7 yum.repos.d]#yum clean all
#生成仓库缓存 [root@centos7 yum.repos.d]#yum makecache fast
[root@centos7 yum.repos.d]#yum remove -y finger [root@centos7 yum.repos.d]#yum install -y finger
1.2 配置本地yum源仓库
[root@centos7 yum.repos.d]#yum install vim -y [root@centos7 yum.repos.d]#vim local.repo [local] name=local repo baseurl=file:///iso enabled=1 gpgcheck=0 #保存退出
[root@centos7 yum.repos.d]#mkdir /iso [root@centos7 yum.repos.d]#mount /dev/sr0 /iso [root@centos7 yum.repos.d]#df -h | grep iso /dev/sr0 4.4G 4.4G 0 100% /iso
[root@centos7 yum.repos.d]#yum repolist
[root@centos7 ~]#vim /etc/fstab /dev/sr0 /iso iso9660 defaults 0 0
[root@centos7 ~]#mount -a
3、生产环境下常用安装包:
yum install gcc make autoconf gcc-c++ glibc glibc-devel pcre pcre-devel openssl openssl-devel systemd-devel zlib-devel vim lrzsz tree tmux lsof tcpdump wget net-tools iotop bc bzip2 zip unzip nfs-utils man-pages
4、配置超管远程登录
[root@centos7 ~]#cd /etc/ssh/
[root@centos7 /etc/ssh]#vim sshd_config 配置下面这项内容,然后保存退出 PermitRootLogin yes
[root@centos7 /etc/ssh]#cat sshd_config | grep PermitRootLogin PermitRootLogin yes
#重启服务生效 [root@centos7 ~]#systemctl restart sshd
#使用远程连接工具 xshell,进行连接测试
5、配置系统网卡名称
修改主机网卡名
[root@centos7 ~]# yum install net-tools -y
[root@centos7 ~]#vim /etc/default/grub
添加net.ifnames=0 biosdevname=0
GRUB_CMDLINE_LINUX="crashkernel=auto rhgb quiet net.ifnames=0 biosdevname=0"
[root@centos7 ~]#grub2-mkconfig -o /boot/grub2/grub.cfg [root@centos7 ~]#vim /etc/default/grub
添加net.ifnames=0 biosdevname=0
GRUB_CMDLINE_LINUX="crashkernel=auto rhgb quiet net.ifnames=0 biosdevname=0"
[root@centos7 ~]#grub2-mkconfig -o /boot/grub2/grub.cfg Generating grub configuration file ... Found linux image: /boot/vmlinuz-3.10.0-1160.el7.x86_64 Found initrd image: /boot/initramfs-3.10.0-1160.el7.x86_64.img Found linux image: /boot/vmlinuz-0-rescue-754d8c99ca1b46258235e22a6c2d1f9e Found initrd image: /boot/initramfs-0-rescue-754d8c99ca1b46258235e22a6c2d1f9e.img done
[root@centos7 ~]#cd /etc/sysconfig/network-scripts/
[root@centos7 network-scripts]#mv ifcfg-ens33 ifcfg-eth0
[root@centos7 network-scripts]#vim ifcfg-eth0 #底行模式 :%s/ens33/eth0/g
重启系统
init 6 shutdown -r now reboot
重启网络
[root@centos7 network-scripts]#systemctl restart network
[root@centos7 network-scripts]#ifconfig eth0 [root@centos7 ~]# ifconfig [root@centos7 ~]# ifconfig eth0
七、软件运行和编译
1、C 语言程序的实现过程:预处理 --> 编译 --> 汇编 --> 链接
2、范例:gcc编译过程:
#分步骤编译运行 gcc -E hello.c -o hello.i 对hello.c文件进行预处理,生成了hello.i 文件 gcc -S hello.i -o hello.s 对预处理文件进行编译,生成了汇编文件 gcc -c hello.s -o hello.o 对汇编文件进行编译,生成了目标文件 gcc hello.o -o hello 对目标文件进行链接,生成可执行文件
#一步实现编译过程 gcc hello.c -o hello 直接编译链接成可执行目标文件
3、程序包编译安装:源代码-->预处理-->编译-->汇编-->链接-->执行
4、生产实践:基于最小化安装的系统建议安装下面相关包
yum install gcc make autoconf gcc-c++ glibc glibc-devel pcre pcre-devel openssl openssl-devel systemd-devel zlib-devel vim lrzsz tree tmux lsof tcpdump wget net-tools iotop bc bzip2 zip unzip nfs-utils man-pages
第一步:运行 configure 脚本,生成 Makefile 文件 ./configure --help 安装路径设定 --prefix=/PATH:指定默认安装位置,默认为 /usr/local/
--sysconfdir=/PATH:配置文件安装位置
第二步:make 第三步:make install
5、二进制程序目录导入至PATH环境变量中
编辑文件 /etc/profile.d/NAME.sh export PATH=/PATH/TO/BIN:$PATH 导入帮助手册 编辑 /etc/man.config|man_db.conf 文件,添加一个MANPATH
八、用户、组和权限
1、用户组
管理员组:root, 0 系统组: 1-999 , 对守护进程获取资源进行权限分配 普通组:1000+ , 给用户使用
2、passwd文件
/etc/passwd文件保存Linux系统用户属性配置信息
3、shadow文件
/etc/shadwo文件保存Linux系统用户的密码信息
4、group 文件
/etc/group文件保存系统用户组的属性信息
5、gshadow文件
/etc/gshdow`文件保存Linux系统用户组密码信息
6、配置文件
vipw / vigr 命令: 编辑/etc/passwd、/etc/shadow、/etc/group和/etc/gshadow文件, 该方式将设置适当的锁,以防止文件损坏。 vipw -p 编辑/etc/passwd文件 vipw -g 编辑/etc/group文件 vipw -s 编辑/etc/shadow文件
pwck命令: 用来验证系统认证文件/etc/passwd和/etc/shadow的内容和语法 pwck -q 仅报告错误信息 pwck -s 以用户id排序文件
getent命令: 直接查看配置文件 getent passwd 查看/etc/passwd文件 getent shadow 查看/etc/shadow文件 getent group 查看/etc/grooup文件 getent gshadow 查看/etc/gshadow文件
getent可以直接过滤文件内容 [root@centos7 ~]# getent passwd root root:x:0:0:root:/root:/bin/bash
7、用户组管理命令
7.1 创建用户 useradd
useradd
命令可以创建Linux新用户, 同时创建用户的主组
useradd 命令默认值设定由/etc/default/useradd
文件定义
useradd:
-r
:创建系统账户,默认情况下创建的是普通用户。-c
:为用户添加注释,即用户的描述信息。-u
:指定用户的UID。-M
:不创建用户的主目录。-d
:指定用户的主目录。
7.2 修改用户属性
usermod:
-s
:修改用户的登录Shell。-c
:修改用户的注释。-aG
:将用户添加到指定的附属组,保留用户原有的附属组。-u
:修改用户的UID。-n
:修改用户的登录名(用户名)。
groupadd:
-r
:创建系统组。-g
:指定组的GID。
groupmod:
-n
:修改组的名称。-g
:修改组的GID。-u
:修改组的GID。
7.3 删除用户
groupdel:
-f
:强制删除组,即使该组中还有用户。
groups: 显示当前用户所属的组。
#对于uUbuntu系统: 默认创建用户使用/bin/sh解释器,且不会自动创建家目录 useradd -r -d /home/apache -m -S /bin/bash apache
7.4 查看用户相关ID信息
id -u #显示UID id -g #显示GID id -G #显示用户所属的私有组的ID
7.5 切换用户
su [-, -l, --login] #完全切换用户 su -c #指定用户的shell终端传递命令, 返回执行结果给当前用户 范例:
7.5.1.使用su 切换用户, 查看用户相关变量是否改变
[root@centos7 ~ ]# su xuan
7.5.2.使用su - 切换用户, 查看用户相关变量是否改变
[root@centos7 ~ ]# su - xuan
7.5.3. 切换指定用户执行命令
[xuan@centos7 ~ ]$ su - root -c "getent shadow"
7.6 设置用户密码passwd chpasswd
passwd
可以修改系统用户的密码
passwd -d #删除指定用户密码
passwd -l #锁定指定用户
passwd -u #解锁指定用户
passwd -e #强制用户下次登录修改密码, 设置后shadow文 件第三字段为0 *****
passwd -f #强制操作
passwd -n mindays #指定用户的密码最短使用期限
passwd -x maxdays #指定用户的密码最大使用期限
passwd -w warndays #提前多少天开始警告更改密码
passwd -i inactivedays #非活动期限
passwd --stdin #免交互修改用户密码, 从标准输入接收用户密码,Ubuntu无此选项 *****
范例:
1.免交互式修改用户密码
echo 123456 | passwd --stdin xuan echo root:123456 | chpas
2.批量创建用户并设置密码
for num in {1..10};do useradd user$num;echo 123456|passwd --stdin user$num;done
3.批量查看用户
for num in {1..10};do id user$num;done
4.批量删除用户
for num in {1..10};do userdel -r user$num;done
7.7 修改用户密码策略
chage命令可以修改用户密码策略: chage -d 0 #设置用户几天后必须修改密码, "chage -d 0" 和 "passwd -e" 作用一样 chage -m MIN_DAYS #设置用户几天后可以修改密码 chage -M MAX_DAYS #设置密码后的最大天数(密码使用时长) chage -W WARN_DAYS #设置过期警告天数 chage -I INACTIVE_DAYS #设置密码过期后的宽限期 chage -E EXPIRE_DATE #设置用户的有效期 chage -l #显示用户密码设置情况 范例: #修改xuan用户密码策略,3天后可以正常修改密码,47天密码过期,过期前14天发送警告,密码过期宽容7天,并且xuan用户账户可以使用到2021-10-10 [root@centos7 ~ ]# chage -m 3 -M 47 -W 14 -I 7 -E 2021-10-10 xuan [root@centos7 ~ ]# chage -l xuan
#下次用户登录强制修改密码 [root@centos7 ~ ]# passwd -e xuan [root@centos7 ~ ]# chage -l xuan
7.8 用户相关其他命令
chfn 命令设置用户说明信息,passwd
文件的第五字段。
[root@centos7 ~ ]# chfn xuan
chsh指定用户的shell解释器,同usermod -s
chsh -l #查看系统shell解释器(ubuntu无此参数)
[root@centos7 ~ ]# chsh -l
chsh -s #设置用户解释器 [root@centos7 ~ ]# chsh -s /bin/sh xuan [root@centos7 ~ ]# getent passwd xuan finger查看用户最近一次登录信息 yum install -y finger finger xuan
7.9 创建用户组 groupadd
groupadd -g #创建用户组指定GID,除非指定-o选项,否则ID值必须是唯一的数字 groupadd -r #创建系统组
7.10 修改用户组
groupmod -n group_name #修改用户组名称 groupmod -g GID #新的GID
7.11 查看用户的用户组:groups
7.12 删除用户组 groupdel
gropudel f, --force #强制删除,即使是用户的主组也强制删除组
7.13 更改用户组密码 gpasswd
gpasswd
命令可以更改组密码,也可以修改附加组的成员关系
gpasswd #设置用户组密码
gpasswd -a #将user添加至指定组中
gpasswd -d #移除用户
gpasswd -A #设置用户组的管理员用户
gpasswd -r #删除用户组密码
7.14 临时切换用户主组
newgrp 命令可以临时切换主组, 如果用户本不属于此组,则需要组密码 newgrp [-] [group] #如果使用 - 选项,可以初始化用户环境 #1.设置root组密码 [root@centos7 ~ ]# gpasswd root #2.切换xuan用户,临时切换root用户组 [root@centos7 ~ ]# su - xuan #3.创建文件测试, 文件的所属组 [xuan@centos7 ~ ]$ touch test.txt [xuan@centos7 ~ ]$ ll test.txt
7.15 管理用户组
groupmems
可以管理附加组的成员关系,同gpasswd
命令
groupmes -g #指定查看的用户组
groupmes -a #指定用户加入组
groupmes -d #从组中删除用户
groupmes -p #从组中清除所有成员
groupmes -l #显示组成员列表
范例:
#用户组添加成员
[root@centos7 ~ ]# groupmems -l -g admins
[root@centos7 ~ ]# groupmems -a xuan -g admins
[root@centos7 ~ ]# groupmems -l -g admins
xuan
[root@centos7 ~ ]# groupmems -a tom -g admins
[root@centos7 ~ ]# groupmems -l -g admins
xuan tom
#除用户组所有成员 [root@centos7 ~ ]# groupmems -p -g admins [root@centos7 ~ ]# groupmems -l -g admins
8、文件权限管理
8.1文件所有者和属组属性的操作
8.1.1 设置文件所有者
chown 命令可以修改文件的属主,也可以修改文件属组
chown OWNER #只修改所有者
chown OWNER:GROUP #同时修改所有者和属组
chown :GROUP #只修改属组,冒号也可用 "." 替换
chown --reference=RFILE #按照指定文件的的属性,来修改目标文件属性
chown -R #递归,此选项慎用,非常危险!
8.1.2 设置文件的属性信息cngrp
chgrp 命令可以只修改文件的属组 chgrp --reference=RFILE #按照指定文件的的属性,来修改目标文件属性 chgrp -R #递归,此选项慎用,非常危险!
8.2 文件权限控制
8.2.1 权限对文件来说
r 读权限可以查看文件内容 w 写权限可以修改文件内容 x 执行权限可以执行文件 权限对目录来说 r 可以使用ls查看此目录中文件列表 w 可在此目录中创建文件,也可删除此目录中的文件,而和此被删除的文件的权限无关 x 可以cd进入此目录,可以使用ls -l查看此目录中文件元数据(须配合r权限),属于目录的可访问的最小权限 X 在递归目录授权a+X权限,只给所有子目录授予x权限,子文件9位权限只要存在一个x执行权限就会授权a+x,否则不授权执行权限
8.2.2 修改文件权限 chmod
chmod
命令可以根据不同用户对象设置不同权限
[root@centos7 /data ]# chmod --help
Usage: chmod [OPTION]... MODE[,MODE]... FILE... 权限字母表达式模式
or: chmod [OPTION]... OCTAL-MODE FILE... 数字表达式模式
or: chmod [OPTION]... --reference=RFILE FILE... 按照一个文件设置目标文件权限
权限字母表达式授权授权
文件属主授予权限(说明:权限信息可以随意组合 rw rwx rx wx)
添加权限信息 chmod u+[ r / w / x ]
删除权限信息 chmod u-[ r / w / x ]
设置权限信息 chmod u=[ r / w / x ]
文件属组授予权限 添加权限信息 chmod g+[ r / w / x ] 删除权限信息 chmod g-[ r / w / x ] 设置权限信息 chmod g=[ r / w / x ]
其他用户授予权限 添加权限信息 chmod o+[ r / w / x ] 删除权限信息 chmod o-[ r / w / x ] 设置权限信息 chmod o=[ r / w / x ]
所有用户授予权限 添加权限信息 chmod a+[ r / w / x ] 删除权限信息 chmod a-[ r / w / x ] 设置权限信息 chmod a=[ r / w / x ] 数字表达式授予权限 权限位表示:r 数字表示:4 权限位表示:w 数字表示:2 权限位表示:x 数字表示:1 权限位表示:- 数字表示:0
8.2.3 用户和权限关系
文件权限和用户关系: 只赋予文件权限 000 只赋予文件读权限 444 只赋予文件写权限 222 只赋予文件执行权限 111
8.2.4总结
root用户,只能文件授予执行权限,就可以对文件任意操作
普通用户(属主,属组),至少授予读权限 r + w 权限可以正常编辑文件内容 r + x 权限可以执行文件 文件权限和用户关系: 只赋予文件读权限 444 只赋予文件写权限 222 只赋予文件执行权限 111 总结: root用户,对目录默认拥有最大权限 rwx 普通用户(属主,属组),对于目录至少授予执行权限 x + r 权限可以查看目录下子文件信息 x + w 权限可以创建删除子文件
读取文件数据原理 目录的权限只管控子文件操作,不管控子目录下文件的创建删除 所以,读取文件数据是按照文件的绝对路径,从根目录开始判断权限 可以理解为:图书馆看书,第一步需要进入图书馆权限,第二步需要获取书架权限,第三步需要书查看权限
8.3 新建文件目录权限控制umask
umask
数值用来控制新建文件或者目录权限
对于root用户, umask数值默认是022
对于普通用户, umask数值默认是002
由/etc/profile文件控制默认umask数值
[root@centos7 /data ]# cat /etc/profile
if [ $UID -gt 199 ] && [ "/usr/bin/id -gn
" = "/usr/bin/id -un
" ]; then
umask 002
else
umask 022
fi
说明:如果用户的UID小于199,并且用户和用户所属组名字相同时,umask等于002, 否则umask等于022
umask
数值如何控制新建文件目录权限
新建文件的默认权限: 666-umask , 如果所得结果某位存在执行(奇数)权限,则将其权限+1,偶数不变
新建目录的默认权限: 777-umask
umask
命令参数
umask -p 查看umask数值
umask -S 按照字母表达式显示
设置umask数值
临时设置
[root@centos7 ~ ]# umask 123
[root@centos7 ~ ]# umask
0123
永久设置:写入配置文件 /etc/bashrc ~/.bashrc
8.4 linux文件特殊权限
8.4.1 特殊权限 SUID
SUID
设置方法:
方法一:chmod u+s 文件
方法二:chmod 4644 文件
suid权限与执行权限位共用, 执行权限位出现小写s表示文件属主有执行权限, 大写S表示文件文件属主没有执行权限
使用场景:
一个用户是否可以修改文件信息,与用户执行什么命令无关,与操作文件对象对应权限有关
[root@centos7 ~ ]# ll /etc/shadow
/etc/shadow文件权限是000,普通用户无法查看修改文件内容 [root@centos7 ~ ]# su - xuan [xuan@centos7 ~ ]$ cat /etc/shadow
但是xuan用户可以通过passwd命令可以更改密码, 原因是passwd命令文件的属主权限设置了suid特殊权限
[xuan@centos7 ~ ]$ ll which passwd
SUID权限执行流程:
第一步:判断执行命令用户是否对命令文件拥有执行权限
第二步:判断是否有suid权限, 如果有, 会以命令属主身份执行操作
8.4.2 特殊权限 SGID
sgid设置方法: 方法一: chmod g+s 文件 方法二: chmod 2644 文件 guid权限与属组执行权限位共用, 执行权限位出现小写s表示文件属组有执行权限, 大写S表示文件文件属组没有执行权限 范例: [root@centos7 /data ]# mkdir dir1 [root@centos7 /data ]# chmod 2777 dir1 [root@centos7 /data ]# ll -d dir1/ drwxrwsrwx. 2 root root 6 Apr 13 16:20 dir1/ [root@centos7 /data ]# su xuan [xuan@centos7 /data ]$ touch dir1/t1 [xuan@centos7 /data ]$ ll dir1/t1 -rw-rw-r--. 1 xuan root 0 Apr 13 16:20 dir1/t1 说明:目录设定为sgid权限,其他用户在此目录下创建文件的属组用户为此目录属组用户
8.4.3 特殊权限 sticky
Sticky权限设置: 方法一: chmod o+t 文件 方法二: chmod 1644 文件 sticky权限与其他用户执行权限位共用, 执行权限位出现小写s表示文件其他用户有执行权限, 大写T表示文件其他用户没有执行权限 范例: [root@centos7 /data ]# chmod 1777 /data/ [root@centos7 /data ]# ll -d /data/ drwxrwsrwt. 2 root admins 6 Apr 13 16:35 /data/ [root@centos7 /data ]# su xuan [xuan@centos7 /data ]$ ll total 0 -rw-r--r--. 1 root admins 0 Apr 13 20:08 file1.txt -rw-rw-r--. 1 tom admins 0 Apr 13 20:09 tom_file1.txt -rw-rw-r--. 1 xuan admins 0 Apr 13 20:08 xuan_file1.txt [xuan@centos7 /data ]$ rm -rf tom_file1.txt rm: cannot remove ‘tom_file1.txt’: Operation not permitted
- 感谢你赐予我前进的力量